tcalc
0.2.0
Loading...
Searching...
No Matches
token.hpp
Go to the documentation of this file.
1
12
#pragma once
13
14
#include <cstdint>
15
#include <string>
16
#include <unordered_map>
17
18
namespace
tcalc::token {
19
24
enum class
TokenType
: uint8_t
25
{
26
PLUS
,
27
MINUS
,
28
MULTIPLY
,
29
DIVIDE
,
30
LPAREN
,
31
RPAREN
,
32
COMMA
,
33
SEMICOLON
,
34
ASSIGN
,
35
GREATER
,
36
LESS
,
37
NOT
,
38
NUMBER,
39
IDENTIFIER
,
40
DEF
,
41
LET
,
42
IF,
43
THEN
,
44
ELSE
,
45
IMPORT,
46
EQUAL
,
47
NOTEQUAL
,
48
GREATEREQUAL
,
49
LESSEQUAL
,
50
AND
,
51
OR
,
52
EOI
,
53
};
54
59
struct
Token
60
{
61
TokenType
type;
62
std::string text;
63
};
64
65
inline
const
std::unordered_map<TokenType, std::string>
TOKEN_TYPE_NAMES
= {
66
{ TokenType::PLUS,
"PLUS"
},
67
{ TokenType::MINUS,
"MINUS"
},
68
{ TokenType::MULTIPLY,
"MULTIPLY"
},
69
{ TokenType::DIVIDE,
"DIVIDE"
},
70
{ TokenType::LPAREN,
"LPAREN"
},
71
{ TokenType::RPAREN,
"RPAREN"
},
72
{ TokenType::COMMA,
"COMMA"
},
73
{ TokenType::SEMICOLON,
"SEMICOLON"
},
74
{ TokenType::ASSIGN,
"ASSIGN"
},
75
{ TokenType::GREATER,
"GREATER"
},
76
{ TokenType::LESS,
"LESS"
},
77
{ TokenType::NOT,
"NOT"
},
78
{ TokenType::NUMBER,
"NUMBER"
},
79
{ TokenType::IDENTIFIER,
"IDENTIFIER"
},
80
{ TokenType::DEF,
"DEF"
},
81
{ TokenType::LET,
"LET"
},
82
{ TokenType::IF,
"IF"
},
83
{ TokenType::THEN,
"THEN"
},
84
{ TokenType::ELSE,
"ELSE"
},
85
{ TokenType::IMPORT,
"IMPORT"
},
86
{ TokenType::EQUAL,
"EQUAL"
},
87
{ TokenType::NOTEQUAL,
"NOTEQUAL"
},
88
{ TokenType::GREATEREQUAL,
"GREATEREQUAL"
},
89
{ TokenType::LESSEQUAL,
"LESSEQUAL"
},
90
{ TokenType::AND,
"AND"
},
91
{ TokenType::OR,
"OR"
},
92
{ TokenType::EOI,
"EOI"
},
93
};
95
}
tcalc::token::Token
Token structure.
Definition
token.hpp:60
tcalc::token::TOKEN_TYPE_NAMES
const std::unordered_map< TokenType, std::string > TOKEN_TYPE_NAMES
Definition
token.hpp:65
tcalc::token::TokenType
TokenType
Token type, some values are ASCII code of the corresponding character.
Definition
token.hpp:25
tcalc::token::TokenType::MULTIPLY
@ MULTIPLY
tcalc::token::TokenType::LESSEQUAL
@ LESSEQUAL
tcalc::token::TokenType::NOT
@ NOT
tcalc::token::TokenType::LESS
@ LESS
tcalc::token::TokenType::OR
@ OR
tcalc::token::TokenType::DIVIDE
@ DIVIDE
tcalc::token::TokenType::GREATEREQUAL
@ GREATEREQUAL
tcalc::token::TokenType::LPAREN
@ LPAREN
tcalc::token::TokenType::COMMA
@ COMMA
tcalc::token::TokenType::AND
@ AND
tcalc::token::TokenType::IDENTIFIER
@ IDENTIFIER
tcalc::token::TokenType::ELSE
@ ELSE
tcalc::token::TokenType::DEF
@ DEF
tcalc::token::TokenType::PLUS
@ PLUS
tcalc::token::TokenType::THEN
@ THEN
tcalc::token::TokenType::NOTEQUAL
@ NOTEQUAL
tcalc::token::TokenType::EQUAL
@ EQUAL
tcalc::token::TokenType::SEMICOLON
@ SEMICOLON
tcalc::token::TokenType::EOI
@ EOI
tcalc::token::TokenType::LET
@ LET
tcalc::token::TokenType::GREATER
@ GREATER
tcalc::token::TokenType::RPAREN
@ RPAREN
tcalc::token::TokenType::MINUS
@ MINUS
tcalc::token::TokenType::ASSIGN
@ ASSIGN
include
tcalc
token.hpp
Generated by
1.9.8