1#ifndef SPUDPLATE_TOKEN_H
2#define SPUDPLATE_TOKEN_H
99inline std::string tokenTypeToString(TokenType type) {
105 case TokenType::MKDIR:
107 case TokenType::FILE:
109 case TokenType::FROM:
111 case TokenType::CONTENT:
113 case TokenType::WHEN:
115 case TokenType::REPEAT:
121 case TokenType::VERBATIM:
123 case TokenType::APPEND:
125 case TokenType::MODE:
129 case TokenType::DEFAULT:
131 case TokenType::OPTIONS:
133 case TokenType::COPY:
135 case TokenType::INTO:
137 case TokenType::INCLUDE:
143 case TokenType::TIMEOUT:
151 case TokenType::STRING_TYPE:
152 return "STRING_TYPE";
153 case TokenType::BOOL_TYPE:
155 case TokenType::INT_TYPE:
157 case TokenType::STRING_LITERAL:
158 return "STRING_LITERAL";
159 case TokenType::INTEGER_LITERAL:
160 return "INTEGER_LITERAL";
161 case TokenType::TRUE:
163 case TokenType::FALSE:
165 case TokenType::IDENTIFIER:
167 case TokenType::EQUALS:
169 case TokenType::NOT_EQUALS:
171 case TokenType::GREATER:
173 case TokenType::LESS:
175 case TokenType::GREATER_EQUAL:
176 return "GREATER_EQUAL";
177 case TokenType::LESS_EQUAL:
179 case TokenType::PLUS:
181 case TokenType::MINUS:
183 case TokenType::STAR:
185 case TokenType::SLASH:
187 case TokenType::ASSIGN:
189 case TokenType::NEWLINE:
191 case TokenType::LPAREN:
193 case TokenType::RPAREN:
195 case TokenType::LBRACE:
197 case TokenType::RBRACE:
201 case TokenType::COMMA:
205 case TokenType::EOF_TOKEN:
207 case TokenType::ERROR:
A single lexical token with source location.
Definition token.h:84
Token()
Default-construct an EOF token at position 0:0.
Definition token.h:91
int line
1-based source line number.
Definition token.h:87
int column
1-based source column number.
Definition token.h:88
std::string value
The raw text of the token (empty for punctuation).
Definition token.h:86
TokenType type
The token's classification.
Definition token.h:85
Token(TokenType type, std::string value, int line, int column)
Construct a token with explicit type, lexeme, and source position.
Definition token.h:94