4IFS2-COMP-PLD/compiler/DeclarationVisitor.cpp
2026-03-04 11:56:25 +01:00

25 lines
688 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;
}