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

50 lines
1.0 KiB
C++

#pragma once
#include <vector>
#include <string>
#include "antlr4-runtime.h"
#include "SymbolTable.h"
#include "generated/ifccBaseVisitor.h"
class DeclarationVisitor : public ifccBaseVisitor {
SymbolTable *symbolTable = new SymbolTable();
std::vector<std::string> scopeStack;
const std::string &currentScope() const { return scopeStack.back(); }
public:
~DeclarationVisitor() override {
delete symbolTable;
}
[[nodiscard]] SymbolTable *getSymbolTable() const {
return symbolTable;
}
std::any visitProg(ifccParser::ProgContext *ctx) override;
std::any visitStmt(ifccParser::StmtContext *ctx) override;
std::any visitReturn_stmt(ifccParser::Return_stmtContext *ctx) override {
return 0;
}
std::any visitDecl_stmt(ifccParser::Decl_stmtContext *ctx) override;
std::any visitSet_stmt(ifccParser::Set_stmtContext *ctx) override {
return 0;
}
std::any visitVal(ifccParser::ValContext *ctx) override {
return 0;
}
std::any visitExpr(ifccParser::ExprContext *ctx) override {
return 0;
}
};