glsl_lang_pp/lexer/glue/
token.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
2#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
3#[repr(u16)]
4pub enum Token {
5 IDENT_KW = 1,
7 DEFINED = 2,
9 DIGITS = 3,
11 PERIOD = 4,
14 PLUS = 5,
16 DASH = 6,
18 SLASH = 7,
20 ASTERISK = 8,
22 PERCENT = 9,
24 LANGLE = 10,
26 RANGLE = 11,
28 LBRACKET = 12,
30 RBRACKET = 13,
32 LPAREN = 14,
34 RPAREN = 15,
36 LBRACE = 16,
38 RBRACE = 17,
40 CARET = 18,
42 BAR = 19,
44 AMPERSAND = 20,
46 TILDE = 21,
48 EQUAL = 22,
50 BANG = 23,
52 COLON = 24,
54 SEMICOLON = 25,
56 COMMA = 26,
58 QUESTION = 27,
60 HASH = 28,
62 QUOTE_STRING = 29,
65 ANGLE_STRING = 30,
67 BACKSLASH = 31,
69 WS = 32,
71 NEWLINE = 33,
73 COMMENT = 34,
75 LINECONT = 35,
77 ERROR = 36,
79 LEFT_OP = 37,
82 RIGHT_OP = 38,
84 INC_OP = 39,
86 DEC_OP = 40,
88 LE_OP = 41,
90 GE_OP = 42,
92 EQ_OP = 43,
94 NE_OP = 44,
96 AND_OP = 45,
98 OR_OP = 46,
100 XOR_OP = 47,
102 MUL_ASSIGN = 48,
104 DIV_ASSIGN = 49,
106 ADD_ASSIGN = 50,
108 MOD_ASSIGN = 51,
110 LEFT_ASSIGN = 52,
112 RIGHT_ASSIGN = 53,
114 AND_ASSIGN = 54,
116 XOR_ASSIGN = 55,
118 OR_ASSIGN = 56,
120 SUB_ASSIGN = 57,
122 PP_CONCAT = 58,
124}
125
126impl Token {
127 pub fn is_trivia(&self) -> bool {
128 matches!(self, Self::LINECONT | Self::WS | Self::COMMENT)
129 }
130}
131
132impl From<crate::lexer::PreToken> for Token {
133 fn from(pre: crate::lexer::PreToken) -> Self {
134 unsafe { std::mem::transmute(std::mem::transmute::<crate::lexer::PreToken, u16>(pre)) }
136 }
137}