Module brane_ast::traversals
source · Expand description
Defines the traversals that are part of the compiler.
Modules§
- Implements a traversal that processes
Stmt::Attribute
s andStmt::AttributeInner
s into attribute annotations on other statement nodes. - Implements the traversal in which the
brane-dsl
AST is finally converted to thebrane-ast
AST (i.e., BraneScript is compiled to a Workflow). - Implements a traversal that analyses data dependencies for external calls.
- Implements a traversal that flattens the scopes (i.e., symbol tables) of the given program. This effectively brings all nested scopes back to the toplevel.
- Resolves the extra location restrictions that on-structures impose.
- Traversal that annotates the given workflow with metadata from tags.
- Implements a traversal that resolves null-types from the tree, resolving them with more proper types.
- Secret first first first traversal that simply updates all
brane_dsl::TextRange
s in the AST to have correct offsets w.r.t. the entire source (in case this is a snippet). - Prints either the
brane-dsl
AST or thebrane-ast
AST in BraneScript-like syntax. - Traversal that prunes the AST for compilation.
- Implements a traversal that builds symbol tables for the
brane-dsl
AST. - Performs type analysis on the AST, i.e., resolving the types that haven’t been already and verifying the required ones are there.
- Implements a traversal that optimizes a workflow by combining as much edges into one as possible.
- Final traversal in the compiler that takes an UnresolvedWorkflow and resolves all references to new edges.