#ifndef SYMBOLSTABLE_H #define SYMBOLSTABLE_H #include #include #include #include #include #include #include "opcodes.h" #include "token.h" #define SYMBOLSTABLE_DEFAULT_CAPACITY 128 typedef struct { char* Name; int Address; int Resolved; int Length; Token* References; } Symbol; typedef struct { Symbol** Symbols; int Size; int Capacity; } SymbolTable; SymbolTable* CreateSymbolTable(void); int TryGetSymbol(char* name, SymbolTable* table, Symbol** outSymbol); Symbol* AddSymbolToTable(char* name, int address, int resolved, SymbolTable* table); void FreeSymbolTable(SymbolTable* table); void FreeSymbol(Symbol* symbol); #endif