Module brane_ast::traversals

source ·
Expand description

Defines the traversals that are part of the compiler.

Modules§

  • Implements a traversal that processes Stmt::Attributes and Stmt::AttributeInners into attribute annotations on other statement nodes.
  • Implements the traversal in which the brane-dsl AST is finally converted to the brane-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::TextRanges 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 the brane-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.