#pragma once #include #include #include #include class Symbols { public: Symbols(std::string path); const std::map& getLabels() const { return labels; } const std::map& getConstants() const { return constants; } const std::map& getScopes() const { return scopes; } const std::map& getAddresses() const { return addresses; } private: void AssignScopes(); void AssignSymbols(); void Parse(std::string path); std::map labels; std::map constants; std::map scopes; std::map addresses; struct kv_pair_t { std::map element; }; std::vector split(const std::string& input, const std::vector& delimiters); std::map> parsed; };