* Get the name of a token. */
| 397 | * Get the name of a token. |
| 398 | */ |
| 399 | static const char *getNameFromToken(Token token) |
| 400 | { |
| 401 | // Special tokens: |
| 402 | switch ((int)token) |
| 403 | { |
| 404 | case TOKEN_NOT: |
| 405 | return "not"; |
| 406 | case TOKEN_AND: |
| 407 | return "and"; |
| 408 | case TOKEN_OR: |
| 409 | return "or"; |
| 410 | case TOKEN_ERROR: |
| 411 | return "<bad-token>"; |
| 412 | case TOKEN_EOF: |
| 413 | return "<end-of-input>"; |
| 414 | case TOKEN_INTEGER: |
| 415 | return "<integer>"; |
| 416 | case TOKEN_REGISTER: |
| 417 | return "<register>"; |
| 418 | case TOKEN_STRING: |
| 419 | return "<string>"; |
| 420 | case TOKEN_NAME: |
| 421 | return "<name>"; |
| 422 | case TOKEN_REGEX: |
| 423 | return "<regex>"; |
| 424 | default: |
| 425 | break; |
| 426 | } |
| 427 | const TokenInfo *entry = nullptr; |
| 428 | for (size_t i = 0; i < sizeof(tokens) / sizeof(tokens[0]); i++) |
| 429 | { |
| 430 | if (tokens[i].token == token) |
| 431 | { |
| 432 | entry = tokens + i; |
| 433 | break; |
| 434 | } |
| 435 | } |
| 436 | if (entry == nullptr) |
| 437 | return "???"; |
| 438 | return entry->name; |
| 439 | } |
| 440 | |
| 441 | /* |
| 442 | * Get token from name. |
no outgoing calls
no test coverage detected