52 using literal_variant_t = std::variant<char, std::string, int, float, double>;
119 void print_token() const noexcept {
120 std::cout << "TOKEN TYPE ID (" << to_literal(_token_type) << ")"
121 << " [" << to_string(_token_type) << "]\n";
122 std::cout << "location (row, col) < " << location.first << " , " << location.second << " > ";
123 std::visit(internal::visitor{
124 [](char c) { std::cout << "[CHAR] " << c << std::endl; },
125 [](std::string s) { std::cout << "[STRING] " << s << std::endl; },
126 [](int i) { std::cout << "[INT] " << i << std::endl; },
127 [](float f) { std::cout << "[FLOAT] " << f << std::endl; },
128 [](double d) { std::cout << "[DOUBLE] " << d << std::endl; },
141 tokens__(TYPE type, std::string embedded, literal_variant_t lit, location_t loc)
142 : _token_type(type), embedded(embedded), literal(lit), location(loc) {};