1use logos::Logos;
2
3#[allow(non_camel_case_types)]
4#[derive(Logos, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
5#[repr(u16)]
6pub enum SyntaxKind {
7 Eof = 0,
8 Error,
9 #[regex(r#"[ \t\n\f]+"#)]
10 WHITESPACE,
11 #[token("BASE", ignore(case))]
12 BASE,
13 #[regex(r#"<[^<>\"{}|^`\\\u{00}-\u{20}]*>"#)]
14 IRIREF,
15 #[token("PREFIX", ignore(case))]
16 PREFIX,
17 #[regex("[A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}]([A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}0-9\u{00B7}\u{0300}-\u{036F}\u{203F}-\u{2040}_.-]*[A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}0-9\u{00B7}\u{0300}-\u{036F}\u{203F}-\u{2040}_-])?:")]
18 PNAME_NS,
19 #[token("SELECT", ignore(case))]
20 SELECT,
21 #[token("DISTINCT", ignore(case))]
22 DISTINCT,
23 #[token("REDUCED", ignore(case))]
24 REDUCED,
25 #[token("(")]
26 LParen,
27 #[token("AS", ignore(case))]
28 AS,
29 #[token(")")]
30 RParen,
31 #[token("*")]
32 Star,
33 #[token("CONSTRUCT", ignore(case))]
34 CONSTRUCT,
35 #[token("WHERE", ignore(case))]
36 WHERE,
37 #[token("{")]
38 LCurly,
39 #[token("}")]
40 RCurly,
41 #[token("DESCRIBE", ignore(case))]
42 DESCRIBE,
43 #[token("ASK", ignore(case))]
44 ASK,
45 #[token("FROM", ignore(case))]
46 FROM,
47 #[token("NAMED", ignore(case))]
48 NAMED,
49 #[token("GROUP", ignore(case))]
50 GROUP,
51 #[token("BY", ignore(case))]
52 BY,
53 #[token("HAVING", ignore(case))]
54 HAVING,
55 #[token("ORDER", ignore(case))]
56 ORDER,
57 #[token("ASC", ignore(case))]
58 ASC,
59 #[token("DESC", ignore(case))]
60 DESC,
61 #[token("LIMIT", ignore(case))]
62 LIMIT,
63 #[token("INTEGER", ignore(case))]
64 INTEGER,
65 #[token("OFFSET", ignore(case))]
66 OFFSET,
67 #[token("VALUES", ignore(case))]
68 VALUES,
69 #[token(";")]
70 Semicolon,
71 #[token("LOAD", ignore(case))]
72 LOAD,
73 #[token("SILENT", ignore(case))]
74 SILENT,
75 #[token("INTO", ignore(case))]
76 INTO,
77 #[token("CLEAR", ignore(case))]
78 CLEAR,
79 #[token("DROP", ignore(case))]
80 DROP,
81 #[token("CREATE", ignore(case))]
82 CREATE,
83 #[token("ADD", ignore(case))]
84 ADD,
85 #[token("TO", ignore(case))]
86 TO,
87 #[token("MOVE", ignore(case))]
88 MOVE,
89 #[token("COPY", ignore(case))]
90 COPY,
91 #[token("INSERT", ignore(case))]
92 INSERT,
93 #[token("DATA", ignore(case))]
94 DATA,
95 INSERT_DATA,
96 #[regex(r"(?i)DELETE\s+DATA")]
97 DELETE_DATA,
98 #[token(r"(?i)DELETE\s+WHERE")]
99 DELETE_WHERE,
100 #[token("DELETE", ignore(case))]
101 DELETE,
102 #[token("WITH", ignore(case))]
103 WITH,
104 #[token("USING", ignore(case))]
105 USING,
106 #[token("DEFAULT", ignore(case))]
107 DEFAULT,
108 #[token("GRAPH", ignore(case))]
109 GRAPH,
110 #[token("ALL", ignore(case))]
111 ALL,
112 #[token(".")]
113 Dot,
114 #[token("OPTIONAL", ignore(case))]
115 OPTIONAL,
116 #[token("SERVICE", ignore(case))]
117 SERVICE,
118 #[token("BIND", ignore(case))]
119 BIND,
120 #[token("NIL", ignore(case))]
121 NIL,
122 #[token("UNDEF", ignore(case))]
123 UNDEF,
124 #[token("MINUS", ignore(case))]
125 MINUS,
126 #[token("UNION", ignore(case))]
127 UNION,
128 #[token("FILTER", ignore(case))]
129 FILTER,
130 #[token(":")]
131 Colon,
132 #[token("a")]
133 a,
134 #[token("|")]
135 Pipe,
136 #[token("/")]
137 Slash,
138 #[token("^")]
139 Zirkumflex,
140 #[token("?")]
141 QuestionMark,
142 #[token("+")]
143 Plus,
144 #[token("!")]
145 ExclamationMark,
146 #[token("[")]
147 LBrack,
148 #[token("]")]
149 RBrack,
150 #[regex("\\?[A-Za-z]+")]
151 VAR1,
152 #[regex("\\$[A-Za-z]+")]
153 VAR2,
154 #[token("||")]
155 DoublePipe,
156 #[token("&&")]
157 DoubleAnd,
158 #[token("=")]
159 Equals,
160 #[token("!=")]
161 ExclamationMarkEquals,
162 #[token("<")]
163 Less,
164 #[token(">")]
165 More,
166 #[token("<=")]
167 LessEquals,
168 #[token(">=")]
169 MoreEquals,
170 #[token("IN")]
171 IN,
172 #[token("NOT")]
173 NOT,
174 #[token("-")]
175 Minus,
176 #[token("STR")]
177 STR,
178 #[token("LANG")]
179 LANG,
180 #[token("LANGMATCHES")]
181 LANGMATCHES,
182 #[token("DATATYPE")]
183 DATATYPE,
184 #[token("BOUND")]
185 BOUND,
186 #[token("IRI")]
187 IRI,
188 #[token("URI")]
189 URI,
190 #[token("BNODE")]
191 BNODE,
192 #[token("RAND")]
193 RAND,
194 #[token("ABS")]
195 ABS,
196 #[token("CEIL")]
197 CEIL,
198 #[token("FLOOR")]
199 FLOOR,
200 #[token("ROUND")]
201 ROUND,
202 #[token("CONCAT")]
203 CONCAT,
204 #[token("STRLEN")]
205 STRLEN,
206 #[token("UCASE")]
207 UCASE,
208 #[token("LCASE")]
209 LCASE,
210 #[token("ENCODE_FOR_URI")]
211 ENCODE_FOR_URI,
212 #[token("CONTAINS")]
213 CONTAINS,
214 #[token("STRSTARTS")]
215 STRSTARTS,
216 #[token("STRENDS")]
217 STRENDS,
218 #[token("STRBEFORE")]
219 STRBEFORE,
220 #[token("STRAFTER")]
221 STRAFTER,
222 #[token("YEAR")]
223 YEAR,
224 #[token("MONTH")]
225 MONTH,
226 #[token("DAY")]
227 DAY,
228 #[token("HOURS")]
229 HOURS,
230 #[token("MINUTES")]
231 MINUTES,
232 #[token("SECONDS")]
233 SECONDS,
234 #[token("TIMEZONE")]
235 TIMEZONE,
236 #[token("TZ")]
237 TZ,
238 #[token("NOW")]
239 NOW,
240 #[token("UUID")]
241 UUID,
242 #[token("STRUUID")]
243 STRUUID,
244 #[token("MD5")]
245 MD5,
246 #[token("SHA1")]
247 SHA1,
248 #[token("SHA256")]
249 SHA256,
250 #[token("SHA384")]
251 SHA384,
252 #[token("SHA512")]
253 SHA512,
254 #[token("COALESCE")]
255 COALESCE,
256 #[token("IF")]
257 IF,
258 #[token("STRLANG")]
259 STRLANG,
260 #[token("STRDT")]
261 STRDT,
262 #[token("sameTerm")]
263 sameTerm,
264 #[token("isIRI")]
265 isIRI,
266 #[token("isURI")]
267 isURI,
268 #[token("isBLANK")]
269 isBLANK,
270 #[token("isLITERAL")]
271 isLITERAL,
272 #[token("isNUMERIC")]
273 isNUMERIC,
274 #[token("REGEX")]
275 REGEX,
276 #[token("SUBSTR")]
277 SUBSTR,
278 #[token("REPLACE")]
279 REPLACE,
280 #[token("EXISTS")]
281 EXISTS,
282 #[token("COUNT")]
283 COUNT,
284 #[token("SUM")]
285 SUM,
286 #[token("MIN")]
287 MIN,
288 #[token("MAX")]
289 MAX,
290 #[token("AVG")]
291 AVG,
292 #[token("SAMPLE")]
293 SAMPLE,
294 #[token("GROUP_CONCAT")]
295 GROUP_CONCAT,
296 #[token("SEPARATOR")]
297 SEPARATOR,
298 #[token("LANGTAG")]
299 LANGTAG,
300 #[token("DoubleZirkumflex")]
301 DoubleZirkumflex,
302 #[token("DECIMAL")]
303 DECIMAL,
304 #[token("DOUBLE")]
305 DOUBLE,
306 #[token("INTEGER_POSITIVE")]
307 INTEGER_POSITIVE,
308 #[token("DECIMAL_POSITIVE")]
309 DECIMAL_POSITIVE,
310 #[token("DOUBLE_POSITIVE")]
311 DOUBLE_POSITIVE,
312 #[token("INTEGER_NEGATIVE")]
313 INTEGER_NEGATIVE,
314 #[token("DECIMAL_NEGATIVE")]
315 DECIMAL_NEGATIVE,
316 #[token("DOUBLE_NEGATIVE")]
317 DOUBLE_NEGATIVE,
318 #[token("true")]
319 True,
320 #[token("false")]
321 False,
322 #[regex("'[^\u{27}\u{5C}\u{A}\u{D}]*'")]
323 STRING_LITERAL1,
324 #[regex(r#""([^"\\\x00-\x1F]|\\(["\\bnfrt/]|u[a-fA-F0-9]{4}))*""#)]
325 STRING_LITERAL2,
326 #[token("STRING_LITERAL_LONG1")]
328 STRING_LITERAL_LONG1,
329 #[token("STRING_LITERAL_LONG2")]
331 STRING_LITERAL_LONG2,
332
333 #[regex("([A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_0-9:]|%[0-9A-Fa-f])([A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}0-9\u{00B7}\u{0300}-\u{036F}\u{203F}-\u{2040}_:.-]|%[0-9A-Fa-f])*([A-Za-z\u{00C0}-\u{00D6}\u{00D8}-\u{00F6}\u{00F8}-\u{02FF}\u{0370}-\u{037D}\u{037F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}0-9\u{00B7}\u{0300}-\u{036F}\u{203F}-\u{2040}_:-]|%[0-9A-Fa-f])", priority=1)]
337 PNAME_LN,
338 #[token("BLANK_NODE_LABEL")]
339 BLANK_NODE_LABEL,
340 #[token("ANON")]
341 ANON,
342
343 Query,
345 Prologue,
346 SelectQuery,
347 ConstructQuery,
348 DescribeQuery,
349 AskQuery,
350 ValuesClause,
351 UpdateUnit,
352 Update,
353 BaseDecl,
354 PrefixDecl,
355 SelectClause,
356 DatasetClause,
357 WhereClause,
358 SolutionModifier,
359 SubSelect,
360 Var,
361 Expression,
362 ConstructTemplate,
363 TriplesTemplate,
364 VarOrIri,
365 DefaultGraphClause,
366 NamedGraphClause,
367 SourceSelector,
368 iri,
369 GroupGraphPattern,
370 GroupClause,
371 HavingClause,
372 OrderClause,
373 LimitOffsetClauses,
374 GroupCondition,
375 BuiltInCall,
376 FunctionCall,
377 HavingCondition,
378 Constraint,
379 OrderCondition,
380 BrackettedExpression,
381 LimitClause,
382 OffsetClause,
383 DataBlock,
384 UpdateOne,
385 Load,
386 Clear,
387 Drop,
388 Move,
389 Copy,
390 Create,
391 InsertData,
392 DeleteData,
393 DeleteWhere,
394 Modify,
395 GraphRef,
396 GraphRefAll,
397 Add,
398 GraphOrDefault,
399 QuadData,
400 QuadPattern,
401 DeleteClause,
402 InsertClause,
403 UsingClause,
404 Quads,
405 QuadsNotTriples,
406 TriplesSameSubject,
407 GroupGraphPatternSub,
408 TriplesBlock,
409 GraphPatternNotTriples,
410 TriplesSameSubjectPath,
411 GroupOrUnionGraphPattern,
412 OptionalGraphPattern,
413 MinusGraphPattern,
414 GraphGraphPattern,
415 ServiceGraphPattern,
416 Filter,
417 Bind,
418 InlineData,
419 InlineDataOneVar,
420 InlineDataFull,
421 DataBlockValue,
422 RDFLiteral,
423 NumericLiteral,
424 BooleanLiteral,
425 ArgList,
426 ExpressionList,
427 ConstructTriples,
428 VarOrTerm,
429 PropertyListNotEmpty,
430 TriplesNode,
431 PropertyList,
432 Verb,
433 ObjectList,
434 Object,
435 GraphNode,
436 PropertyListPathNotEmpty,
437 TriplesNodePath,
438 PropertyListPath,
439 VerbPath,
440 VerbSimple,
441 ObjectListPath,
442 Path,
443 ObjectPath,
444 GraphNodePath,
445 PathAlternative,
446 PathSequence,
447 PathEltOrInverse,
448 PathElt,
449 PathPrimary,
450 PathMod,
451 PathNegatedPropertySet,
452 PathOneInPropertySet,
453 Integer,
454 Collection,
455 BlankNodePropertyList,
456 CollectionPath,
457 BlankNodePropertyListPath,
458 GraphTerm,
459 BlankNode,
460 ConditionalOrExpression,
461 ConditionalAndExpression,
462 ValueLogical,
463 RelationalExpression,
464 NumericExpression,
465 AdditiveExpression,
466 MultiplicativeExpression,
467 NumericLiteralPositive,
468 NumericLiteralNegative,
469 UnaryExpression,
470 PrimaryExpression,
471 iriOrFunction,
472 Aggregate,
473 SubstringExpression,
474 StrReplaceExpression,
475 RegexExpression,
476 ExistsFunc,
477 NotExistsFunc,
478 String,
479 NumericLiteralUnsigned,
480 PrefixedName,
481 QueryUnit,
482}