// SymbolKind.hpp #ifndef SYMBOL_KIND_HPP #define SYMBOL_KIND_HPP #include #include #include namespace Symbols { enum class Kind : std::uint8_t { Variable, Constant, Function // Later: Module, Class, etc.. }; static std::string kindToString(Symbols::Kind kind) { std::unordered_map KindToString = { { Symbols::Kind::Variable, "Variable" }, { Symbols::Kind::Constant, "Constant" }, { Symbols::Kind::Function, "Function" }, }; auto it = KindToString.find(kind); if (it != KindToString.end()) { return it->second; } return "Unknown kind: " + std::to_string(static_cast(kind)); } }; // namespace Symbols #endif