24 lines
625 B
C
Raw Normal View History

2025-12-02 06:54:32 +01:00
#ifndef RAVA_SEMANTIC_H
#define RAVA_SEMANTIC_H
#include "../parser/parser.h"
#include "../types/types.h"
#include "symbol_table.h"
#include <stdbool.h>
typedef struct {
RavaSymbolTable_t *symbol_table;
char *error_message;
bool had_error;
int error_count;
} RavaSemanticAnalyzer_t;
RavaSemanticAnalyzer_t* rava_semantic_analyzer_create();
void rava_semantic_analyzer_destroy(RavaSemanticAnalyzer_t *analyzer);
bool rava_semantic_analyze(RavaSemanticAnalyzer_t *analyzer, RavaASTNode_t *root);
RavaType_t* rava_semantic_get_expression_type(RavaSemanticAnalyzer_t *analyzer, RavaASTNode_t *expr);
#endif