diff --git a/include/parser.hpp b/include/parser.hpp index 06a5f16..c2d1743 100644 --- a/include/parser.hpp +++ b/include/parser.hpp @@ -1,15 +1,15 @@ #include #include #include -#include #include #include +#include "symbol_table.hpp" class parser { private: std::string filename; - int count_ins = 0; + symbol_table table; public: parser() {} @@ -18,7 +18,7 @@ public: void assemble(); std::vector> get_machine_code; char command_type(std::string mnemonic); - std::string symbol(); + void create_table(); std::string dest(std::string des); std::string comp(std::string com); std::string jump(std::string jum); diff --git a/include/symbol_table.hpp b/include/symbol_table.hpp index 5f1c449..53afdec 100644 --- a/include/symbol_table.hpp +++ b/include/symbol_table.hpp @@ -32,10 +32,11 @@ private: {"SCREEN", 16384}, {"KBD", 24576}, }; + int next = 15; public: symbol_table() {} - + int available(); void add_entry(std::string symbol, int address); bool contains(std::string symbol); int get_address(std::string symbol);