CompilerSysY/include/SysYVisitor.h
2023-04-28 16:38:48 +08:00

119 lines
3.9 KiB
C++

// Generated from SysY.g4 by ANTLR 4.12.0
#pragma once
#include "antlr4-runtime.h"
#include "SysYParser.h"
namespace antlrSysY {
/**
* This class defines an abstract visitor for a parse tree
* produced by SysYParser.
*/
class SysYVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:
/**
* Visit parse trees produced by SysYParser.
*/
virtual std::any visitProgram(SysYParser::ProgramContext *context) = 0;
virtual std::any visitCompUnit(SysYParser::CompUnitContext *context) = 0;
virtual std::any visitDecl(SysYParser::DeclContext *context) = 0;
virtual std::any visitConstDecl(SysYParser::ConstDeclContext *context) = 0;
virtual std::any visitBType(SysYParser::BTypeContext *context) = 0;
virtual std::any visitConstDef(SysYParser::ConstDefContext *context) = 0;
virtual std::any visitConstInitVal(SysYParser::ConstInitValContext *context) = 0;
virtual std::any visitVarDecl(SysYParser::VarDeclContext *context) = 0;
virtual std::any visitVarDef(SysYParser::VarDefContext *context) = 0;
virtual std::any visitInitVal(SysYParser::InitValContext *context) = 0;
virtual std::any visitFuncDef(SysYParser::FuncDefContext *context) = 0;
virtual std::any visitFuncType(SysYParser::FuncTypeContext *context) = 0;
virtual std::any visitFuncFParams(SysYParser::FuncFParamsContext *context) = 0;
virtual std::any visitFuncFParam(SysYParser::FuncFParamContext *context) = 0;
virtual std::any visitBlock(SysYParser::BlockContext *context) = 0;
virtual std::any visitBlockItem(SysYParser::BlockItemContext *context) = 0;
virtual std::any visitStmt(SysYParser::StmtContext *context) = 0;
virtual std::any visitAssignStmt(SysYParser::AssignStmtContext *context) = 0;
virtual std::any visitExpStmt(SysYParser::ExpStmtContext *context) = 0;
virtual std::any visitConditionStmt(SysYParser::ConditionStmtContext *context) = 0;
virtual std::any visitWhileStmt(SysYParser::WhileStmtContext *context) = 0;
virtual std::any visitBreakStmt(SysYParser::BreakStmtContext *context) = 0;
virtual std::any visitContinueStmt(SysYParser::ContinueStmtContext *context) = 0;
virtual std::any visitReturnStmt(SysYParser::ReturnStmtContext *context) = 0;
virtual std::any visitExp(SysYParser::ExpContext *context) = 0;
virtual std::any visitCond(SysYParser::CondContext *context) = 0;
virtual std::any visitLVal(SysYParser::LValContext *context) = 0;
virtual std::any visitPrimaryExp(SysYParser::PrimaryExpContext *context) = 0;
virtual std::any visitNumber(SysYParser::NumberContext *context) = 0;
virtual std::any visitIntConst(SysYParser::IntConstContext *context) = 0;
virtual std::any visitUnaryExp(SysYParser::UnaryExpContext *context) = 0;
virtual std::any visitCallee(SysYParser::CalleeContext *context) = 0;
virtual std::any visitUnaryOp(SysYParser::UnaryOpContext *context) = 0;
virtual std::any visitFuncRParams(SysYParser::FuncRParamsContext *context) = 0;
virtual std::any visitParam(SysYParser::ParamContext *context) = 0;
virtual std::any visitMulExp(SysYParser::MulExpContext *context) = 0;
virtual std::any visitMulOp(SysYParser::MulOpContext *context) = 0;
virtual std::any visitAddExp(SysYParser::AddExpContext *context) = 0;
virtual std::any visitAddOp(SysYParser::AddOpContext *context) = 0;
virtual std::any visitRelExp(SysYParser::RelExpContext *context) = 0;
virtual std::any visitRelOp(SysYParser::RelOpContext *context) = 0;
virtual std::any visitEqExp(SysYParser::EqExpContext *context) = 0;
virtual std::any visitEqOp(SysYParser::EqOpContext *context) = 0;
virtual std::any visitLAndExp(SysYParser::LAndExpContext *context) = 0;
virtual std::any visitLOrExp(SysYParser::LOrExpContext *context) = 0;
virtual std::any visitConstExp(SysYParser::ConstExpContext *context) = 0;
};
} // namespace antlrSysY