|
MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
|
Abstract visitor interface for the AST (double-dispatch). More...
#include <ast.hpp>

Public Member Functions | |
| virtual | ~ASTVisitor ()=default |
| virtual void | visit (ProgramNode &node)=0 |
| virtual void | visit (UnitNode &node)=0 |
| virtual void | visit (BlockNode &node)=0 |
| virtual void | visit (VarDeclNode &node)=0 |
| virtual void | visit (ConstDeclNode &node)=0 |
| virtual void | visit (ProcDeclNode &node)=0 |
| virtual void | visit (FuncDeclNode &node)=0 |
| virtual void | visit (ParameterNode &node)=0 |
| virtual void | visit (CompoundStmtNode &node)=0 |
| virtual void | visit (AssignmentNode &node)=0 |
| virtual void | visit (IfStmtNode &node)=0 |
| virtual void | visit (WhileStmtNode &node)=0 |
| virtual void | visit (ForStmtNode &node)=0 |
| virtual void | visit (ProcCallNode &node)=0 |
| virtual void | visit (BinaryOpNode &node)=0 |
| virtual void | visit (UnaryOpNode &node)=0 |
| virtual void | visit (FuncCallNode &node)=0 |
| virtual void | visit (VariableNode &node)=0 |
| virtual void | visit (NumberNode &node)=0 |
| virtual void | visit (StringNode &node)=0 |
| virtual void | visit (BooleanNode &node)=0 |
| virtual void | visit (EmptyStmtNode &node)=0 |
| virtual void | visit (RepeatStmtNode &node)=0 |
| virtual void | visit (CaseStmtNode &node)=0 |
| virtual void | visit (ArrayTypeNode &node)=0 |
| virtual void | visit (ArrayDeclarationNode &node)=0 |
| virtual void | visit (ArrayAccessNode &node)=0 |
| virtual void | visit (ArrayAssignmentNode &node)=0 |
| virtual void | visit (RecordTypeNode &node)=0 |
| virtual void | visit (RecordDeclarationNode &node)=0 |
| virtual void | visit (FieldAccessNode &node)=0 |
| virtual void | visit (TypeDeclNode &node)=0 |
| virtual void | visit (TypeAliasNode &node)=0 |
| virtual void | visit (ExitNode &node)=0 |
| virtual void | visit (SimpleTypeNode &node)=0 |
| virtual void | visit (ArrayTypeDeclarationNode &node)=0 |
| virtual void | visit (ContinueNode &node)=0 |
| virtual void | visit (BreakNode &node)=0 |
| virtual void | visit (NilNode &node)=0 |
| virtual void | visit (PointerTypeNode &node)=0 |
| virtual void | visit (PointerDerefNode &node)=0 |
| virtual void | visit (AddressOfNode &node)=0 |
| virtual void | visit (WithStmtNode &node)=0 |
| virtual void | visit (GotoStmtNode &node)=0 |
| virtual void | visit (LabelStmtNode &node)=0 |
| virtual void | visit (SetLiteralNode &node)=0 |
| virtual void | visit (SetTypeNode &node)=0 |
| virtual void | visit (EnumTypeDeclNode &node)=0 |
Abstract visitor interface for the AST (double-dispatch).
Derived visitors implement visit() overloads for every concrete AST node type to perform code generation, validation, or printing.
|
virtualdefault |
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
Referenced by pascal::AddressOfNode::accept(), pascal::ArrayAccessNode::accept(), pascal::ArrayAssignmentNode::accept(), pascal::ArrayDeclarationNode::accept(), pascal::ArrayTypeDeclarationNode::accept(), pascal::ArrayTypeNode::accept(), pascal::AssignmentNode::accept(), pascal::BinaryOpNode::accept(), pascal::BlockNode::accept(), pascal::BooleanNode::accept(), pascal::BreakNode::accept(), pascal::CaseStmtNode::accept(), pascal::CompoundStmtNode::accept(), pascal::ConstDeclNode::accept(), pascal::ContinueNode::accept(), pascal::EmptyStmtNode::accept(), pascal::EnumTypeDeclNode::accept(), pascal::ExitNode::accept(), pascal::FieldAccessNode::accept(), pascal::ForStmtNode::accept(), pascal::FuncCallNode::accept(), pascal::FuncDeclNode::accept(), pascal::GotoStmtNode::accept(), pascal::IfStmtNode::accept(), pascal::LabelStmtNode::accept(), pascal::NilNode::accept(), pascal::NumberNode::accept(), pascal::ParameterNode::accept(), pascal::PointerDerefNode::accept(), pascal::PointerTypeNode::accept(), pascal::ProcCallNode::accept(), pascal::ProcDeclNode::accept(), pascal::ProgramNode::accept(), pascal::RecordDeclarationNode::accept(), pascal::RecordTypeNode::accept(), pascal::RepeatStmtNode::accept(), pascal::SetLiteralNode::accept(), pascal::SetTypeNode::accept(), pascal::SimpleTypeNode::accept(), pascal::StringNode::accept(), pascal::TypeAliasNode::accept(), pascal::TypeDeclNode::accept(), pascal::UnaryOpNode::accept(), pascal::UnitNode::accept(), pascal::VarDeclNode::accept(), pascal::VariableNode::accept(), pascal::WhileStmtNode::accept(), and pascal::WithStmtNode::accept().
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.
|
pure virtual |
Implemented in pascal::CodeGenVisitor.