Module ast

Source
Expand description

This provides the AST for the decompiler.

Modules§

array_access
Represents an array access node.
array_kind
Represents an array kind
array_node
Represents an array
assignment
Contains the specifications for any AstNodes that are assignments
ast_enum_type
Holds the macro that generates variants for the AST nodes.
bin_op
Represents binary operations in the AST.
block
Represents a “block” of code in the AST.
control_flow
Represents a control flow node in the AST.
expr
Contains the specifications for any AstNodes that are expressions
func_call
Contains the specifications for any AstNodes that are function calls.
function
Contains the specifications for any AstNodes that are functions.
identifier
Contains the specifications for any AstNodes that are identifiers.
literal
Contains the specifications for any AstNodes that are literals.
member_access
Contains the specifications for any AstNodes that are member accesses.
meta
Contains the specifications for any AstNodes that are metadata.
new
Represents the new
new_array
Represents a new array node in the AST.
node_id
A node identifier
phi
Represents a phi node in the AST.
phi_array
Represents an unmerged array
ptr
Represents a pointer The AST pointer.
range
Represents a range of values in the AST.
ret
Represents a return node in the AST.
ssa
Represents SSA versioning for the AST.
statement
Represents a statement node in the AST.
unary_op
Represents unary operations in the AST.
vbranch
Represents a virtual branch
visitors
Represents the visitor pattern for the AST.

Enums§

AstKind
Represents an AST node.
AstNodeError
Represents an error that occurred while converting an AST node.

Traits§

AstVisitable
Trait for all AST nodes.

Functions§

emit
Emits a node into a string.
new_acylic_condition
Creates a new acyclic condition
new_array
Creates a new array node.
new_array_access
Creates a new array access node.
new_assignment
Creates a new AstNode for a statement.
new_bin_op
Creates binary operation node.
new_bool
Creates a new ExprNode for a literal boolean.
new_cyclic_condition
Creates a new cyclic condition
new_do_while
Creates a new do while loop
new_else
Creates a new else statement
new_float
Creates a new ExprNode for a literal float.
new_fn
Creates a new function node.
new_fn_call
Creates a new function call node, with just the arguments
new_fn_call_normal
Creates a new function call node.
new_for
Creates a new for loop
new_id
Creates a new AssignableExpr for an identifier
new_id_with_version
Creates a new AssignableExpr for an identifier with an SSA version.
new_if
Creates a new if statement
new_member_access
Creates a new member access node.
new_new
Creates a new new node.
new_null
Creates a new ExprNode for a literal null.
new_num
Creates a new ExprNode for a literal number.
new_phi
Creates a new unresolved phi node.
new_phi_array
Creates a new phi array node.
new_range
Creates a new range node.
new_return
Creates a new return node.
new_str
Creates a new ExprNode for a literal string.
new_unary_op
Creates a new unary operation node.
new_uninitialized_array
Creates a new uninitialized array node with a given size.
new_virtual_branch
Creates a new virtual branch node.
new_while
Creates a new while loop
new_with
Creates a new with statement