1#![allow(clippy::upper_case_acronyms, missing_docs)]
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
9#[repr(u32)]
10pub enum TokenType {
11 Abort = 1,
12 Action = 2,
13 After = 3,
14 Analyze = 4,
15 Asc = 5,
16 Attach = 6,
17 Before = 7,
18 Begin = 8,
19 By = 9,
20 Cascade = 10,
21 Cast = 11,
22 Conflict = 12,
23 Database = 13,
24 Deferred = 14,
25 Desc = 15,
26 Detach = 16,
27 Each = 17,
28 End = 18,
29 Exclusive = 19,
30 Explain = 20,
31 Fail = 21,
32 Or = 22,
33 And = 23,
34 Not = 24,
35 Is = 25,
36 IsNot = 26,
37 Match = 27,
38 LikeKw = 28,
39 Between = 29,
40 In = 30,
41 IsNull = 31,
42 NotNull = 32,
43 Ne = 33,
44 Eq = 34,
45 Gt = 35,
46 Le = 36,
47 Lt = 37,
48 Ge = 38,
49 Escape = 39,
50 Id = 40,
51 ColumnKw = 41,
52 Do = 42,
53 For = 43,
54 Ignore = 44,
55 Immediate = 45,
56 Initially = 46,
57 Instead = 47,
58 No = 48,
59 Plan = 49,
60 Query = 50,
61 Key = 51,
62 Of = 52,
63 Offset = 53,
64 Pragma = 54,
65 Raise = 55,
66 Recursive = 56,
67 Release = 57,
68 Replace = 58,
69 Restrict = 59,
70 Row = 60,
71 Rows = 61,
72 Rollback = 62,
73 Savepoint = 63,
74 Temp = 64,
75 Trigger = 65,
76 Vacuum = 66,
77 View = 67,
78 Virtual = 68,
79 With = 69,
80 Without = 70,
81 Nulls = 71,
82 First = 72,
83 Last = 73,
84 Current = 74,
85 Following = 75,
86 Partition = 76,
87 Preceding = 77,
88 Range = 78,
89 Unbounded = 79,
90 Exclude = 80,
91 Groups = 81,
92 Others = 82,
93 Ties = 83,
94 Generated = 84,
95 Always = 85,
96 Within = 86,
97 Materialized = 87,
98 Reindex = 88,
99 Rename = 89,
100 CtimeKw = 90,
101 If = 91,
102 Any = 92,
103 Bitand = 93,
104 Bitor = 94,
105 Lshift = 95,
106 Rshift = 96,
107 Plus = 97,
108 Minus = 98,
109 Star = 99,
110 Slash = 100,
111 Rem = 101,
112 Concat = 102,
113 Ptr = 103,
114 Collate = 104,
115 Bitnot = 105,
116 On = 106,
117 Indexed = 107,
118 String = 108,
119 JoinKw = 109,
120 Integer = 110,
121 Float = 111,
122 Semi = 112,
123 Lp = 113,
124 Order = 114,
125 Rp = 115,
126 Group = 116,
127 As = 117,
128 Comma = 118,
129 Dot = 119,
130 Union = 120,
131 All = 121,
132 Except = 122,
133 Intersect = 123,
134 Exists = 124,
135 Null = 125,
136 Distinct = 126,
137 From = 127,
138 Case = 128,
139 When = 129,
140 Then = 130,
141 Else = 131,
142 Table = 132,
143 Constraint = 133,
144 Default = 134,
145 Primary = 135,
146 Unique = 136,
147 Check = 137,
148 References = 138,
149 Autoincr = 139,
150 Insert = 140,
151 Delete = 141,
152 Update = 142,
153 Set = 143,
154 Deferrable = 144,
155 Foreign = 145,
156 Into = 146,
157 Values = 147,
158 Where = 148,
159 Returning = 149,
160 Nothing = 150,
161 Blob = 151,
162 Qnumber = 152,
163 Variable = 153,
164 Drop = 154,
165 Index = 155,
166 Alter = 156,
167 To = 157,
168 Add = 158,
169 Commit = 159,
170 Transaction = 160,
171 Select = 161,
172 Having = 162,
173 Limit = 163,
174 Join = 164,
175 Using = 165,
176 Create = 166,
177 Window = 167,
178 Over = 168,
179 Filter = 169,
180 Column = 170,
181 AggFunction = 171,
182 AggColumn = 172,
183 TrueFalse = 173,
184 Function = 174,
185 Uplus = 175,
186 Uminus = 176,
187 Truth = 177,
188 Register = 178,
189 Vector = 179,
190 SelectColumn = 180,
191 IfNullRow = 181,
192 Asterisk = 182,
193 Span = 183,
194 Error = 184,
195 Space = 185,
196 Comment = 186,
197 Illegal = 187,
198}
199
200impl From<TokenType> for u32 {
201 fn from(t: TokenType) -> u32 {
202 t as u32
203 }
204}
205
206impl From<TokenType> for crate::any::AnyTokenType {
207 fn from(t: TokenType) -> crate::any::AnyTokenType {
208 crate::any::AnyTokenType::from_raw(t as u32)
209 }
210}
211
212impl crate::ast::GrammarTokenType for TokenType {
213 #[expect(clippy::too_many_lines)]
214 fn from_token_type(raw: crate::any::AnyTokenType) -> Option<Self> {
215 match raw.0 {
216 1 => Some(TokenType::Abort),
217 2 => Some(TokenType::Action),
218 3 => Some(TokenType::After),
219 4 => Some(TokenType::Analyze),
220 5 => Some(TokenType::Asc),
221 6 => Some(TokenType::Attach),
222 7 => Some(TokenType::Before),
223 8 => Some(TokenType::Begin),
224 9 => Some(TokenType::By),
225 10 => Some(TokenType::Cascade),
226 11 => Some(TokenType::Cast),
227 12 => Some(TokenType::Conflict),
228 13 => Some(TokenType::Database),
229 14 => Some(TokenType::Deferred),
230 15 => Some(TokenType::Desc),
231 16 => Some(TokenType::Detach),
232 17 => Some(TokenType::Each),
233 18 => Some(TokenType::End),
234 19 => Some(TokenType::Exclusive),
235 20 => Some(TokenType::Explain),
236 21 => Some(TokenType::Fail),
237 22 => Some(TokenType::Or),
238 23 => Some(TokenType::And),
239 24 => Some(TokenType::Not),
240 25 => Some(TokenType::Is),
241 26 => Some(TokenType::IsNot),
242 27 => Some(TokenType::Match),
243 28 => Some(TokenType::LikeKw),
244 29 => Some(TokenType::Between),
245 30 => Some(TokenType::In),
246 31 => Some(TokenType::IsNull),
247 32 => Some(TokenType::NotNull),
248 33 => Some(TokenType::Ne),
249 34 => Some(TokenType::Eq),
250 35 => Some(TokenType::Gt),
251 36 => Some(TokenType::Le),
252 37 => Some(TokenType::Lt),
253 38 => Some(TokenType::Ge),
254 39 => Some(TokenType::Escape),
255 40 => Some(TokenType::Id),
256 41 => Some(TokenType::ColumnKw),
257 42 => Some(TokenType::Do),
258 43 => Some(TokenType::For),
259 44 => Some(TokenType::Ignore),
260 45 => Some(TokenType::Immediate),
261 46 => Some(TokenType::Initially),
262 47 => Some(TokenType::Instead),
263 48 => Some(TokenType::No),
264 49 => Some(TokenType::Plan),
265 50 => Some(TokenType::Query),
266 51 => Some(TokenType::Key),
267 52 => Some(TokenType::Of),
268 53 => Some(TokenType::Offset),
269 54 => Some(TokenType::Pragma),
270 55 => Some(TokenType::Raise),
271 56 => Some(TokenType::Recursive),
272 57 => Some(TokenType::Release),
273 58 => Some(TokenType::Replace),
274 59 => Some(TokenType::Restrict),
275 60 => Some(TokenType::Row),
276 61 => Some(TokenType::Rows),
277 62 => Some(TokenType::Rollback),
278 63 => Some(TokenType::Savepoint),
279 64 => Some(TokenType::Temp),
280 65 => Some(TokenType::Trigger),
281 66 => Some(TokenType::Vacuum),
282 67 => Some(TokenType::View),
283 68 => Some(TokenType::Virtual),
284 69 => Some(TokenType::With),
285 70 => Some(TokenType::Without),
286 71 => Some(TokenType::Nulls),
287 72 => Some(TokenType::First),
288 73 => Some(TokenType::Last),
289 74 => Some(TokenType::Current),
290 75 => Some(TokenType::Following),
291 76 => Some(TokenType::Partition),
292 77 => Some(TokenType::Preceding),
293 78 => Some(TokenType::Range),
294 79 => Some(TokenType::Unbounded),
295 80 => Some(TokenType::Exclude),
296 81 => Some(TokenType::Groups),
297 82 => Some(TokenType::Others),
298 83 => Some(TokenType::Ties),
299 84 => Some(TokenType::Generated),
300 85 => Some(TokenType::Always),
301 86 => Some(TokenType::Within),
302 87 => Some(TokenType::Materialized),
303 88 => Some(TokenType::Reindex),
304 89 => Some(TokenType::Rename),
305 90 => Some(TokenType::CtimeKw),
306 91 => Some(TokenType::If),
307 92 => Some(TokenType::Any),
308 93 => Some(TokenType::Bitand),
309 94 => Some(TokenType::Bitor),
310 95 => Some(TokenType::Lshift),
311 96 => Some(TokenType::Rshift),
312 97 => Some(TokenType::Plus),
313 98 => Some(TokenType::Minus),
314 99 => Some(TokenType::Star),
315 100 => Some(TokenType::Slash),
316 101 => Some(TokenType::Rem),
317 102 => Some(TokenType::Concat),
318 103 => Some(TokenType::Ptr),
319 104 => Some(TokenType::Collate),
320 105 => Some(TokenType::Bitnot),
321 106 => Some(TokenType::On),
322 107 => Some(TokenType::Indexed),
323 108 => Some(TokenType::String),
324 109 => Some(TokenType::JoinKw),
325 110 => Some(TokenType::Integer),
326 111 => Some(TokenType::Float),
327 112 => Some(TokenType::Semi),
328 113 => Some(TokenType::Lp),
329 114 => Some(TokenType::Order),
330 115 => Some(TokenType::Rp),
331 116 => Some(TokenType::Group),
332 117 => Some(TokenType::As),
333 118 => Some(TokenType::Comma),
334 119 => Some(TokenType::Dot),
335 120 => Some(TokenType::Union),
336 121 => Some(TokenType::All),
337 122 => Some(TokenType::Except),
338 123 => Some(TokenType::Intersect),
339 124 => Some(TokenType::Exists),
340 125 => Some(TokenType::Null),
341 126 => Some(TokenType::Distinct),
342 127 => Some(TokenType::From),
343 128 => Some(TokenType::Case),
344 129 => Some(TokenType::When),
345 130 => Some(TokenType::Then),
346 131 => Some(TokenType::Else),
347 132 => Some(TokenType::Table),
348 133 => Some(TokenType::Constraint),
349 134 => Some(TokenType::Default),
350 135 => Some(TokenType::Primary),
351 136 => Some(TokenType::Unique),
352 137 => Some(TokenType::Check),
353 138 => Some(TokenType::References),
354 139 => Some(TokenType::Autoincr),
355 140 => Some(TokenType::Insert),
356 141 => Some(TokenType::Delete),
357 142 => Some(TokenType::Update),
358 143 => Some(TokenType::Set),
359 144 => Some(TokenType::Deferrable),
360 145 => Some(TokenType::Foreign),
361 146 => Some(TokenType::Into),
362 147 => Some(TokenType::Values),
363 148 => Some(TokenType::Where),
364 149 => Some(TokenType::Returning),
365 150 => Some(TokenType::Nothing),
366 151 => Some(TokenType::Blob),
367 152 => Some(TokenType::Qnumber),
368 153 => Some(TokenType::Variable),
369 154 => Some(TokenType::Drop),
370 155 => Some(TokenType::Index),
371 156 => Some(TokenType::Alter),
372 157 => Some(TokenType::To),
373 158 => Some(TokenType::Add),
374 159 => Some(TokenType::Commit),
375 160 => Some(TokenType::Transaction),
376 161 => Some(TokenType::Select),
377 162 => Some(TokenType::Having),
378 163 => Some(TokenType::Limit),
379 164 => Some(TokenType::Join),
380 165 => Some(TokenType::Using),
381 166 => Some(TokenType::Create),
382 167 => Some(TokenType::Window),
383 168 => Some(TokenType::Over),
384 169 => Some(TokenType::Filter),
385 170 => Some(TokenType::Column),
386 171 => Some(TokenType::AggFunction),
387 172 => Some(TokenType::AggColumn),
388 173 => Some(TokenType::TrueFalse),
389 174 => Some(TokenType::Function),
390 175 => Some(TokenType::Uplus),
391 176 => Some(TokenType::Uminus),
392 177 => Some(TokenType::Truth),
393 178 => Some(TokenType::Register),
394 179 => Some(TokenType::Vector),
395 180 => Some(TokenType::SelectColumn),
396 181 => Some(TokenType::IfNullRow),
397 182 => Some(TokenType::Asterisk),
398 183 => Some(TokenType::Span),
399 184 => Some(TokenType::Error),
400 185 => Some(TokenType::Space),
401 186 => Some(TokenType::Comment),
402 187 => Some(TokenType::Illegal),
403 _ => None,
404 }
405 }
406}