Skip to main content

Abstract Syntax Tree (AST)

AST Node classes in GeLB-v0#

img

  • Base class: ASTNode

  • High-level classes:

    • List_N -- used often throughout the AST
    • Program_N -- root node for a complete program's AST
    • LatticeInstance_N
    • NodeClass_N
    • Initializer_N
    • Dynamic_N
    • Gauge_N
    • Function_N
    • Geometry_N
    • Expr_N
    • ConstantDeclaration_N
    • VariableDeclaration_N
    • Statement_N
      • VariableAssignmentStatement_N
      • RectangularSelectionOfLatticeOutDFsAssignmentStatement_N
  • LiteralValue_N:

    • NumericLiteralValue_N
      • IntLiteralValue_N
        • ... (bitwidth-specific)
      • RealLiteralValue_N
        • ... (bitwidth-specific)
    • BooleanLiteralValue_N
    • StringLiteralValue_N -- used e.g. for simulation_name and simulation_description
    • ArrayLiteralValue_N
      • IntArrayLiteralValue_N
        • ... (bitwidth-specific)
      • RealArrayLiteralValue_N
        • ... (bitwidth-specific)
      • BoolArrayLiteralValue_N
  • AST Node-classes which may be part of an Expr_N node:

    • Id_N
    • RectangularSelectionOfLatticeInDFs_N
    • RectangularSelectionOfLatticeOutDFs_N
    • RectangularSelectionOfArrayElems_N
    • Expr_N (recursive!)
    • BinaryExpr_N
    • UnaryExpr_N
    • ExprAtom_N
      • LiteralValue_N
      • NonNegativeIntLiteral_N
      • NonNegativeFloatLiteral_N
      • BoolLiteral_N
      • FunctionCall_N
      • Id_N
      • ArrayLiteral_N