removed namespace perche mi rompeva le palle
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
struct Token {
|
||||
struct token {
|
||||
TokenType type;
|
||||
std::string literal;
|
||||
};
|
||||
|
@ -4,8 +4,6 @@
|
||||
#include <ostream>
|
||||
#include <string_view>
|
||||
|
||||
namespace lexer {
|
||||
|
||||
// X-macro list of token types and their string representations
|
||||
#define TOKEN_LIST \
|
||||
X(ILLEGAL, "ILLEGAL") \
|
||||
@ -23,28 +21,26 @@ namespace lexer {
|
||||
X(FUNCTION, "FUNCTION") \
|
||||
X(LET, "LET")
|
||||
|
||||
// Define the TokenType enum using the X-macro
|
||||
enum class TokenType {
|
||||
// Define the TokenType enum using the X-macro
|
||||
enum class TokenType {
|
||||
#define X(name, str) name,
|
||||
TOKEN_LIST
|
||||
TOKEN_LIST
|
||||
#undef X
|
||||
};
|
||||
};
|
||||
|
||||
// Array mapping enum values to their string representations
|
||||
static constexpr std::
|
||||
array<std::string_view, static_cast<size_t>(TokenType::LET) + 1>
|
||||
tokenTypeStrings = {
|
||||
// Array mapping enum values to their string representations
|
||||
static constexpr std::
|
||||
array<std::string_view, static_cast<size_t>(TokenType::LET) + 1>
|
||||
tokenTypeStrings = {
|
||||
#define X(name, str) str,
|
||||
TOKEN_LIST
|
||||
TOKEN_LIST
|
||||
#undef X
|
||||
};
|
||||
};
|
||||
|
||||
// Stream insertion operator using the lookup array
|
||||
inline std::ostream& operator<<(std::ostream& os, TokenType type) {
|
||||
auto idx = static_cast<size_t>(type);
|
||||
if (idx < tokenTypeStrings.size())
|
||||
return os << tokenTypeStrings[idx];
|
||||
return os << "Unknown";
|
||||
}
|
||||
|
||||
} // namespace lexer
|
||||
// Stream insertion operator using the lookup array
|
||||
inline std::ostream& operator<<(std::ostream& os, TokenType type) {
|
||||
auto idx = static_cast<size_t>(type);
|
||||
if (idx < tokenTypeStrings.size())
|
||||
return os << tokenTypeStrings[idx];
|
||||
return os << "Unknown";
|
||||
}
|
||||
|
Reference in New Issue
Block a user