ready to merge docs

This commit is contained in:
2024-08-11 08:37:17 +00:00
parent 9900d5aaf3
commit 22d18436fa
10 changed files with 346 additions and 38 deletions

View File

@ -4,15 +4,6 @@
#include "ast/ast.h"
#include "visitor.h"
class SemanticError : public std::exception {
std::string msg;
int error_code;
public:
SemanticError(const std::string &msg, int error_code) : msg(msg), error_code(error_code) {}
const char *what() const noexcept override { return msg.c_str(); }
int GetErrorCode() const { return error_code; }
};
std::shared_ptr<ASTNodeBase> BuildAST(Visitor *visitor, antlr4::tree::ParseTree *tree);
void SemanticCheck(std::istream &fin, std::shared_ptr<ASTNodeBase> &ast);
#endif

View File

@ -1,9 +1,13 @@
#ifndef VISITOR_H
#define VISITOR_H
#include <stack>
#include <vector>
#include "MXParserVisitor.h"
#include "tools.h"
class Visitor : public MXParserVisitor {
std::vector<ASTNodeType> nodetype_stk;
public:
std::any visitMxprog(MXParser::MxprogContext *context) override;
std::any visitFunction_def(MXParser::Function_defContext *context) override;