# pragma once #include "stdc++.h" #include using std::unordered_map,std::string; class Tbs { public: unordered_map ConstTable; unordered_map IdTable; std::unordered_map KeyTable = { {1, "var"}, {2, "i8"}, {3, "i16"}, {4, "i32"}, {5, "i64"}, {6, "u8"}, {7, "u16"}, {8, "u32"}, {9, "u64"}, {10, "float32"}, {11, "float64"}, {12, "char"}, {13, "for"}, {14, "if"}, {15, "else"}, {16, "bool"}, {17, "string"}, {18, "vector"}, {19, "array"}, {20, "struct"}, {21, "tuple"}, {22, "print"}, {23, "println"} }; std::unordered_map PunctTable = { {1, "-"}, {2, "!"}, {3, "~"}, {4, "/"}, {5, "*"}, {6, "%"}, {7, "+"}, {8, "-"}, {9, "<<"}, {10, ">>"}, {11, ">"}, {12, ">="}, {13, "<"}, {14, "<="}, {15, "=="}, {16, "!="}, {17, "&"}, {18, "^"}, {19, "|"}, {20, "&&"}, {21, "||"}, {22, "="}, {23, "%="}, {24, "*="}, {25, "/="}, {26, "+="}, {27, "-="}, {28, "|="}, {29, "&="}, {30, "^="}, {31, "<<="}, {32, ">>="}, {33, "("}, {34, ")"}, {35, "<"}, {36, ">"}, {37, ","}, {38, "."}, {39, "["}, {40, "]"}, {41, "?"}, {42, ":"}, {43, "->"}, {44,";"} }; }; enum Table_Type { CONST_TABLE, ID_TABLE, KEY_TABLE, PUNCT_TABLE };