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 #[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}_-])?:([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])")]
333 PNAME_LN,
334 #[token("BLANK_NODE_LABEL")]
335 BLANK_NODE_LABEL,
336 #[token("ANON")]
337 ANON,
338
339 Query,
341 Prologue,
342 SelectQuery,
343 ConstructQuery,
344 DescribeQuery,
345 AskQuery,
346 ValuesClause,
347 UpdateUnit,
348 Update,
349 BaseDecl,
350 PrefixDecl,
351 SelectClause,
352 DatasetClause,
353 WhereClause,
354 SolutionModifier,
355 SubSelect,
356 Var,
357 Expression,
358 ConstructTemplate,
359 TriplesTemplate,
360 VarOrIri,
361 DefaultGraphClause,
362 NamedGraphClause,
363 SourceSelector,
364 iri,
365 GroupGraphPattern,
366 GroupClause,
367 HavingClause,
368 OrderClause,
369 LimitOffsetClauses,
370 GroupCondition,
371 BuiltInCall,
372 FunctionCall,
373 HavingCondition,
374 Constraint,
375 OrderCondition,
376 BrackettedExpression,
377 LimitClause,
378 OffsetClause,
379 DataBlock,
380 UpdateOne,
381 Load,
382 Clear,
383 Drop,
384 Move,
385 Copy,
386 Create,
387 InsertData,
388 DeleteData,
389 DeleteWhere,
390 Modify,
391 GraphRef,
392 GraphRefAll,
393 Add,
394 GraphOrDefault,
395 QuadData,
396 QuadPattern,
397 DeleteClause,
398 InsertClause,
399 UsingClause,
400 Quads,
401 QuadsNotTriples,
402 TriplesSameSubject,
403 GroupGraphPatternSub,
404 TriplesBlock,
405 GraphPatternNotTriples,
406 TriplesSameSubjectPath,
407 GroupOrUnionGraphPattern,
408 OptionalGraphPattern,
409 MinusGraphPattern,
410 GraphGraphPattern,
411 ServiceGraphPattern,
412 Filter,
413 Bind,
414 InlineData,
415 InlineDataOneVar,
416 InlineDataFull,
417 DataBlockValue,
418 RDFLiteral,
419 NumericLiteral,
420 BooleanLiteral,
421 ArgList,
422 ExpressionList,
423 ConstructTriples,
424 VarOrTerm,
425 PropertyListNotEmpty,
426 TriplesNode,
427 PropertyList,
428 Verb,
429 ObjectList,
430 Object,
431 GraphNode,
432 PropertyListPathNotEmpty,
433 TriplesNodePath,
434 PropertyListPath,
435 VerbPath,
436 VerbSimple,
437 ObjectListPath,
438 Path,
439 ObjectPath,
440 GraphNodePath,
441 PathAlternative,
442 PathSequence,
443 PathEltOrInverse,
444 PathElt,
445 PathPrimary,
446 PathMod,
447 PathNegatedPropertySet,
448 PathOneInPropertySet,
449 Integer,
450 Collection,
451 BlankNodePropertyList,
452 CollectionPath,
453 BlankNodePropertyListPath,
454 GraphTerm,
455 BlankNode,
456 ConditionalOrExpression,
457 ConditionalAndExpression,
458 ValueLogical,
459 RelationalExpression,
460 NumericExpression,
461 AdditiveExpression,
462 MultiplicativeExpression,
463 NumericLiteralPositive,
464 NumericLiteralNegative,
465 UnaryExpression,
466 PrimaryExpression,
467 iriOrFunction,
468 Aggregate,
469 SubstringExpression,
470 StrReplaceExpression,
471 RegexExpression,
472 ExistsFunc,
473 NotExistsFunc,
474 String,
475 NumericLiteralUnsigned,
476 PrefixedName,
477 QueryUnit,
478}