ll_sparql_parser/syntax_kind/
generated.rs

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    // TODO: add regex
327    #[token("STRING_LITERAL_LONG1")]
328    STRING_LITERAL_LONG1,
329    // TODO: add regex
330    #[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    // Composite nodes
340    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}