removed namespace perche mi rompeva le palle

This commit is contained in:
Karma Riuk
2025-06-29 10:07:12 +02:00
parent 81cdd0690d
commit 4771aa4f10
2 changed files with 18 additions and 22 deletions

View File

@ -4,7 +4,7 @@
#include <string> #include <string>
struct Token { struct token {
TokenType type; TokenType type;
std::string literal; std::string literal;
}; };

View File

@ -4,8 +4,6 @@
#include <ostream> #include <ostream>
#include <string_view> #include <string_view>
namespace lexer {
// X-macro list of token types and their string representations // X-macro list of token types and their string representations
#define TOKEN_LIST \ #define TOKEN_LIST \
X(ILLEGAL, "ILLEGAL") \ X(ILLEGAL, "ILLEGAL") \
@ -23,28 +21,26 @@ namespace lexer {
X(FUNCTION, "FUNCTION") \ X(FUNCTION, "FUNCTION") \
X(LET, "LET") X(LET, "LET")
// Define the TokenType enum using the X-macro // Define the TokenType enum using the X-macro
enum class TokenType { enum class TokenType {
#define X(name, str) name, #define X(name, str) name,
TOKEN_LIST TOKEN_LIST
#undef X #undef X
}; };
// Array mapping enum values to their string representations // Array mapping enum values to their string representations
static constexpr std:: static constexpr std::
array<std::string_view, static_cast<size_t>(TokenType::LET) + 1> array<std::string_view, static_cast<size_t>(TokenType::LET) + 1>
tokenTypeStrings = { tokenTypeStrings = {
#define X(name, str) str, #define X(name, str) str,
TOKEN_LIST TOKEN_LIST
#undef X #undef X
}; };
// Stream insertion operator using the lookup array // Stream insertion operator using the lookup array
inline std::ostream& operator<<(std::ostream& os, TokenType type) { inline std::ostream& operator<<(std::ostream& os, TokenType type) {
auto idx = static_cast<size_t>(type); auto idx = static_cast<size_t>(type);
if (idx < tokenTypeStrings.size()) if (idx < tokenTypeStrings.size())
return os << tokenTypeStrings[idx]; return os << tokenTypeStrings[idx];
return os << "Unknown"; return os << "Unknown";
} }
} // namespace lexer