aboutsummaryrefslogtreecommitdiff
path: root/src/semantic_analyzer.cpp
blob: 48a9448bb2039dd8a5056ad58a7fd414bd15cb86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "semantic_analyzer.hpp"

SemanticAnalyzer::SemanticAnalyzer() : symbol_table(), current_scope(nullptr), current_scope_level(-1) { }

SymbolTable SemanticAnalyzer::analyze(ASTNode* node) {
    for (auto function : node->function_delcarations) {
	analyzeFunction(function);
    }
}

ASTNode* SemanticAnalyzer::advance() {
    if (dynamic_cast<ProgramNode*>(node)) {
	
    }
}

ASTNode* SemanticAnalyzer::peek() { }

Symbol* SemanticAnalyzer::analyzeVariable(ASTNode* node) { }

Symbol* SemanticAnalyzer::analyzeFunctionDeclaration(ASTNode* node) {
    std::string identifier = node->identifier;
    symbol_type = SymbolType::FUNCTION_DECLARATION;
}