1#include "gsc/token.hpp"
4Token::Token(TokenType type, std::string lexeme, std::any literal,
int line)
5 : type{type}, lexeme{std::move(lexeme)}, literal{std::move(literal)},
8TokenType Token::getType()
const {
return type; }
10std::string Token::getLexeme()
const {
return lexeme; }
12std::any Token::getLiteral()
const {
return literal; }
14int Token::getLine()
const {
return line; }
16std::string Token::toString()
const {
17 std::string literal_str;
24 literal_str =
"false";
27 literal_str = std::to_string(std::any_cast<
int>(literal));
31 literal_str = std::any_cast<std::string>(literal);
32 }
catch (
const std::bad_any_cast &e) {
34 static_cast<std::string>(std::any_cast<
const char *>(literal));
45 return ::toString(type) +
" " + lexeme +
" " + literal_str;