4IFS2-COMP-PLD/compiler/DeclarationVisitor.cpp
2026-03-04 10:54:23 +01:00

37 lines
972 B
C++

#include "DeclarationVisitor.h"
#include "generated/ifccParser.h"
std::any DeclarationVisitor::visitProg(ifccParser::ProgContext *ctx) {
symbolTable->addScope("main");
scopeStack.push_back("main");
this->visitChildren(ctx);
scopeStack.pop_back();
return 0;
}
std::any DeclarationVisitor::visitStmt(ifccParser::StmtContext *ctx) {
return this->visitChildren(ctx);
}
std::any DeclarationVisitor::visitDecl_stmt(ifccParser::Decl_stmtContext *ctx) {
std::vector<antlr4::tree::TerminalNode*> vars = ctx->VAR_NAME();
for (auto var : vars) {
std::string name = var->getText();
symbolTable->declare(currentScope(), name);
}
return 0;
}
std::any DeclarationVisitor::visitSet_stmt(ifccParser::Set_stmtContext *ctx) {
return 0;
}
std::any DeclarationVisitor::visitVal(ifccParser::ValContext *ctx) {
return 0;
}
std::any DeclarationVisitor::visitReturn_stmt(ifccParser::Return_stmtContext *ctx) {
return 0;
}