tcalc 0.2.0
 
Loading...
Searching...
No Matches
token.hpp File Reference

Input token definition. More...

#include <cstdint>
#include <string>
#include <unordered_map>

Go to the source code of this file.

Classes

struct  tcalc::token::Token
 Token structure. More...
 

Enumerations

enum class  tcalc::token::TokenType : uint8_t {
  PLUS , MINUS , MULTIPLY , DIVIDE ,
  LPAREN , RPAREN , COMMA , SEMICOLON ,
  ASSIGN , GREATER , LESS , NOT ,
  NUMBER , IDENTIFIER , DEF , LET ,
  IF , THEN , ELSE , IMPORT ,
  EQUAL , NOTEQUAL , GREATEREQUAL , LESSEQUAL ,
  AND , OR , EOI
}
 Token type, some values are ASCII code of the corresponding character. More...
 

Variables

const std::unordered_map< TokenType, std::string > tcalc::token::TOKEN_TYPE_NAMES
 

Detailed Description

Input token definition.

Author
Dessera (desse.nosp@m.ra@q.nosp@m.q.com)
Version
0.2.0
Date
2025-06-14

Enumeration Type Documentation

◆ TokenType

enum class tcalc::token::TokenType : uint8_t
strong

Token type, some values are ASCII code of the corresponding character.

Enumerator
PLUS 
  • operator.
MINUS 
  • operator.
MULTIPLY 
  • operator.
DIVIDE 

/ operator.

LPAREN 

Bracket start.

RPAREN 

Bracket end.

COMMA 

Comma.

SEMICOLON 

Semicolon.

ASSIGN 

Assignment.

GREATER 

‍operator.

LESS 

< operator.

NOT 

! operator.

NUMBER 

Constant number.

IDENTIFIER 

Variable or function name.

DEF 

Function definition.

LET 

Variable definition.

IF 

If statement.

THEN 

Then keyword.

ELSE 

Else keyword.

IMPORT 

Import statement.

EQUAL 

== operator.

NOTEQUAL 

!= operator.

GREATEREQUAL 

>= operator.

LESSEQUAL 

<= operator.

AND 

&& operator.

OR 

|| operator.

EOI 

End of input.

Variable Documentation

◆ TOKEN_TYPE_NAMES

const std::unordered_map<TokenType, std::string> tcalc::token::TOKEN_TYPE_NAMES
inline
Initial value:
= {
{ TokenType::PLUS, "PLUS" },
{ TokenType::MINUS, "MINUS" },
{ TokenType::MULTIPLY, "MULTIPLY" },
{ TokenType::DIVIDE, "DIVIDE" },
{ TokenType::LPAREN, "LPAREN" },
{ TokenType::RPAREN, "RPAREN" },
{ TokenType::COMMA, "COMMA" },
{ TokenType::SEMICOLON, "SEMICOLON" },
{ TokenType::ASSIGN, "ASSIGN" },
{ TokenType::GREATER, "GREATER" },
{ TokenType::LESS, "LESS" },
{ TokenType::NOT, "NOT" },
{ TokenType::NUMBER, "NUMBER" },
{ TokenType::IDENTIFIER, "IDENTIFIER" },
{ TokenType::DEF, "DEF" },
{ TokenType::LET, "LET" },
{ TokenType::IF, "IF" },
{ TokenType::THEN, "THEN" },
{ TokenType::ELSE, "ELSE" },
{ TokenType::IMPORT, "IMPORT" },
{ TokenType::EQUAL, "EQUAL" },
{ TokenType::NOTEQUAL, "NOTEQUAL" },
{ TokenType::GREATEREQUAL, "GREATEREQUAL" },
{ TokenType::LESSEQUAL, "LESSEQUAL" },
{ TokenType::AND, "AND" },
{ TokenType::OR, "OR" },
{ TokenType::EOI, "EOI" },
}

Token type names.