tipc
A TIP to LLVM compiler
|
Parse tree visitor that generates a program AST. More...
#include <ASTBuilder.h>
Public Member Functions | |
ASTBuilder (TIPParser *parser) | |
std::shared_ptr< ASTProgram > | build (TIPParser::ProgramContext *ctx) |
Builds an instance of ASTProgram from an ANTLR4 parse tree. More... | |
template<typename T > | |
void | visitBinaryExpr (T *ctx, const std::string &op) |
Any | visitFunction (TIPParser::FunctionContext *ctx) override |
Any | visitNegNumber (TIPParser::NegNumberContext *ctx) override |
Any | visitAdditiveExpr (TIPParser::AdditiveExprContext *ctx) override |
Any | visitRelationalExpr (TIPParser::RelationalExprContext *ctx) override |
Any | visitMultiplicativeExpr (TIPParser::MultiplicativeExprContext *ctx) override |
Any | visitEqualityExpr (TIPParser::EqualityExprContext *ctx) override |
Any | visitParenExpr (TIPParser::ParenExprContext *ctx) override |
Any | visitNumExpr (TIPParser::NumExprContext *ctx) override |
Any | visitVarExpr (TIPParser::VarExprContext *ctx) override |
Any | visitInputExpr (TIPParser::InputExprContext *ctx) override |
Any | visitFunAppExpr (TIPParser::FunAppExprContext *ctx) override |
Any | visitAllocExpr (TIPParser::AllocExprContext *ctx) override |
Any | visitRefExpr (TIPParser::RefExprContext *ctx) override |
Any | visitDeRefExpr (TIPParser::DeRefExprContext *ctx) override |
Any | visitNullExpr (TIPParser::NullExprContext *ctx) override |
Any | visitRecordExpr (TIPParser::RecordExprContext *ctx) override |
Any | visitFieldExpr (TIPParser::FieldExprContext *ctx) override |
Any | visitAccessExpr (TIPParser::AccessExprContext *ctx) override |
Any | visitDeclaration (TIPParser::DeclarationContext *ctx) override |
Any | visitNameDeclaration (TIPParser::NameDeclarationContext *ctx) override |
Any | visitAssignStmt (TIPParser::AssignStmtContext *ctx) override |
Any | visitBlockStmt (TIPParser::BlockStmtContext *ctx) override |
Any | visitWhileStmt (TIPParser::WhileStmtContext *ctx) override |
Any | visitIfStmt (TIPParser::IfStmtContext *ctx) override |
Any | visitOutputStmt (TIPParser::OutputStmtContext *ctx) override |
Any | visitErrorStmt (TIPParser::ErrorStmtContext *ctx) override |
Any | visitReturnStmt (TIPParser::ReturnStmtContext *ctx) override |
Parse tree visitor that generates a program AST.
This is an ANTLR4 parse tree visitor, not to be confused with an ASTVisitor. As such its structure follows that of the ANTLR4 generated TIPBaseVisitor. The primary entry point is the build method which initiates the traversal of the parse tree and, if succesful, generates a shared ASTProgram whose ownership is transferred to the caller.
ASTBuilder::ASTBuilder | ( | TIPParser * | parser | ) |
ASTBuilder::build | ( | TIPParser::ProgramContext * | ctx | ) |
Builds an instance of ASTProgram from an ANTLR4 parse tree.
The caller obtains "ownership" of the resulting ASTProgram.
|
override |
|
override |
|
override |
|
override |
void ASTBuilder::visitBinaryExpr | ( | T * | ctx, |
const std::string & | op | ||
) |
a helper function to build binary expressions
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |