Zen
A cross-platform functional programming language
Classes

/home/renji/Data/projects/zenlang/sources/zbl/Ast.hpp File Reference

Definition of all Nodes in the generated AST. More...

Go to the source code of this file.

Classes

struct  Storage
 Outer struct for Storage enumeration. More...
class  Node
 Abstract base class for all Ast nodes. More...
class  TypeSpec
 Base node class for all type specifications. More...
struct  TypeSpec::AccessType
 Outer struct for AccessType enumeration. More...
class  QualifiedType
 A type with const and ref qualifiers. More...
class  VariableDef
 Base node class for all variable definitions. More...
class  VariableDefListBase
 Base node class for list and map of variable definitions. More...
class  VariableRef
 Node containg reference to variables. More...
class  VariableRefList
 Base node class for list and map of variable references. More...
class  VariableDefMap
 This node stores a mapping between a variable and the variable itself. More...
class  Scope
 AST Node representing Variable Scope. More...
class  ExprVariableDef
 Base node class for VariableDef-derived classes that has an initialization expression. More...
class  ParamVariableDef
 The AST Node that represents a function parameter. More...
class  StructMemberVariableDef
 The AST Node that represents a member variable inside a struct. More...
class  InitVariableDef
 The AST Node that represents a variable initialization, such as local variables and for() variables. More...
class  SharedVariableDef
 The AST Node that represents a variable in shared closure. More...
class  RootTypeSpec
 Base node class typespecs that do not have a parent type. More...
class  ChildTypeSpec
 Base node class typespecs that have a parent type. More...
class  UserDefinedTypeSpec
 Base class for all user-defined types. More...
class  StructDef
 Concrete AST Node representing a user-defined struct. More...
class  StructDefList
 Concrete AST Node representing a list of struct's. Used in experimental feature implementing subtypes. More...
class  EnumMemberDef
 Concrete AST Node representing a member of a user-defined enumeration. More...
class  EnumMemberDefList
 AST Node representing a list of enum members. More...
class  EnumDef
 Concrete AST Node representing a user-defined enum. More...
class  OutParam
 Concrete AST Node representing the out-parameters of a function which returns a set of values (a tuple) More...
class  SharedDef
 Concrete AST Node representing the list of variables shared across a continuation. More...
class  TypeDefTypeSpec
 Base class for typedef types. More...
class  TypeDecl
 Base class for typedef declarations, typically used to declare native types. More...
class  TypeDef
 Base class for typedef definitions. More...
class  TemplateTypeSpec
 Base class for templated types. More...
class  OwnerTemplate
 Owner template. More...
class  ListTemplate
 List template: Stores elements in a list. More...
class  DictTemplate
 Dict template: Stores elements in a dictionary. More...
class  MethodTypeSpec
 Base class for all user defined methods such as functions, routines, grammars, etc. More...
class  FunctionDef
 Concrete class for all user defined functions, routines, grammars, etc. More...
struct  FunctionDef::Modifier
 Outer struct for Modifier enumeration. More...
class  Namespace
 Concrete class for namespaces. More...
class  StructInitItem
 A struct initialization item for initializing individual members of a struct. More...
class  StructInitList
 A struct initialization list. More...
class  GrammarToken
 AST representing a single lexer token. More...
class  GrammarTokenList
 AST representing a list of lexer tokens. More...
class  GrammarMember
 Base class for all AST nodes representing EBNF grammar RHS elements. More...
class  GrammarMemberId
 AST Node for EBNF element representing an id or a ID. More...
class  GrammarMemberNameId
 AST Node for EBNF element representing a named ID. More...
class  GrammarMemberList
 AST representing a list of EBNF grammar members. More...
class  GrammarStatement
 AST node base class representing a single EBNF grammar statement. More...
class  GrammarRuleStatement
 Concrete class for AST node representing an EBNF gramar rule. More...
class  LexerStatement
 A grammar statement representing a lexer. More...
class  LexerStatementList
 List of lexer statement nodes. More...
class  GrammarLexer
 A Grammar Lexer represents a single lexer in a grammer. More...
class  GrammarLexerList
 AST Node for list of grammar lexers. More...
class  GrammarStatementList
 AST Node for list of grammar statements. More...
class  GrammarOptionValueList
 AST Node for list of grammar option values. More...
class  GrammarOption
 AST Node for a grammar option. More...
class  GrammarOptionList
 AST Node for list of grammar options. More...
class  ImplItem
 Base class for Implementation item nodes. More...
class  ListBase< ItemT >
 Base template class for all container classes. More...
class  ListItem
 Concrete AST class for items in list containers. More...
class  ListList
 Concrete AST class for list containers. More...
class  DictItem
 Concrete AST class for items in dictionary containers. More...
class  DictList
 Concrete AST class for dictionary containers. More...
class  Expr
 Base class for expression AST Nodes. More...
class  ExprList
 AST node for expression lists. More...
class  InvokerType
 Holds a function or functor call. More...
class  Invoker
 Holds a invoker and call parameter. More...
class  FunctionCall
 AST Node for function invocation. More...
class  FunctorCall
 AST Node for functor invocation. More...
class  FunctionDefCall
 AST Node for calling a locally defined function. More...
class  FunctionImplCall
 AST Node for calling a locally implemented function definition. More...
class  TernaryOpExpr
 AST Node for all ternary operators. More...
class  BinaryExpr
 Base class for all binary expression AST nodes. More...
class  BinaryOpExpr
 Concrete class for all binary expression AST nodes. More...
class  UnaryOpExpr
 Base class for all unary expression AST nodes. More...
class  PrefixOpExpr
 AST Node for all prefix operators. More...
class  PostfixOpExpr
 AST Node for all postfix operators. More...
class  OrderedExpr
 AST Node for an ordered expression. More...
class  IndexExpr
 AST Node for an index expression. More...
class  Splice
 AST Node for a splice. More...
class  SpliceExpr
 AST Node for an splice expression. More...
class  StringFormatExpr
 AST Node representing a string format expression. More...
class  InstanceExpr
 Abstract base class for AST Nodes representing an instantiation expression. More...
class  TypeDefExpr
 Concrete class for AST Node representing a typedef instantiation. More...
class  StructExpr
 Concrete class for AST Node representing a struct instantiation. More...
class  FunctionExpr
 Concrete class for AST Node representing a function instantiation. More...
class  ListTemplateExpr
 Concrete class for AST Node representing a templated list instantiation. More...
class  DictTemplateExpr
 Concrete class for AST Node representing a templated dictionary instantiation. More...
class  StructInitExpr
 Concrete class for AST Node representing a struct instantiation with an alternate initialization mechanism. More...
class  ListExpr
 Concrete class for AST Node representing a list. More...
class  DictExprBase
 Abstract base class for AST Node representing a dictionary value. More...
class  DictExpr
 Concrete class for AST Node representing a dictionary value. More...
class  TreeExpr
 Concrete class for AST Node representing a tree value. More...
class  QueryExpr
 Concrete class for AST Node representing a query. More...
class  QueryPartExpr
 Concrete class for AST Node representing a query part. More...
class  QueryBinaryExpr
 Concrete class for AST Node representing a binary query expression. More...
class  QueryValExpr
 Concrete class for AST Node representing a query 'val' expression. More...
class  QueryConstantExpr
 Concrete class for AST Node representing a query constant expression. More...
class  VariableRefExpr
 Concrete class for AST Node representing a variable reference. More...
class  EnumRefExpr
 Concrete class for AST Node representing a reference to an enum member. More...
class  InternalCallExpr
 Concrete class for AST Node representing a call to an internal function. More...
class  InvokerCallExpr
 Concrete class for AST Node representing a call to an Invoker. More...
class  FunctionCallExpr
 Concrete class for AST Node representing a call to an function. More...
class  FunctionImplExpr
 Concrete class for AST Node representing a function implementation. More...
class  FunctionDefImplExpr
 Concrete class for AST Node representing a function definition implementation. More...
class  AnyExpr
 Concrete class for AST Node representing an 'any'value. More...
class  CastExpr
 Concrete class for AST Node representing a typecast. More...
class  ConstantExpr
 Abstract base class for AST Node representing a constant value. More...
class  NumericConstantExpr
 Concrete class for AST Node representing a numeric constant, including integral and floating. More...
class  BooleanConstantExpr
 Concrete class for AST Node representing a boolean constant. More...
class  CharConstantExpr
 Concrete class for AST Node representing a char constant. More...
class  StringConstantExpr
 Concrete class for AST Node representing a string constant. More...
class  Closure
 Base class for AST Nodes representing closures. More...
class  FunctionCallClosure
 AST Nodes representing closures that call a single function anywhere in a continuation. More...
class  InitClosure
 Abstract base class for AST Nodes representing initial closures. More...
class  RunClosure
 AST Nodes representing closures that enque continuations for parallel processing. More...
class  ExitClosure
 AST Nodes representing closures that enque continuations to be executed on program exit. More...
class  CallClosure
 AST Nodes representing closures that call functions at the start of a continuation. More...
class  LoopClosure
 AST Node representing a closure that causes the first closure in current continuation to execute again. More...
class  SharedClosure
 AST Node representing a closure that holds all variables. More...
class  ReturnClosure
 AST Node representing a closure that returns values to the parent continuation. More...
class  ClosureList
 AST Node representing a list of closures. More...
class  Statement
 Base class for all AST Nodes representing executable statements. More...
class  StatementList
 AST Node representing a list of statements. More...
class  StatementBlock
 AST Node representing a statement block. More...
class  ExprStatement
 AST Node representing an expression statement. More...
class  DefineVarStatement
 AST Node representing a statement that defines a local variable. More...
class  LogStatement
 AST Node representing a statement that writes one or more expressions to a log. More...
class  IfStatement
 Abstract base class for AST Node representing a conditional statement. More...
class  IfThenStatement
 AST Node representing an if statement without an else. More...
class  IfElseStatement
 AST Node representing an if statement with an else. More...
class  SwitchLabel
 Abstract base class for AST Node representing a case label in a switch or select statement. More...
class  CaseLabel
 AST Node representing a case label with an expression. More...
class  DefaultLabel
 AST Node representing a default case label. More...
class  SwitchLabelList
 AST Node representing a list of case labels. More...
class  SelectStatement
 AST Node representing a select statement. More...
class  SwitchStatement
 AST Node representing a switch statement. More...
class  TypeSpecStatement
 AST Node representing a statement that defines types within statement blocks. More...
class  BreakStatement
 AST Node representing a break statement. More...
class  ContinueStatement
 AST Node representing a continue statement. More...
class  EmptyStatement
 AST Node representing an empty statement. More...
class  ForStatement
 AST Node representing a for statement. More...
class  ForeachStatement
 AST Node representing a foreach statement. More...
class  WhileStatement
 AST Node representing a while statement. More...
class  DoWhileStatement
 AST Node representing a do-while statement. More...
class  RoutineReturnStatement
 AST Node representing a return statement in a routine block. More...
class  FunctionReturnStatement
 AST Node representing a return statement in a function block. More...
class  BlockBase
 Abstract base class for AST Node representing various blocks. More...
class  RoutineBlock
 AST Node representing a routine block. More...
class  FunctionBlock
 AST Node representing a routine block. More...
class  GrammarBlock
 AST Node representing a grammar block. More...
class  WindowBlock
 AST Node representing a window block. More...
class  ContinuationImplItem
 AST Node for a continuation implementation. More...
class  RoutineImplItem
 AST Node for a routine implementation. More...
class  FunctionImplItem
 AST Node for a function implementation. More...
class  GrammarImplItem
 AST Node for a grammar implementation. More...
class  WindowImplItem
 AST Node for a window implementation. More...
class  ImportStatement
 AST Node for an import statement. More...
class  Unit
 AST Node for a compilation unit. More...
class  TypeSpec::Visitor
 TypeSpec Visitor interface class. More...
class  InvokerType::Visitor
 InvokerType Visitor interface class. More...
class  Expr::Visitor
 Expr Visitor interface class. More...
class  Closure::Visitor
 QClosure Visitor interface class. More...
class  ImplItem::Visitor
 ImplItem Visitor interface class. More...
class  GrammarMember::Visitor
 GrammarMember Visitor interface class. More...
class  GrammarStatement::Visitor
 GrammarStatement Visitor interface class. More...
class  Statement::Visitor
 Statement Visitor interface class. More...

Detailed Description

Definition of all Nodes in the generated AST.

The parser parses the source files and creates a set of AST nodes using ParseContext as the class factory. The output files are generated from the AST. In future, there will be an Optimizer to analyse and optimize the AST before generating the output.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines