Zen
A cross-platform functional programming language
|
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... |
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.