1use crate::TokenTrait;
2pub type SyntaxNode = rowan::SyntaxNode<Lang>;
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, logos :: Logos)]
4# [logos (subpattern HEX = r#"([0-9]|[A-F]|[a-f])"#)]
5# [logos (subpattern UCHAR = r#"(\\u(?&HEX)(?&HEX)(?&HEX)(?&HEX)|\\U(?&HEX)(?&HEX)(?&HEX)(?&HEX)(?&HEX)(?&HEX)(?&HEX)(?&HEX))"#)]
6# [logos (subpattern IRIREF = r#"<(([^\x{00}-\x{20}<>"{}|^`\\]|(?&UCHAR)))*>"#)]
7# [logos (subpattern PN_CHARS_BASE = r#"([A-Z]|[a-z]|[\x{00C0}-\x{00D6}]|[\x{00D8}-\x{00F6}]|[\x{00F8}-\x{02FF}]|[\x{0370}-\x{037D}]|[\x{037F}-\x{1FFF}]|[\x{200C}-\x{200D}]|[\x{2070}-\x{218F}]|[\x{2C00}-\x{2FEF}]|[\x{3001}-\x{D7FF}]|[\x{F900}-\x{FDCF}]|[\x{FDF0}-\x{FFFD}]|[\x{10000}-\x{EFFFF}])"#)]
8# [logos (subpattern PN_CHARS_U = r#"((?&PN_CHARS_BASE)|_)"#)]
9# [logos (subpattern PN_CHARS = r#"((?&PN_CHARS_U)|-|[0-9]|\u00B7|[\x{0300}-\x{036F}]|[\x{203F}-\x{2040}])"#)]
10# [logos (subpattern PN_PREFIX = r#"(?&PN_CHARS_BASE)((((?&PN_CHARS)|\.))*(?&PN_CHARS))?"#)]
11# [logos (subpattern PNAME_NS = r#"((?&PN_PREFIX))?:"#)]
12# [logos (subpattern PERCENT = r#"%(?&HEX)(?&HEX)"#)]
13# [logos (subpattern PN_LOCAL_ESC = r#"\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|/|\?|#|@|%)"#)]
14# [logos (subpattern PLX = r#"((?&PERCENT)|(?&PN_LOCAL_ESC))"#)]
15# [logos (subpattern PN_LOCAL = r#"((?&PN_CHARS_U)|:|[0-9]|(?&PLX))((((?&PN_CHARS)|\.|:|(?&PLX)))*((?&PN_CHARS)|:|(?&PLX)))?"#)]
16# [logos (subpattern PNAME_LN = r#"(?&PNAME_NS)(?&PN_LOCAL)"#)]
17# [logos (subpattern BLANK_NODE_LABEL = r#"_:((?&PN_CHARS_U)|[0-9])((((?&PN_CHARS)|\.))*(?&PN_CHARS))?"#)]
18# [logos (subpattern LANGTAG = r#"@([a-zA-Z])+(-([a-zA-Z0-9])+)*"#)]
19# [logos (subpattern INTEGER = r#"([+-])?([0-9])+"#)]
20# [logos (subpattern DECIMAL = r#"([+-])?([0-9])*\.([0-9])+"#)]
21# [logos (subpattern EXPONENT = r#"[eE]([+-])?([0-9])+"#)]
22# [logos (subpattern DOUBLE = r#"([+-])?(([0-9])+\.([0-9])*(?&EXPONENT)|\.([0-9])+(?&EXPONENT)|([0-9])+(?&EXPONENT))"#)]
23# [logos (subpattern ECHAR = r#"\\[tbnrf"'\\]"#)]
24# [logos (subpattern STRING_LITERAL_QUOTE = r#""(([^\x{22}\x{5C}\x{A}\x{D}]|(?&ECHAR)|(?&UCHAR)))*""#)]
25# [logos (subpattern STRING_LITERAL_SINGLE_QUOTE = r#"'(([^\x{27}\x{5C}\x{A}\x{D}]|(?&ECHAR)|(?&UCHAR)))*'"#)]
26# [logos (subpattern STRING_LITERAL_LONG_SINGLE_QUOTE = r#"'''((('|''))?([^'\\]|(?&ECHAR)|(?&UCHAR)))*'''"#)]
27# [logos (subpattern STRING_LITERAL_LONG_QUOTE = r#""""((("|""))?([^"\\]|(?&ECHAR)|(?&UCHAR)))*""""#)]
28# [logos (subpattern WS = r#"(\u0020|\u0009|\u000D|\u000A)"#)]
29#[repr(u16)]
30pub enum SyntaxKind {
31 Eof = 0,
32 #[regex(r"[ \t\n\r]+")]
33 WhiteSpace,
34 #[regex(r"#[^\n]*", allow_greedy = true)]
35 Comment,
36 #[doc = r" producings"]
37 BlankNode,
38 BooleanLiteral,
39 NumericLiteral,
40 PrefixedName,
41 Rdfliteral,
42 MyString,
43 Base,
44 BlankNodePropertyList,
45 BlankNodePropertyList2,
46 Block,
47 Collection,
48 Directive,
49 GraphBlock,
50 GraphTerm,
51 Iri,
52 Literal,
53 Object,
54 ObjectList,
55 Predicate,
56 PredicateObjectList,
57 PrefixId,
58 SparqlBase,
59 SparqlPrefix,
60 Subject,
61 TrigDoc,
62 Triples,
63 TriplesBlock,
64 Verb,
65 WrappedGraph,
66 #[doc = r" terminals"]
67 #[token("(")]
68 ClOpen,
69 #[token(")")]
70 ClClose,
71 #[token(",")]
72 Comma,
73 #[token(".")]
74 Stop,
75 #[token(";")]
76 Colon,
77 #[token("@base")]
78 BaseToken,
79 #[token("@prefix")]
80 PrefixToken,
81 #[token("BASE", ignore(case))]
82 SparqlBaseToken,
83 #[token("GRAPH", ignore(case))]
84 GraphToken,
85 #[token("PREFIX", ignore(case))]
86 SparqlPrefixToken,
87 #[token("[")]
88 SqOpen,
89 #[token("]")]
90 SqClose,
91 #[token("^^")]
92 Datatype,
93 #[token("a")]
94 Alit,
95 #[token("false")]
96 FalseLit,
97 #[token("true")]
98 TrueLit,
99 #[token("{")]
100 CurlyOpen,
101 #[token("}")]
102 CurlyClose,
103 #[regex("(?&BLANK_NODE_LABEL)")]
104 BlankNodeLabel,
105 #[regex("(?&DECIMAL)")]
106 Decimal,
107 #[regex("(?&DOUBLE)")]
108 Double,
109 #[regex("(?&INTEGER)")]
110 Integer,
111 #[regex("(?&IRIREF)")]
112 Iriref,
113 #[regex("(?&LANGTAG)")]
114 Langtag,
115 #[regex("(?&PNAME_LN)")]
116 PnameLn,
117 #[regex("(?&PNAME_NS)")]
118 PnameNs,
119 #[regex("(?&STRING_LITERAL_LONG_QUOTE)")]
120 StringLiteralLongQuote,
121 #[regex("(?&STRING_LITERAL_LONG_SINGLE_QUOTE)")]
122 StringLiteralLongSingleQuote,
123 #[regex("(?&STRING_LITERAL_QUOTE)")]
124 StringLiteralQuote,
125 #[regex("(?&STRING_LITERAL_SINGLE_QUOTE)")]
126 StringLiteralSingleQuote,
127 Error,
128 ROOT,
129}
130impl From<SyntaxKind> for rowan::SyntaxKind {
131 fn from(kind: SyntaxKind) -> Self {
132 Self(kind as u16)
133 }
134}
135impl From<rowan::SyntaxKind> for SyntaxKind {
136 fn from(value: rowan::SyntaxKind) -> Self {
137 assert!(value.0 <= SyntaxKind::ROOT as u16);
138 unsafe { std::mem::transmute::<u16, SyntaxKind>(value.0) }
139 }
140}
141#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
142pub enum Lang {}
143impl rowan::Language for Lang {
144 type Kind = SyntaxKind;
145 fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
146 assert!(raw.0 <= SyntaxKind::ROOT as u16);
147 unsafe { std::mem::transmute::<u16, SyntaxKind>(raw.0) }
148 }
149 fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
150 kind.into()
151 }
152}
153mod definitions {
154 use super::*;
155 #[derive(Debug, Clone, Copy)]
156 pub struct Rule {
157 pub kind: SyntaxKind,
158 pub state: usize,
159 }
160 impl Rule {
161 pub fn new(kind: SyntaxKind) -> Self {
162 match kind {
163 SyntaxKind::TrigDoc => Rule {
164 kind,
165 state: 1usize,
166 },
167 SyntaxKind::Directive => Rule {
168 kind,
169 state: 1usize,
170 },
171 SyntaxKind::PrefixId => Rule {
172 kind,
173 state: 4usize,
174 },
175 SyntaxKind::Base => Rule {
176 kind,
177 state: 3usize,
178 },
179 SyntaxKind::SparqlPrefix => Rule {
180 kind,
181 state: 3usize,
182 },
183 SyntaxKind::SparqlBase => Rule {
184 kind,
185 state: 2usize,
186 },
187 SyntaxKind::Block => Rule {
188 kind,
189 state: 1usize,
190 },
191 SyntaxKind::GraphBlock => Rule {
192 kind,
193 state: 2usize,
194 },
195 SyntaxKind::WrappedGraph => Rule {
196 kind,
197 state: 4usize,
198 },
199 SyntaxKind::TriplesBlock => Rule {
200 kind,
201 state: 5usize,
202 },
203 SyntaxKind::Triples => Rule {
204 kind,
205 state: 1usize,
206 },
207 SyntaxKind::PredicateObjectList => Rule {
208 kind,
209 state: 7usize,
210 },
211 SyntaxKind::ObjectList => Rule {
212 kind,
213 state: 4usize,
214 },
215 SyntaxKind::Verb => Rule {
216 kind,
217 state: 1usize,
218 },
219 SyntaxKind::GraphTerm => Rule {
220 kind,
221 state: 1usize,
222 },
223 SyntaxKind::Subject => Rule {
224 kind,
225 state: 1usize,
226 },
227 SyntaxKind::Predicate => Rule {
228 kind,
229 state: 1usize,
230 },
231 SyntaxKind::Object => Rule {
232 kind,
233 state: 1usize,
234 },
235 SyntaxKind::Literal => Rule {
236 kind,
237 state: 1usize,
238 },
239 SyntaxKind::BlankNodePropertyList2 => Rule {
240 kind,
241 state: 4usize,
242 },
243 SyntaxKind::BlankNodePropertyList => Rule {
244 kind,
245 state: 3usize,
246 },
247 SyntaxKind::Collection => Rule {
248 kind,
249 state: 4usize,
250 },
251 SyntaxKind::NumericLiteral => Rule {
252 kind,
253 state: 1usize,
254 },
255 SyntaxKind::Rdfliteral => Rule {
256 kind,
257 state: 6usize,
258 },
259 SyntaxKind::BooleanLiteral => Rule {
260 kind,
261 state: 1usize,
262 },
263 SyntaxKind::MyString => Rule {
264 kind,
265 state: 1usize,
266 },
267 SyntaxKind::Iri => Rule {
268 kind,
269 state: 1usize,
270 },
271 SyntaxKind::PrefixedName => Rule {
272 kind,
273 state: 1usize,
274 },
275 SyntaxKind::BlankNode => Rule {
276 kind,
277 state: 1usize,
278 },
279 SyntaxKind::ClOpen => Rule { kind, state: 0 },
280 SyntaxKind::ClClose => Rule { kind, state: 0 },
281 SyntaxKind::Comma => Rule { kind, state: 0 },
282 SyntaxKind::Stop => Rule { kind, state: 0 },
283 SyntaxKind::Colon => Rule { kind, state: 0 },
284 SyntaxKind::BaseToken => Rule { kind, state: 0 },
285 SyntaxKind::PrefixToken => Rule { kind, state: 0 },
286 SyntaxKind::SparqlBaseToken => Rule { kind, state: 0 },
287 SyntaxKind::GraphToken => Rule { kind, state: 0 },
288 SyntaxKind::SparqlPrefixToken => Rule { kind, state: 0 },
289 SyntaxKind::SqOpen => Rule { kind, state: 0 },
290 SyntaxKind::SqClose => Rule { kind, state: 0 },
291 SyntaxKind::Datatype => Rule { kind, state: 0 },
292 SyntaxKind::Alit => Rule { kind, state: 0 },
293 SyntaxKind::FalseLit => Rule { kind, state: 0 },
294 SyntaxKind::TrueLit => Rule { kind, state: 0 },
295 SyntaxKind::CurlyOpen => Rule { kind, state: 0 },
296 SyntaxKind::CurlyClose => Rule { kind, state: 0 },
297 SyntaxKind::BlankNodeLabel => Rule { kind, state: 0 },
298 SyntaxKind::Decimal => Rule { kind, state: 0 },
299 SyntaxKind::Double => Rule { kind, state: 0 },
300 SyntaxKind::Integer => Rule { kind, state: 0 },
301 SyntaxKind::Iriref => Rule { kind, state: 0 },
302 SyntaxKind::Langtag => Rule { kind, state: 0 },
303 SyntaxKind::PnameLn => Rule { kind, state: 0 },
304 SyntaxKind::PnameNs => Rule { kind, state: 0 },
305 SyntaxKind::StringLiteralLongQuote => Rule { kind, state: 0 },
306 SyntaxKind::StringLiteralLongSingleQuote => Rule { kind, state: 0 },
307 SyntaxKind::StringLiteralQuote => Rule { kind, state: 0 },
308 SyntaxKind::StringLiteralSingleQuote => Rule { kind, state: 0 },
309 _ => panic!("Unknown rule kind {:?}", kind),
310 }
311 }
312 }
313 pub fn first_tokens(kind: SyntaxKind) -> &'static [SyntaxKind] {
314 match kind {
315 SyntaxKind::BlankNode => &[SyntaxKind::SqOpen],
316 SyntaxKind::BooleanLiteral => &[SyntaxKind::FalseLit, SyntaxKind::TrueLit],
317 SyntaxKind::NumericLiteral => &[],
318 SyntaxKind::PrefixedName => &[],
319 SyntaxKind::Rdfliteral => &[],
320 SyntaxKind::MyString => &[],
321 SyntaxKind::Base => &[SyntaxKind::BaseToken],
322 SyntaxKind::BlankNodePropertyList => &[SyntaxKind::SqOpen],
323 SyntaxKind::BlankNodePropertyList2 => &[SyntaxKind::SqOpen],
324 SyntaxKind::Block => &[
325 SyntaxKind::ClOpen,
326 SyntaxKind::CurlyOpen,
327 SyntaxKind::GraphToken,
328 SyntaxKind::SqOpen,
329 ],
330 SyntaxKind::Collection => &[SyntaxKind::ClOpen],
331 SyntaxKind::Directive => &[
332 SyntaxKind::BaseToken,
333 SyntaxKind::PrefixToken,
334 SyntaxKind::SparqlBaseToken,
335 SyntaxKind::SparqlPrefixToken,
336 ],
337 SyntaxKind::GraphBlock => &[
338 SyntaxKind::CurlyOpen,
339 SyntaxKind::GraphToken,
340 SyntaxKind::SqOpen,
341 ],
342 SyntaxKind::GraphTerm => &[SyntaxKind::SqOpen],
343 SyntaxKind::Iri => &[],
344 SyntaxKind::Literal => &[SyntaxKind::FalseLit, SyntaxKind::TrueLit],
345 SyntaxKind::Object => &[
346 SyntaxKind::ClOpen,
347 SyntaxKind::FalseLit,
348 SyntaxKind::SqOpen,
349 SyntaxKind::TrueLit,
350 ],
351 SyntaxKind::ObjectList => &[
352 SyntaxKind::ClOpen,
353 SyntaxKind::FalseLit,
354 SyntaxKind::SqOpen,
355 SyntaxKind::TrueLit,
356 ],
357 SyntaxKind::Predicate => &[],
358 SyntaxKind::PredicateObjectList => &[SyntaxKind::Alit],
359 SyntaxKind::PrefixId => &[SyntaxKind::PrefixToken],
360 SyntaxKind::SparqlBase => &[SyntaxKind::SparqlBaseToken],
361 SyntaxKind::SparqlPrefix => &[SyntaxKind::SparqlPrefixToken],
362 SyntaxKind::Subject => &[SyntaxKind::ClOpen, SyntaxKind::SqOpen],
363 SyntaxKind::TrigDoc => &[
364 SyntaxKind::BaseToken,
365 SyntaxKind::ClOpen,
366 SyntaxKind::CurlyOpen,
367 SyntaxKind::GraphToken,
368 SyntaxKind::PrefixToken,
369 SyntaxKind::SparqlBaseToken,
370 SyntaxKind::SparqlPrefixToken,
371 SyntaxKind::SqOpen,
372 ],
373 SyntaxKind::Triples => &[SyntaxKind::ClOpen, SyntaxKind::SqOpen],
374 SyntaxKind::TriplesBlock => &[SyntaxKind::ClOpen, SyntaxKind::SqOpen],
375 SyntaxKind::Verb => &[SyntaxKind::Alit],
376 SyntaxKind::WrappedGraph => &[SyntaxKind::CurlyOpen],
377 SyntaxKind::ClOpen => &[SyntaxKind::ClOpen],
378 SyntaxKind::ClClose => &[SyntaxKind::ClClose],
379 SyntaxKind::Comma => &[SyntaxKind::Comma],
380 SyntaxKind::Stop => &[SyntaxKind::Stop],
381 SyntaxKind::Colon => &[SyntaxKind::Colon],
382 SyntaxKind::BaseToken => &[SyntaxKind::BaseToken],
383 SyntaxKind::PrefixToken => &[SyntaxKind::PrefixToken],
384 SyntaxKind::SparqlBaseToken => &[SyntaxKind::SparqlBaseToken],
385 SyntaxKind::GraphToken => &[SyntaxKind::GraphToken],
386 SyntaxKind::SparqlPrefixToken => &[SyntaxKind::SparqlPrefixToken],
387 SyntaxKind::SqOpen => &[SyntaxKind::SqOpen],
388 SyntaxKind::SqClose => &[SyntaxKind::SqClose],
389 SyntaxKind::Datatype => &[SyntaxKind::Datatype],
390 SyntaxKind::Alit => &[SyntaxKind::Alit],
391 SyntaxKind::FalseLit => &[SyntaxKind::FalseLit],
392 SyntaxKind::TrueLit => &[SyntaxKind::TrueLit],
393 SyntaxKind::CurlyOpen => &[SyntaxKind::CurlyOpen],
394 SyntaxKind::CurlyClose => &[SyntaxKind::CurlyClose],
395 SyntaxKind::BlankNodeLabel => &[SyntaxKind::BlankNodeLabel],
396 SyntaxKind::Decimal => &[SyntaxKind::Decimal],
397 SyntaxKind::Double => &[SyntaxKind::Double],
398 SyntaxKind::Integer => &[SyntaxKind::Integer],
399 SyntaxKind::Iriref => &[SyntaxKind::Iriref],
400 SyntaxKind::Langtag => &[SyntaxKind::Langtag],
401 SyntaxKind::PnameLn => &[SyntaxKind::PnameLn],
402 SyntaxKind::PnameNs => &[SyntaxKind::PnameNs],
403 SyntaxKind::StringLiteralLongQuote => &[SyntaxKind::StringLiteralLongQuote],
404 SyntaxKind::StringLiteralLongSingleQuote => &[SyntaxKind::StringLiteralLongSingleQuote],
405 SyntaxKind::StringLiteralQuote => &[SyntaxKind::StringLiteralQuote],
406 SyntaxKind::StringLiteralSingleQuote => &[SyntaxKind::StringLiteralSingleQuote],
407 _ => &[],
408 }
409 }
410 #[doc = r" Returns the minimum error cost that `kind` must incur when `tok`"]
411 #[doc = r" is the current token. 0 means the token is reachable (or the rule"]
412 #[doc = r" is nullable); positive means the rule cannot make progress without"]
413 #[doc = r" at least that much error cost."]
414 pub fn min_error_for_token(kind: SyntaxKind, tok: SyntaxKind) -> isize {
415 match kind {
416 SyntaxKind::BlankNode => match tok {
417 SyntaxKind::BlankNodeLabel | SyntaxKind::SqClose | SyntaxKind::SqOpen => 0,
418 _ => kind.max_error_value(),
419 },
420 SyntaxKind::BooleanLiteral => match tok {
421 SyntaxKind::FalseLit | SyntaxKind::TrueLit => 0,
422 _ => kind.max_error_value(),
423 },
424 SyntaxKind::NumericLiteral => match tok {
425 SyntaxKind::Decimal | SyntaxKind::Double | SyntaxKind::Integer => 0,
426 _ => kind.max_error_value(),
427 },
428 SyntaxKind::PrefixedName => match tok {
429 SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
430 _ => kind.max_error_value(),
431 },
432 SyntaxKind::Rdfliteral => match tok {
433 SyntaxKind::Datatype
434 | SyntaxKind::Iriref
435 | SyntaxKind::Langtag
436 | SyntaxKind::PnameLn
437 | SyntaxKind::PnameNs
438 | SyntaxKind::StringLiteralLongQuote
439 | SyntaxKind::StringLiteralLongSingleQuote
440 | SyntaxKind::StringLiteralQuote
441 | SyntaxKind::StringLiteralSingleQuote => 0,
442 _ => kind.max_error_value(),
443 },
444 SyntaxKind::MyString => match tok {
445 SyntaxKind::StringLiteralLongQuote
446 | SyntaxKind::StringLiteralLongSingleQuote
447 | SyntaxKind::StringLiteralQuote
448 | SyntaxKind::StringLiteralSingleQuote => 0,
449 _ => kind.max_error_value(),
450 },
451 SyntaxKind::Base => match tok {
452 SyntaxKind::BaseToken | SyntaxKind::Iriref | SyntaxKind::Stop => 0,
453 _ => kind.max_error_value(),
454 },
455 SyntaxKind::BlankNodePropertyList => match tok {
456 SyntaxKind::Alit
457 | SyntaxKind::BlankNodeLabel
458 | SyntaxKind::ClClose
459 | SyntaxKind::ClOpen
460 | SyntaxKind::Colon
461 | SyntaxKind::Comma
462 | SyntaxKind::Datatype
463 | SyntaxKind::Decimal
464 | SyntaxKind::Double
465 | SyntaxKind::FalseLit
466 | SyntaxKind::Integer
467 | SyntaxKind::Iriref
468 | SyntaxKind::Langtag
469 | SyntaxKind::PnameLn
470 | SyntaxKind::PnameNs
471 | SyntaxKind::SqClose
472 | SyntaxKind::SqOpen
473 | SyntaxKind::StringLiteralLongQuote
474 | SyntaxKind::StringLiteralLongSingleQuote
475 | SyntaxKind::StringLiteralQuote
476 | SyntaxKind::StringLiteralSingleQuote
477 | SyntaxKind::TrueLit => 0,
478 _ => kind.max_error_value(),
479 },
480 SyntaxKind::BlankNodePropertyList2 => match tok {
481 SyntaxKind::Alit
482 | SyntaxKind::BlankNodeLabel
483 | SyntaxKind::ClClose
484 | SyntaxKind::ClOpen
485 | SyntaxKind::Colon
486 | SyntaxKind::Comma
487 | SyntaxKind::Datatype
488 | SyntaxKind::Decimal
489 | SyntaxKind::Double
490 | SyntaxKind::FalseLit
491 | SyntaxKind::Integer
492 | SyntaxKind::Iriref
493 | SyntaxKind::Langtag
494 | SyntaxKind::PnameLn
495 | SyntaxKind::PnameNs
496 | SyntaxKind::SqClose
497 | SyntaxKind::SqOpen
498 | SyntaxKind::StringLiteralLongQuote
499 | SyntaxKind::StringLiteralLongSingleQuote
500 | SyntaxKind::StringLiteralQuote
501 | SyntaxKind::StringLiteralSingleQuote
502 | SyntaxKind::TrueLit => 0,
503 _ => kind.max_error_value(),
504 },
505 SyntaxKind::Block => match tok {
506 SyntaxKind::Alit
507 | SyntaxKind::BlankNodeLabel
508 | SyntaxKind::ClClose
509 | SyntaxKind::ClOpen
510 | SyntaxKind::Colon
511 | SyntaxKind::Comma
512 | SyntaxKind::CurlyClose
513 | SyntaxKind::CurlyOpen
514 | SyntaxKind::Datatype
515 | SyntaxKind::Decimal
516 | SyntaxKind::Double
517 | SyntaxKind::FalseLit
518 | SyntaxKind::GraphToken
519 | SyntaxKind::Integer
520 | SyntaxKind::Iriref
521 | SyntaxKind::Langtag
522 | SyntaxKind::PnameLn
523 | SyntaxKind::PnameNs
524 | SyntaxKind::SqClose
525 | SyntaxKind::SqOpen
526 | SyntaxKind::Stop
527 | SyntaxKind::StringLiteralLongQuote
528 | SyntaxKind::StringLiteralLongSingleQuote
529 | SyntaxKind::StringLiteralQuote
530 | SyntaxKind::StringLiteralSingleQuote
531 | SyntaxKind::TrueLit => 0,
532 _ => kind.max_error_value(),
533 },
534 SyntaxKind::Collection => match tok {
535 SyntaxKind::Alit
536 | SyntaxKind::BlankNodeLabel
537 | SyntaxKind::ClClose
538 | SyntaxKind::ClOpen
539 | SyntaxKind::Colon
540 | SyntaxKind::Comma
541 | SyntaxKind::Datatype
542 | SyntaxKind::Decimal
543 | SyntaxKind::Double
544 | SyntaxKind::FalseLit
545 | SyntaxKind::Integer
546 | SyntaxKind::Iriref
547 | SyntaxKind::Langtag
548 | SyntaxKind::PnameLn
549 | SyntaxKind::PnameNs
550 | SyntaxKind::SqClose
551 | SyntaxKind::SqOpen
552 | SyntaxKind::StringLiteralLongQuote
553 | SyntaxKind::StringLiteralLongSingleQuote
554 | SyntaxKind::StringLiteralQuote
555 | SyntaxKind::StringLiteralSingleQuote
556 | SyntaxKind::TrueLit => 0,
557 _ => kind.max_error_value(),
558 },
559 SyntaxKind::Directive => match tok {
560 SyntaxKind::BaseToken
561 | SyntaxKind::Iriref
562 | SyntaxKind::PnameNs
563 | SyntaxKind::PrefixToken
564 | SyntaxKind::SparqlBaseToken
565 | SyntaxKind::SparqlPrefixToken
566 | SyntaxKind::Stop => 0,
567 _ => kind.max_error_value(),
568 },
569 SyntaxKind::GraphBlock => match tok {
570 SyntaxKind::Alit
571 | SyntaxKind::BlankNodeLabel
572 | SyntaxKind::ClClose
573 | SyntaxKind::ClOpen
574 | SyntaxKind::Colon
575 | SyntaxKind::Comma
576 | SyntaxKind::CurlyClose
577 | SyntaxKind::CurlyOpen
578 | SyntaxKind::Datatype
579 | SyntaxKind::Decimal
580 | SyntaxKind::Double
581 | SyntaxKind::FalseLit
582 | SyntaxKind::GraphToken
583 | SyntaxKind::Integer
584 | SyntaxKind::Iriref
585 | SyntaxKind::Langtag
586 | SyntaxKind::PnameLn
587 | SyntaxKind::PnameNs
588 | SyntaxKind::SqClose
589 | SyntaxKind::SqOpen
590 | SyntaxKind::Stop
591 | SyntaxKind::StringLiteralLongQuote
592 | SyntaxKind::StringLiteralLongSingleQuote
593 | SyntaxKind::StringLiteralQuote
594 | SyntaxKind::StringLiteralSingleQuote
595 | SyntaxKind::TrueLit => 0,
596 _ => kind.max_error_value(),
597 },
598 SyntaxKind::GraphTerm => match tok {
599 SyntaxKind::BlankNodeLabel
600 | SyntaxKind::Iriref
601 | SyntaxKind::PnameLn
602 | SyntaxKind::PnameNs
603 | SyntaxKind::SqClose
604 | SyntaxKind::SqOpen => 0,
605 _ => kind.max_error_value(),
606 },
607 SyntaxKind::Iri => match tok {
608 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
609 _ => kind.max_error_value(),
610 },
611 SyntaxKind::Literal => match tok {
612 SyntaxKind::Datatype
613 | SyntaxKind::Decimal
614 | SyntaxKind::Double
615 | SyntaxKind::FalseLit
616 | SyntaxKind::Integer
617 | SyntaxKind::Iriref
618 | SyntaxKind::Langtag
619 | SyntaxKind::PnameLn
620 | SyntaxKind::PnameNs
621 | SyntaxKind::StringLiteralLongQuote
622 | SyntaxKind::StringLiteralLongSingleQuote
623 | SyntaxKind::StringLiteralQuote
624 | SyntaxKind::StringLiteralSingleQuote
625 | SyntaxKind::TrueLit => 0,
626 _ => kind.max_error_value(),
627 },
628 SyntaxKind::Object => match tok {
629 SyntaxKind::Alit
630 | SyntaxKind::BlankNodeLabel
631 | SyntaxKind::ClClose
632 | SyntaxKind::ClOpen
633 | SyntaxKind::Colon
634 | SyntaxKind::Comma
635 | SyntaxKind::Datatype
636 | SyntaxKind::Decimal
637 | SyntaxKind::Double
638 | SyntaxKind::FalseLit
639 | SyntaxKind::Integer
640 | SyntaxKind::Iriref
641 | SyntaxKind::Langtag
642 | SyntaxKind::PnameLn
643 | SyntaxKind::PnameNs
644 | SyntaxKind::SqClose
645 | SyntaxKind::SqOpen
646 | SyntaxKind::StringLiteralLongQuote
647 | SyntaxKind::StringLiteralLongSingleQuote
648 | SyntaxKind::StringLiteralQuote
649 | SyntaxKind::StringLiteralSingleQuote
650 | SyntaxKind::TrueLit => 0,
651 _ => kind.max_error_value(),
652 },
653 SyntaxKind::ObjectList => match tok {
654 SyntaxKind::Alit
655 | SyntaxKind::BlankNodeLabel
656 | SyntaxKind::ClClose
657 | SyntaxKind::ClOpen
658 | SyntaxKind::Colon
659 | SyntaxKind::Comma
660 | SyntaxKind::Datatype
661 | SyntaxKind::Decimal
662 | SyntaxKind::Double
663 | SyntaxKind::FalseLit
664 | SyntaxKind::Integer
665 | SyntaxKind::Iriref
666 | SyntaxKind::Langtag
667 | SyntaxKind::PnameLn
668 | SyntaxKind::PnameNs
669 | SyntaxKind::SqClose
670 | SyntaxKind::SqOpen
671 | SyntaxKind::StringLiteralLongQuote
672 | SyntaxKind::StringLiteralLongSingleQuote
673 | SyntaxKind::StringLiteralQuote
674 | SyntaxKind::StringLiteralSingleQuote
675 | SyntaxKind::TrueLit => 0,
676 _ => kind.max_error_value(),
677 },
678 SyntaxKind::Predicate => match tok {
679 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
680 _ => kind.max_error_value(),
681 },
682 SyntaxKind::PredicateObjectList => match tok {
683 SyntaxKind::Alit
684 | SyntaxKind::BlankNodeLabel
685 | SyntaxKind::ClClose
686 | SyntaxKind::ClOpen
687 | SyntaxKind::Colon
688 | SyntaxKind::Comma
689 | SyntaxKind::Datatype
690 | SyntaxKind::Decimal
691 | SyntaxKind::Double
692 | SyntaxKind::FalseLit
693 | SyntaxKind::Integer
694 | SyntaxKind::Iriref
695 | SyntaxKind::Langtag
696 | SyntaxKind::PnameLn
697 | SyntaxKind::PnameNs
698 | SyntaxKind::SqClose
699 | SyntaxKind::SqOpen
700 | SyntaxKind::StringLiteralLongQuote
701 | SyntaxKind::StringLiteralLongSingleQuote
702 | SyntaxKind::StringLiteralQuote
703 | SyntaxKind::StringLiteralSingleQuote
704 | SyntaxKind::TrueLit => 0,
705 _ => kind.max_error_value(),
706 },
707 SyntaxKind::PrefixId => match tok {
708 SyntaxKind::Iriref
709 | SyntaxKind::PnameNs
710 | SyntaxKind::PrefixToken
711 | SyntaxKind::Stop => 0,
712 _ => kind.max_error_value(),
713 },
714 SyntaxKind::SparqlBase => match tok {
715 SyntaxKind::Iriref | SyntaxKind::SparqlBaseToken => 0,
716 _ => kind.max_error_value(),
717 },
718 SyntaxKind::SparqlPrefix => match tok {
719 SyntaxKind::Iriref | SyntaxKind::PnameNs | SyntaxKind::SparqlPrefixToken => 0,
720 _ => kind.max_error_value(),
721 },
722 SyntaxKind::Subject => match tok {
723 SyntaxKind::Alit
724 | SyntaxKind::BlankNodeLabel
725 | SyntaxKind::ClClose
726 | SyntaxKind::ClOpen
727 | SyntaxKind::Colon
728 | SyntaxKind::Comma
729 | SyntaxKind::Datatype
730 | SyntaxKind::Decimal
731 | SyntaxKind::Double
732 | SyntaxKind::FalseLit
733 | SyntaxKind::Integer
734 | SyntaxKind::Iriref
735 | SyntaxKind::Langtag
736 | SyntaxKind::PnameLn
737 | SyntaxKind::PnameNs
738 | SyntaxKind::SqClose
739 | SyntaxKind::SqOpen
740 | SyntaxKind::StringLiteralLongQuote
741 | SyntaxKind::StringLiteralLongSingleQuote
742 | SyntaxKind::StringLiteralQuote
743 | SyntaxKind::StringLiteralSingleQuote
744 | SyntaxKind::TrueLit => 0,
745 _ => kind.max_error_value(),
746 },
747 SyntaxKind::Triples => match tok {
748 SyntaxKind::Alit
749 | SyntaxKind::BlankNodeLabel
750 | SyntaxKind::ClClose
751 | SyntaxKind::ClOpen
752 | SyntaxKind::Colon
753 | SyntaxKind::Comma
754 | SyntaxKind::Datatype
755 | SyntaxKind::Decimal
756 | SyntaxKind::Double
757 | SyntaxKind::FalseLit
758 | SyntaxKind::Integer
759 | SyntaxKind::Iriref
760 | SyntaxKind::Langtag
761 | SyntaxKind::PnameLn
762 | SyntaxKind::PnameNs
763 | SyntaxKind::SqClose
764 | SyntaxKind::SqOpen
765 | SyntaxKind::StringLiteralLongQuote
766 | SyntaxKind::StringLiteralLongSingleQuote
767 | SyntaxKind::StringLiteralQuote
768 | SyntaxKind::StringLiteralSingleQuote
769 | SyntaxKind::TrueLit => 0,
770 _ => kind.max_error_value(),
771 },
772 SyntaxKind::TriplesBlock => match tok {
773 SyntaxKind::Alit
774 | SyntaxKind::BlankNodeLabel
775 | SyntaxKind::ClClose
776 | SyntaxKind::ClOpen
777 | SyntaxKind::Colon
778 | SyntaxKind::Comma
779 | SyntaxKind::Datatype
780 | SyntaxKind::Decimal
781 | SyntaxKind::Double
782 | SyntaxKind::FalseLit
783 | SyntaxKind::Integer
784 | SyntaxKind::Iriref
785 | SyntaxKind::Langtag
786 | SyntaxKind::PnameLn
787 | SyntaxKind::PnameNs
788 | SyntaxKind::SqClose
789 | SyntaxKind::SqOpen
790 | SyntaxKind::Stop
791 | SyntaxKind::StringLiteralLongQuote
792 | SyntaxKind::StringLiteralLongSingleQuote
793 | SyntaxKind::StringLiteralQuote
794 | SyntaxKind::StringLiteralSingleQuote
795 | SyntaxKind::TrueLit => 0,
796 _ => kind.max_error_value(),
797 },
798 SyntaxKind::Verb => match tok {
799 SyntaxKind::Alit
800 | SyntaxKind::Iriref
801 | SyntaxKind::PnameLn
802 | SyntaxKind::PnameNs => 0,
803 _ => kind.max_error_value(),
804 },
805 SyntaxKind::WrappedGraph => match tok {
806 SyntaxKind::Alit
807 | SyntaxKind::BlankNodeLabel
808 | SyntaxKind::ClClose
809 | SyntaxKind::ClOpen
810 | SyntaxKind::Colon
811 | SyntaxKind::Comma
812 | SyntaxKind::CurlyClose
813 | SyntaxKind::CurlyOpen
814 | SyntaxKind::Datatype
815 | SyntaxKind::Decimal
816 | SyntaxKind::Double
817 | SyntaxKind::FalseLit
818 | SyntaxKind::Integer
819 | SyntaxKind::Iriref
820 | SyntaxKind::Langtag
821 | SyntaxKind::PnameLn
822 | SyntaxKind::PnameNs
823 | SyntaxKind::SqClose
824 | SyntaxKind::SqOpen
825 | SyntaxKind::Stop
826 | SyntaxKind::StringLiteralLongQuote
827 | SyntaxKind::StringLiteralLongSingleQuote
828 | SyntaxKind::StringLiteralQuote
829 | SyntaxKind::StringLiteralSingleQuote
830 | SyntaxKind::TrueLit => 0,
831 _ => kind.max_error_value(),
832 },
833 SyntaxKind::ClOpen => match tok {
834 SyntaxKind::ClOpen => 0,
835 _ => kind.max_error_value(),
836 },
837 SyntaxKind::ClClose => match tok {
838 SyntaxKind::ClClose => 0,
839 _ => kind.max_error_value(),
840 },
841 SyntaxKind::Comma => match tok {
842 SyntaxKind::Comma => 0,
843 _ => kind.max_error_value(),
844 },
845 SyntaxKind::Stop => match tok {
846 SyntaxKind::Stop => 0,
847 _ => kind.max_error_value(),
848 },
849 SyntaxKind::Colon => match tok {
850 SyntaxKind::Colon => 0,
851 _ => kind.max_error_value(),
852 },
853 SyntaxKind::BaseToken => match tok {
854 SyntaxKind::BaseToken => 0,
855 _ => kind.max_error_value(),
856 },
857 SyntaxKind::PrefixToken => match tok {
858 SyntaxKind::PrefixToken => 0,
859 _ => kind.max_error_value(),
860 },
861 SyntaxKind::SparqlBaseToken => match tok {
862 SyntaxKind::SparqlBaseToken => 0,
863 _ => kind.max_error_value(),
864 },
865 SyntaxKind::GraphToken => match tok {
866 SyntaxKind::GraphToken => 0,
867 _ => kind.max_error_value(),
868 },
869 SyntaxKind::SparqlPrefixToken => match tok {
870 SyntaxKind::SparqlPrefixToken => 0,
871 _ => kind.max_error_value(),
872 },
873 SyntaxKind::SqOpen => match tok {
874 SyntaxKind::SqOpen => 0,
875 _ => kind.max_error_value(),
876 },
877 SyntaxKind::SqClose => match tok {
878 SyntaxKind::SqClose => 0,
879 _ => kind.max_error_value(),
880 },
881 SyntaxKind::Datatype => match tok {
882 SyntaxKind::Datatype => 0,
883 _ => kind.max_error_value(),
884 },
885 SyntaxKind::Alit => match tok {
886 SyntaxKind::Alit => 0,
887 _ => kind.max_error_value(),
888 },
889 SyntaxKind::FalseLit => match tok {
890 SyntaxKind::FalseLit => 0,
891 _ => kind.max_error_value(),
892 },
893 SyntaxKind::TrueLit => match tok {
894 SyntaxKind::TrueLit => 0,
895 _ => kind.max_error_value(),
896 },
897 SyntaxKind::CurlyOpen => match tok {
898 SyntaxKind::CurlyOpen => 0,
899 _ => kind.max_error_value(),
900 },
901 SyntaxKind::CurlyClose => match tok {
902 SyntaxKind::CurlyClose => 0,
903 _ => kind.max_error_value(),
904 },
905 SyntaxKind::BlankNodeLabel => match tok {
906 SyntaxKind::BlankNodeLabel => 0,
907 _ => kind.max_error_value(),
908 },
909 SyntaxKind::Decimal => match tok {
910 SyntaxKind::Decimal => 0,
911 _ => kind.max_error_value(),
912 },
913 SyntaxKind::Double => match tok {
914 SyntaxKind::Double => 0,
915 _ => kind.max_error_value(),
916 },
917 SyntaxKind::Integer => match tok {
918 SyntaxKind::Integer => 0,
919 _ => kind.max_error_value(),
920 },
921 SyntaxKind::Iriref => match tok {
922 SyntaxKind::Iriref => 0,
923 _ => kind.max_error_value(),
924 },
925 SyntaxKind::Langtag => match tok {
926 SyntaxKind::Langtag => 0,
927 _ => kind.max_error_value(),
928 },
929 SyntaxKind::PnameLn => match tok {
930 SyntaxKind::PnameLn => 0,
931 _ => kind.max_error_value(),
932 },
933 SyntaxKind::PnameNs => match tok {
934 SyntaxKind::PnameNs => 0,
935 _ => kind.max_error_value(),
936 },
937 SyntaxKind::StringLiteralLongQuote => match tok {
938 SyntaxKind::StringLiteralLongQuote => 0,
939 _ => kind.max_error_value(),
940 },
941 SyntaxKind::StringLiteralLongSingleQuote => match tok {
942 SyntaxKind::StringLiteralLongSingleQuote => 0,
943 _ => kind.max_error_value(),
944 },
945 SyntaxKind::StringLiteralQuote => match tok {
946 SyntaxKind::StringLiteralQuote => 0,
947 _ => kind.max_error_value(),
948 },
949 SyntaxKind::StringLiteralSingleQuote => match tok {
950 SyntaxKind::StringLiteralSingleQuote => 0,
951 _ => kind.max_error_value(),
952 },
953 _ => 0,
954 }
955 }
956 #[doc = r" Precomputed dist(q, a): minimum insertion cost to reach a point"]
957 #[doc = r" where terminal `terminal` can be matched, starting from parser"]
958 #[doc = r" state `(kind, state)`. Returns 0 as the conservative default"]
959 #[doc = r" (admissible — parent context might accept the terminal after a pop)."]
960 pub fn state_dist(kind: SyntaxKind, state: usize, terminal: SyntaxKind) -> isize {
961 match (kind, state, terminal) {
962 (SyntaxKind::BlankNode, 1usize, _) => match terminal {
963 SyntaxKind::BlankNodeLabel | SyntaxKind::SqOpen => 0,
964 _ => 1isize,
965 },
966 (SyntaxKind::BlankNode, 2usize, _) => match terminal {
967 SyntaxKind::BlankNodeLabel => 0,
968 _ => 1isize,
969 },
970 (SyntaxKind::BlankNode, 3usize, _) => match terminal {
971 SyntaxKind::SqClose => 0,
972 _ => 2isize,
973 },
974 (SyntaxKind::BlankNode, 4usize, _) => match terminal {
975 SyntaxKind::Alit => 4isize,
976 SyntaxKind::BlankNodeLabel => 4isize,
977 SyntaxKind::Decimal => 4isize,
978 SyntaxKind::Double => 4isize,
979 SyntaxKind::FalseLit => 4isize,
980 SyntaxKind::Integer => 4isize,
981 SyntaxKind::Iriref => 4isize,
982 SyntaxKind::Langtag => 4isize,
983 SyntaxKind::PnameLn => 4isize,
984 SyntaxKind::PnameNs => 4isize,
985 SyntaxKind::StringLiteralLongQuote => 4isize,
986 SyntaxKind::StringLiteralLongSingleQuote => 4isize,
987 SyntaxKind::StringLiteralQuote => 4isize,
988 SyntaxKind::StringLiteralSingleQuote => 4isize,
989 SyntaxKind::TrueLit => 4isize,
990 SyntaxKind::BaseToken => 4isize,
991 SyntaxKind::ClClose => 4isize,
992 SyntaxKind::ClOpen => 4isize,
993 SyntaxKind::Colon => 4isize,
994 SyntaxKind::Comma => 4isize,
995 SyntaxKind::CurlyClose => 4isize,
996 SyntaxKind::CurlyOpen => 4isize,
997 SyntaxKind::Datatype => 4isize,
998 SyntaxKind::GraphToken => 4isize,
999 SyntaxKind::PrefixToken => 4isize,
1000 SyntaxKind::SparqlBaseToken => 4isize,
1001 SyntaxKind::SparqlPrefixToken => 4isize,
1002 SyntaxKind::SqClose => 2isize,
1003 SyntaxKind::Stop => 4isize,
1004 _ => 0,
1005 },
1006 (SyntaxKind::BooleanLiteral, 1usize, _) => match terminal {
1007 SyntaxKind::FalseLit | SyntaxKind::TrueLit => 0,
1008 _ => 1isize,
1009 },
1010 (SyntaxKind::BooleanLiteral, 2usize, _) => match terminal {
1011 SyntaxKind::TrueLit => 0,
1012 _ => 1isize,
1013 },
1014 (SyntaxKind::BooleanLiteral, 3usize, _) => match terminal {
1015 SyntaxKind::FalseLit => 0,
1016 _ => 1isize,
1017 },
1018 (SyntaxKind::NumericLiteral, 1usize, _) => match terminal {
1019 SyntaxKind::Decimal | SyntaxKind::Double | SyntaxKind::Integer => 0,
1020 _ => 1isize,
1021 },
1022 (SyntaxKind::NumericLiteral, 2usize, _) => match terminal {
1023 SyntaxKind::Integer => 0,
1024 _ => 1isize,
1025 },
1026 (SyntaxKind::NumericLiteral, 3usize, _) => match terminal {
1027 SyntaxKind::Decimal => 0,
1028 _ => 1isize,
1029 },
1030 (SyntaxKind::NumericLiteral, 4usize, _) => match terminal {
1031 SyntaxKind::Double => 0,
1032 _ => 1isize,
1033 },
1034 (SyntaxKind::PrefixedName, 1usize, _) => match terminal {
1035 SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1036 _ => 1isize,
1037 },
1038 (SyntaxKind::PrefixedName, 2usize, _) => match terminal {
1039 SyntaxKind::PnameLn => 0,
1040 _ => 1isize,
1041 },
1042 (SyntaxKind::PrefixedName, 3usize, _) => match terminal {
1043 SyntaxKind::PnameNs => 0,
1044 _ => 1isize,
1045 },
1046 (SyntaxKind::Rdfliteral, 2usize, _) => match terminal {
1047 SyntaxKind::Langtag | SyntaxKind::Datatype => 0,
1048 _ => 1isize,
1049 },
1050 (SyntaxKind::Rdfliteral, 3usize, _) => match terminal {
1051 SyntaxKind::Langtag => 0,
1052 _ => 1isize,
1053 },
1054 (SyntaxKind::Rdfliteral, 4usize, _) => match terminal {
1055 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1056 _ => 1isize,
1057 },
1058 (SyntaxKind::Rdfliteral, 5usize, _) => match terminal {
1059 SyntaxKind::Alit => 2isize,
1060 SyntaxKind::BlankNodeLabel => 2isize,
1061 SyntaxKind::Decimal => 2isize,
1062 SyntaxKind::Double => 2isize,
1063 SyntaxKind::FalseLit => 2isize,
1064 SyntaxKind::Integer => 2isize,
1065 SyntaxKind::Iriref => 1isize,
1066 SyntaxKind::Langtag => 2isize,
1067 SyntaxKind::PnameLn => 1isize,
1068 SyntaxKind::PnameNs => 1isize,
1069 SyntaxKind::StringLiteralLongQuote => 2isize,
1070 SyntaxKind::StringLiteralLongSingleQuote => 2isize,
1071 SyntaxKind::StringLiteralQuote => 2isize,
1072 SyntaxKind::StringLiteralSingleQuote => 2isize,
1073 SyntaxKind::TrueLit => 2isize,
1074 SyntaxKind::BaseToken => 2isize,
1075 SyntaxKind::ClClose => 2isize,
1076 SyntaxKind::ClOpen => 2isize,
1077 SyntaxKind::Colon => 2isize,
1078 SyntaxKind::Comma => 2isize,
1079 SyntaxKind::CurlyClose => 2isize,
1080 SyntaxKind::CurlyOpen => 2isize,
1081 SyntaxKind::GraphToken => 2isize,
1082 SyntaxKind::PrefixToken => 2isize,
1083 SyntaxKind::SparqlBaseToken => 2isize,
1084 SyntaxKind::SparqlPrefixToken => 2isize,
1085 SyntaxKind::SqClose => 2isize,
1086 SyntaxKind::SqOpen => 2isize,
1087 SyntaxKind::Stop => 2isize,
1088 _ => 0,
1089 },
1090 (SyntaxKind::Rdfliteral, 6usize, _) => match terminal {
1091 SyntaxKind::StringLiteralLongQuote
1092 | SyntaxKind::StringLiteralLongSingleQuote
1093 | SyntaxKind::StringLiteralQuote
1094 | SyntaxKind::StringLiteralSingleQuote => 0,
1095 _ => 1isize,
1096 },
1097 (SyntaxKind::MyString, 1usize, _) => match terminal {
1098 SyntaxKind::StringLiteralLongQuote
1099 | SyntaxKind::StringLiteralLongSingleQuote
1100 | SyntaxKind::StringLiteralQuote
1101 | SyntaxKind::StringLiteralSingleQuote => 0,
1102 _ => 1isize,
1103 },
1104 (SyntaxKind::MyString, 2usize, _) => match terminal {
1105 SyntaxKind::StringLiteralQuote => 0,
1106 _ => 1isize,
1107 },
1108 (SyntaxKind::MyString, 3usize, _) => match terminal {
1109 SyntaxKind::StringLiteralSingleQuote => 0,
1110 _ => 1isize,
1111 },
1112 (SyntaxKind::MyString, 4usize, _) => match terminal {
1113 SyntaxKind::StringLiteralLongSingleQuote => 0,
1114 _ => 1isize,
1115 },
1116 (SyntaxKind::MyString, 5usize, _) => match terminal {
1117 SyntaxKind::StringLiteralLongQuote => 0,
1118 _ => 1isize,
1119 },
1120 (SyntaxKind::Base, 1usize, _) => match terminal {
1121 SyntaxKind::Stop => 0,
1122 _ => 3isize,
1123 },
1124 (SyntaxKind::Base, 2usize, _) => match terminal {
1125 SyntaxKind::Alit => 4isize,
1126 SyntaxKind::BlankNodeLabel => 4isize,
1127 SyntaxKind::Decimal => 4isize,
1128 SyntaxKind::Double => 4isize,
1129 SyntaxKind::FalseLit => 4isize,
1130 SyntaxKind::Integer => 4isize,
1131 SyntaxKind::Langtag => 4isize,
1132 SyntaxKind::PnameLn => 4isize,
1133 SyntaxKind::PnameNs => 4isize,
1134 SyntaxKind::StringLiteralLongQuote => 4isize,
1135 SyntaxKind::StringLiteralLongSingleQuote => 4isize,
1136 SyntaxKind::StringLiteralQuote => 4isize,
1137 SyntaxKind::StringLiteralSingleQuote => 4isize,
1138 SyntaxKind::TrueLit => 4isize,
1139 SyntaxKind::BaseToken => 4isize,
1140 SyntaxKind::ClClose => 4isize,
1141 SyntaxKind::ClOpen => 4isize,
1142 SyntaxKind::Colon => 4isize,
1143 SyntaxKind::Comma => 4isize,
1144 SyntaxKind::CurlyClose => 4isize,
1145 SyntaxKind::CurlyOpen => 4isize,
1146 SyntaxKind::Datatype => 4isize,
1147 SyntaxKind::GraphToken => 4isize,
1148 SyntaxKind::PrefixToken => 4isize,
1149 SyntaxKind::SparqlBaseToken => 4isize,
1150 SyntaxKind::SparqlPrefixToken => 4isize,
1151 SyntaxKind::SqClose => 4isize,
1152 SyntaxKind::SqOpen => 4isize,
1153 SyntaxKind::Stop => 1isize,
1154 _ => 0,
1155 },
1156 (SyntaxKind::Base, 3usize, _) => match terminal {
1157 SyntaxKind::Alit => 104isize,
1158 SyntaxKind::BlankNodeLabel => 104isize,
1159 SyntaxKind::Decimal => 104isize,
1160 SyntaxKind::Double => 104isize,
1161 SyntaxKind::FalseLit => 104isize,
1162 SyntaxKind::Integer => 104isize,
1163 SyntaxKind::Iriref => 100isize,
1164 SyntaxKind::Langtag => 104isize,
1165 SyntaxKind::PnameLn => 104isize,
1166 SyntaxKind::PnameNs => 104isize,
1167 SyntaxKind::StringLiteralLongQuote => 104isize,
1168 SyntaxKind::StringLiteralLongSingleQuote => 104isize,
1169 SyntaxKind::StringLiteralQuote => 104isize,
1170 SyntaxKind::StringLiteralSingleQuote => 104isize,
1171 SyntaxKind::TrueLit => 104isize,
1172 SyntaxKind::ClClose => 104isize,
1173 SyntaxKind::ClOpen => 104isize,
1174 SyntaxKind::Colon => 104isize,
1175 SyntaxKind::Comma => 104isize,
1176 SyntaxKind::CurlyClose => 104isize,
1177 SyntaxKind::CurlyOpen => 104isize,
1178 SyntaxKind::Datatype => 104isize,
1179 SyntaxKind::GraphToken => 104isize,
1180 SyntaxKind::PrefixToken => 104isize,
1181 SyntaxKind::SparqlBaseToken => 104isize,
1182 SyntaxKind::SparqlPrefixToken => 104isize,
1183 SyntaxKind::SqClose => 104isize,
1184 SyntaxKind::SqOpen => 104isize,
1185 SyntaxKind::Stop => 101isize,
1186 _ => 0,
1187 },
1188 (SyntaxKind::BlankNodePropertyList, 1usize, _) => match terminal {
1189 SyntaxKind::SqClose => 0,
1190 _ => 2isize,
1191 },
1192 (SyntaxKind::BlankNodePropertyList, 2usize, _) => match terminal {
1193 SyntaxKind::Alit
1194 | SyntaxKind::Iriref
1195 | SyntaxKind::PnameLn
1196 | SyntaxKind::PnameNs => 0,
1197 _ => 1isize,
1198 },
1199 (SyntaxKind::BlankNodePropertyList, 3usize, _) => match terminal {
1200 SyntaxKind::Alit => 2isize,
1201 SyntaxKind::BlankNodeLabel => 3isize,
1202 SyntaxKind::Decimal => 3isize,
1203 SyntaxKind::Double => 3isize,
1204 SyntaxKind::FalseLit => 3isize,
1205 SyntaxKind::Integer => 3isize,
1206 SyntaxKind::Iriref => 2isize,
1207 SyntaxKind::Langtag => 3isize,
1208 SyntaxKind::PnameLn => 2isize,
1209 SyntaxKind::PnameNs => 2isize,
1210 SyntaxKind::StringLiteralLongQuote => 3isize,
1211 SyntaxKind::StringLiteralLongSingleQuote => 3isize,
1212 SyntaxKind::StringLiteralQuote => 3isize,
1213 SyntaxKind::StringLiteralSingleQuote => 3isize,
1214 SyntaxKind::TrueLit => 3isize,
1215 SyntaxKind::BaseToken => 3isize,
1216 SyntaxKind::ClClose => 3isize,
1217 SyntaxKind::ClOpen => 3isize,
1218 SyntaxKind::Colon => 3isize,
1219 SyntaxKind::Comma => 3isize,
1220 SyntaxKind::CurlyClose => 3isize,
1221 SyntaxKind::CurlyOpen => 3isize,
1222 SyntaxKind::Datatype => 3isize,
1223 SyntaxKind::GraphToken => 3isize,
1224 SyntaxKind::PrefixToken => 3isize,
1225 SyntaxKind::SparqlBaseToken => 3isize,
1226 SyntaxKind::SparqlPrefixToken => 3isize,
1227 SyntaxKind::SqClose => 3isize,
1228 SyntaxKind::Stop => 3isize,
1229 _ => 0,
1230 },
1231 (SyntaxKind::BlankNodePropertyList2, 1usize, _) => match terminal {
1232 SyntaxKind::SqClose => 0,
1233 _ => 2isize,
1234 },
1235 (SyntaxKind::BlankNodePropertyList2, 2usize, _) => match terminal {
1236 SyntaxKind::Alit
1237 | SyntaxKind::Iriref
1238 | SyntaxKind::PnameLn
1239 | SyntaxKind::PnameNs
1240 | SyntaxKind::SqClose => 0,
1241 _ => 1isize,
1242 },
1243 (SyntaxKind::BlankNodePropertyList2, 3usize, _) => match terminal {
1244 SyntaxKind::Alit
1245 | SyntaxKind::Iriref
1246 | SyntaxKind::PnameLn
1247 | SyntaxKind::PnameNs => 0,
1248 _ => 1isize,
1249 },
1250 (SyntaxKind::BlankNodePropertyList2, 4usize, _) => match terminal {
1251 SyntaxKind::SqOpen => 0,
1252 _ => 2isize,
1253 },
1254 (SyntaxKind::Block, 1usize, _) => match terminal {
1255 SyntaxKind::BlankNodeLabel
1256 | SyntaxKind::Iriref
1257 | SyntaxKind::PnameLn
1258 | SyntaxKind::PnameNs
1259 | SyntaxKind::ClOpen
1260 | SyntaxKind::CurlyOpen
1261 | SyntaxKind::GraphToken
1262 | SyntaxKind::SqOpen => 0,
1263 _ => 1isize,
1264 },
1265 (SyntaxKind::Block, 2usize, _) => match terminal {
1266 SyntaxKind::BlankNodeLabel
1267 | SyntaxKind::Iriref
1268 | SyntaxKind::PnameLn
1269 | SyntaxKind::PnameNs
1270 | SyntaxKind::CurlyOpen
1271 | SyntaxKind::GraphToken
1272 | SyntaxKind::SqOpen => 0,
1273 _ => 1isize,
1274 },
1275 (SyntaxKind::Block, 3usize, _) => match terminal {
1276 SyntaxKind::Stop => 0,
1277 _ => 3isize,
1278 },
1279 (SyntaxKind::Block, 4usize, _) => match terminal {
1280 SyntaxKind::BlankNodeLabel
1281 | SyntaxKind::Iriref
1282 | SyntaxKind::PnameLn
1283 | SyntaxKind::PnameNs
1284 | SyntaxKind::ClOpen
1285 | SyntaxKind::SqOpen => 0,
1286 _ => 1isize,
1287 },
1288 (SyntaxKind::Collection, 1usize, _) => match terminal {
1289 SyntaxKind::ClClose => 0,
1290 _ => 2isize,
1291 },
1292 (SyntaxKind::Collection, 2usize, _) => match terminal {
1293 SyntaxKind::BlankNodeLabel
1294 | SyntaxKind::Decimal
1295 | SyntaxKind::Double
1296 | SyntaxKind::FalseLit
1297 | SyntaxKind::Integer
1298 | SyntaxKind::Iriref
1299 | SyntaxKind::PnameLn
1300 | SyntaxKind::PnameNs
1301 | SyntaxKind::StringLiteralLongQuote
1302 | SyntaxKind::StringLiteralLongSingleQuote
1303 | SyntaxKind::StringLiteralQuote
1304 | SyntaxKind::StringLiteralSingleQuote
1305 | SyntaxKind::TrueLit
1306 | SyntaxKind::ClClose
1307 | SyntaxKind::ClOpen
1308 | SyntaxKind::SqOpen => 0,
1309 _ => 1isize,
1310 },
1311 (SyntaxKind::Collection, 3usize, _) => match terminal {
1312 SyntaxKind::BlankNodeLabel
1313 | SyntaxKind::Decimal
1314 | SyntaxKind::Double
1315 | SyntaxKind::FalseLit
1316 | SyntaxKind::Integer
1317 | SyntaxKind::Iriref
1318 | SyntaxKind::PnameLn
1319 | SyntaxKind::PnameNs
1320 | SyntaxKind::StringLiteralLongQuote
1321 | SyntaxKind::StringLiteralLongSingleQuote
1322 | SyntaxKind::StringLiteralQuote
1323 | SyntaxKind::StringLiteralSingleQuote
1324 | SyntaxKind::TrueLit
1325 | SyntaxKind::ClOpen
1326 | SyntaxKind::SqOpen => 0,
1327 _ => 1isize,
1328 },
1329 (SyntaxKind::Collection, 4usize, _) => match terminal {
1330 SyntaxKind::ClOpen => 0,
1331 _ => 2isize,
1332 },
1333 (SyntaxKind::Directive, 1usize, _) => match terminal {
1334 SyntaxKind::Alit => 101isize,
1335 SyntaxKind::BlankNodeLabel => 101isize,
1336 SyntaxKind::Decimal => 101isize,
1337 SyntaxKind::Double => 101isize,
1338 SyntaxKind::FalseLit => 101isize,
1339 SyntaxKind::Integer => 101isize,
1340 SyntaxKind::Iriref => 100isize,
1341 SyntaxKind::Langtag => 101isize,
1342 SyntaxKind::PnameLn => 101isize,
1343 SyntaxKind::PnameNs => 100isize,
1344 SyntaxKind::StringLiteralLongQuote => 101isize,
1345 SyntaxKind::StringLiteralLongSingleQuote => 101isize,
1346 SyntaxKind::StringLiteralQuote => 101isize,
1347 SyntaxKind::StringLiteralSingleQuote => 101isize,
1348 SyntaxKind::TrueLit => 101isize,
1349 SyntaxKind::ClClose => 101isize,
1350 SyntaxKind::ClOpen => 101isize,
1351 SyntaxKind::Colon => 101isize,
1352 SyntaxKind::Comma => 101isize,
1353 SyntaxKind::CurlyClose => 101isize,
1354 SyntaxKind::CurlyOpen => 101isize,
1355 SyntaxKind::Datatype => 101isize,
1356 SyntaxKind::GraphToken => 101isize,
1357 SyntaxKind::SqClose => 101isize,
1358 SyntaxKind::SqOpen => 101isize,
1359 SyntaxKind::Stop => 101isize,
1360 _ => 0,
1361 },
1362 (SyntaxKind::Directive, 2usize, _) => match terminal {
1363 SyntaxKind::Alit => 105isize,
1364 SyntaxKind::BlankNodeLabel => 105isize,
1365 SyntaxKind::Decimal => 105isize,
1366 SyntaxKind::Double => 105isize,
1367 SyntaxKind::FalseLit => 105isize,
1368 SyntaxKind::Integer => 105isize,
1369 SyntaxKind::Iriref => 101isize,
1370 SyntaxKind::Langtag => 105isize,
1371 SyntaxKind::PnameLn => 105isize,
1372 SyntaxKind::PnameNs => 100isize,
1373 SyntaxKind::StringLiteralLongQuote => 105isize,
1374 SyntaxKind::StringLiteralLongSingleQuote => 105isize,
1375 SyntaxKind::StringLiteralQuote => 105isize,
1376 SyntaxKind::StringLiteralSingleQuote => 105isize,
1377 SyntaxKind::TrueLit => 105isize,
1378 SyntaxKind::BaseToken => 105isize,
1379 SyntaxKind::ClClose => 105isize,
1380 SyntaxKind::ClOpen => 105isize,
1381 SyntaxKind::Colon => 105isize,
1382 SyntaxKind::Comma => 105isize,
1383 SyntaxKind::CurlyClose => 105isize,
1384 SyntaxKind::CurlyOpen => 105isize,
1385 SyntaxKind::Datatype => 105isize,
1386 SyntaxKind::GraphToken => 105isize,
1387 SyntaxKind::SparqlBaseToken => 105isize,
1388 SyntaxKind::SparqlPrefixToken => 105isize,
1389 SyntaxKind::SqClose => 105isize,
1390 SyntaxKind::SqOpen => 105isize,
1391 SyntaxKind::Stop => 102isize,
1392 _ => 0,
1393 },
1394 (SyntaxKind::Directive, 3usize, _) => match terminal {
1395 SyntaxKind::Alit => 104isize,
1396 SyntaxKind::BlankNodeLabel => 104isize,
1397 SyntaxKind::Decimal => 104isize,
1398 SyntaxKind::Double => 104isize,
1399 SyntaxKind::FalseLit => 104isize,
1400 SyntaxKind::Integer => 104isize,
1401 SyntaxKind::Iriref => 100isize,
1402 SyntaxKind::Langtag => 104isize,
1403 SyntaxKind::PnameLn => 104isize,
1404 SyntaxKind::PnameNs => 104isize,
1405 SyntaxKind::StringLiteralLongQuote => 104isize,
1406 SyntaxKind::StringLiteralLongSingleQuote => 104isize,
1407 SyntaxKind::StringLiteralQuote => 104isize,
1408 SyntaxKind::StringLiteralSingleQuote => 104isize,
1409 SyntaxKind::TrueLit => 104isize,
1410 SyntaxKind::ClClose => 104isize,
1411 SyntaxKind::ClOpen => 104isize,
1412 SyntaxKind::Colon => 104isize,
1413 SyntaxKind::Comma => 104isize,
1414 SyntaxKind::CurlyClose => 104isize,
1415 SyntaxKind::CurlyOpen => 104isize,
1416 SyntaxKind::Datatype => 104isize,
1417 SyntaxKind::GraphToken => 104isize,
1418 SyntaxKind::PrefixToken => 104isize,
1419 SyntaxKind::SparqlBaseToken => 104isize,
1420 SyntaxKind::SparqlPrefixToken => 104isize,
1421 SyntaxKind::SqClose => 104isize,
1422 SyntaxKind::SqOpen => 104isize,
1423 SyntaxKind::Stop => 101isize,
1424 _ => 0,
1425 },
1426 (SyntaxKind::Directive, 4usize, _) => match terminal {
1427 SyntaxKind::Alit => 102isize,
1428 SyntaxKind::BlankNodeLabel => 102isize,
1429 SyntaxKind::Decimal => 102isize,
1430 SyntaxKind::Double => 102isize,
1431 SyntaxKind::FalseLit => 102isize,
1432 SyntaxKind::Integer => 102isize,
1433 SyntaxKind::Iriref => 101isize,
1434 SyntaxKind::Langtag => 102isize,
1435 SyntaxKind::PnameLn => 102isize,
1436 SyntaxKind::PnameNs => 100isize,
1437 SyntaxKind::StringLiteralLongQuote => 102isize,
1438 SyntaxKind::StringLiteralLongSingleQuote => 102isize,
1439 SyntaxKind::StringLiteralQuote => 102isize,
1440 SyntaxKind::StringLiteralSingleQuote => 102isize,
1441 SyntaxKind::TrueLit => 102isize,
1442 SyntaxKind::BaseToken => 102isize,
1443 SyntaxKind::ClClose => 102isize,
1444 SyntaxKind::ClOpen => 102isize,
1445 SyntaxKind::Colon => 102isize,
1446 SyntaxKind::Comma => 102isize,
1447 SyntaxKind::CurlyClose => 102isize,
1448 SyntaxKind::CurlyOpen => 102isize,
1449 SyntaxKind::Datatype => 102isize,
1450 SyntaxKind::GraphToken => 102isize,
1451 SyntaxKind::PrefixToken => 102isize,
1452 SyntaxKind::SparqlBaseToken => 102isize,
1453 SyntaxKind::SqClose => 102isize,
1454 SyntaxKind::SqOpen => 102isize,
1455 SyntaxKind::Stop => 102isize,
1456 _ => 0,
1457 },
1458 (SyntaxKind::Directive, 5usize, _) => match terminal {
1459 SyntaxKind::Alit => 101isize,
1460 SyntaxKind::BlankNodeLabel => 101isize,
1461 SyntaxKind::Decimal => 101isize,
1462 SyntaxKind::Double => 101isize,
1463 SyntaxKind::FalseLit => 101isize,
1464 SyntaxKind::Integer => 101isize,
1465 SyntaxKind::Iriref => 100isize,
1466 SyntaxKind::Langtag => 101isize,
1467 SyntaxKind::PnameLn => 101isize,
1468 SyntaxKind::PnameNs => 101isize,
1469 SyntaxKind::StringLiteralLongQuote => 101isize,
1470 SyntaxKind::StringLiteralLongSingleQuote => 101isize,
1471 SyntaxKind::StringLiteralQuote => 101isize,
1472 SyntaxKind::StringLiteralSingleQuote => 101isize,
1473 SyntaxKind::TrueLit => 101isize,
1474 SyntaxKind::BaseToken => 101isize,
1475 SyntaxKind::ClClose => 101isize,
1476 SyntaxKind::ClOpen => 101isize,
1477 SyntaxKind::Colon => 101isize,
1478 SyntaxKind::Comma => 101isize,
1479 SyntaxKind::CurlyClose => 101isize,
1480 SyntaxKind::CurlyOpen => 101isize,
1481 SyntaxKind::Datatype => 101isize,
1482 SyntaxKind::GraphToken => 101isize,
1483 SyntaxKind::PrefixToken => 101isize,
1484 SyntaxKind::SparqlPrefixToken => 101isize,
1485 SyntaxKind::SqClose => 101isize,
1486 SyntaxKind::SqOpen => 101isize,
1487 SyntaxKind::Stop => 101isize,
1488 _ => 0,
1489 },
1490 (SyntaxKind::GraphBlock, 1usize, _) => match terminal {
1491 SyntaxKind::CurlyOpen => 0,
1492 _ => 2isize,
1493 },
1494 (SyntaxKind::GraphBlock, 2usize, _) => match terminal {
1495 SyntaxKind::BlankNodeLabel
1496 | SyntaxKind::Iriref
1497 | SyntaxKind::PnameLn
1498 | SyntaxKind::PnameNs
1499 | SyntaxKind::CurlyOpen
1500 | SyntaxKind::GraphToken
1501 | SyntaxKind::SqOpen => 0,
1502 _ => 1isize,
1503 },
1504 (SyntaxKind::GraphBlock, 3usize, _) => match terminal {
1505 SyntaxKind::BlankNodeLabel
1506 | SyntaxKind::Iriref
1507 | SyntaxKind::PnameLn
1508 | SyntaxKind::PnameNs
1509 | SyntaxKind::SqOpen => 0,
1510 _ => 1isize,
1511 },
1512 (SyntaxKind::GraphBlock, 4usize, _) => match terminal {
1513 SyntaxKind::Alit => 4isize,
1514 SyntaxKind::BlankNodeLabel => 3isize,
1515 SyntaxKind::Decimal => 4isize,
1516 SyntaxKind::Double => 4isize,
1517 SyntaxKind::FalseLit => 4isize,
1518 SyntaxKind::Integer => 4isize,
1519 SyntaxKind::Iriref => 3isize,
1520 SyntaxKind::Langtag => 4isize,
1521 SyntaxKind::PnameLn => 3isize,
1522 SyntaxKind::PnameNs => 3isize,
1523 SyntaxKind::StringLiteralLongQuote => 4isize,
1524 SyntaxKind::StringLiteralLongSingleQuote => 4isize,
1525 SyntaxKind::StringLiteralQuote => 4isize,
1526 SyntaxKind::StringLiteralSingleQuote => 4isize,
1527 SyntaxKind::TrueLit => 4isize,
1528 SyntaxKind::BaseToken => 4isize,
1529 SyntaxKind::ClClose => 4isize,
1530 SyntaxKind::ClOpen => 4isize,
1531 SyntaxKind::Colon => 4isize,
1532 SyntaxKind::Comma => 4isize,
1533 SyntaxKind::CurlyClose => 4isize,
1534 SyntaxKind::CurlyOpen => 4isize,
1535 SyntaxKind::Datatype => 4isize,
1536 SyntaxKind::PrefixToken => 4isize,
1537 SyntaxKind::SparqlBaseToken => 4isize,
1538 SyntaxKind::SparqlPrefixToken => 4isize,
1539 SyntaxKind::SqClose => 4isize,
1540 SyntaxKind::SqOpen => 3isize,
1541 SyntaxKind::Stop => 4isize,
1542 _ => 0,
1543 },
1544 (SyntaxKind::GraphBlock, 5usize, _) => match terminal {
1545 SyntaxKind::BlankNodeLabel
1546 | SyntaxKind::Iriref
1547 | SyntaxKind::PnameLn
1548 | SyntaxKind::PnameNs
1549 | SyntaxKind::CurlyOpen
1550 | SyntaxKind::SqOpen => 0,
1551 _ => 1isize,
1552 },
1553 (SyntaxKind::GraphBlock, 6usize, _) => match terminal {
1554 SyntaxKind::BlankNodeLabel
1555 | SyntaxKind::Iriref
1556 | SyntaxKind::PnameLn
1557 | SyntaxKind::PnameNs
1558 | SyntaxKind::SqOpen => 0,
1559 _ => 1isize,
1560 },
1561 (SyntaxKind::GraphTerm, 1usize, _) => match terminal {
1562 SyntaxKind::BlankNodeLabel
1563 | SyntaxKind::Iriref
1564 | SyntaxKind::PnameLn
1565 | SyntaxKind::PnameNs
1566 | SyntaxKind::SqOpen => 0,
1567 _ => 1isize,
1568 },
1569 (SyntaxKind::GraphTerm, 2usize, _) => match terminal {
1570 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1571 _ => 1isize,
1572 },
1573 (SyntaxKind::GraphTerm, 3usize, _) => match terminal {
1574 SyntaxKind::BlankNodeLabel | SyntaxKind::SqOpen => 0,
1575 _ => 1isize,
1576 },
1577 (SyntaxKind::Iri, 1usize, _) => match terminal {
1578 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1579 _ => 1isize,
1580 },
1581 (SyntaxKind::Iri, 2usize, _) => match terminal {
1582 SyntaxKind::Iriref => 0,
1583 _ => 1isize,
1584 },
1585 (SyntaxKind::Iri, 3usize, _) => match terminal {
1586 SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1587 _ => 1isize,
1588 },
1589 (SyntaxKind::Literal, 1usize, _) => match terminal {
1590 SyntaxKind::Decimal
1591 | SyntaxKind::Double
1592 | SyntaxKind::FalseLit
1593 | SyntaxKind::Integer
1594 | SyntaxKind::StringLiteralLongQuote
1595 | SyntaxKind::StringLiteralLongSingleQuote
1596 | SyntaxKind::StringLiteralQuote
1597 | SyntaxKind::StringLiteralSingleQuote
1598 | SyntaxKind::TrueLit => 0,
1599 _ => 1isize,
1600 },
1601 (SyntaxKind::Literal, 2usize, _) => match terminal {
1602 SyntaxKind::StringLiteralLongQuote
1603 | SyntaxKind::StringLiteralLongSingleQuote
1604 | SyntaxKind::StringLiteralQuote
1605 | SyntaxKind::StringLiteralSingleQuote => 0,
1606 _ => 1isize,
1607 },
1608 (SyntaxKind::Literal, 3usize, _) => match terminal {
1609 SyntaxKind::Decimal | SyntaxKind::Double | SyntaxKind::Integer => 0,
1610 _ => 1isize,
1611 },
1612 (SyntaxKind::Literal, 4usize, _) => match terminal {
1613 SyntaxKind::FalseLit | SyntaxKind::TrueLit => 0,
1614 _ => 1isize,
1615 },
1616 (SyntaxKind::Object, 1usize, _) => match terminal {
1617 SyntaxKind::BlankNodeLabel
1618 | SyntaxKind::Decimal
1619 | SyntaxKind::Double
1620 | SyntaxKind::FalseLit
1621 | SyntaxKind::Integer
1622 | SyntaxKind::Iriref
1623 | SyntaxKind::PnameLn
1624 | SyntaxKind::PnameNs
1625 | SyntaxKind::StringLiteralLongQuote
1626 | SyntaxKind::StringLiteralLongSingleQuote
1627 | SyntaxKind::StringLiteralQuote
1628 | SyntaxKind::StringLiteralSingleQuote
1629 | SyntaxKind::TrueLit
1630 | SyntaxKind::ClOpen
1631 | SyntaxKind::SqOpen => 0,
1632 _ => 1isize,
1633 },
1634 (SyntaxKind::Object, 2usize, _) => match terminal {
1635 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1636 _ => 1isize,
1637 },
1638 (SyntaxKind::Object, 3usize, _) => match terminal {
1639 SyntaxKind::BlankNodeLabel | SyntaxKind::SqOpen => 0,
1640 _ => 1isize,
1641 },
1642 (SyntaxKind::Object, 4usize, _) => match terminal {
1643 SyntaxKind::ClOpen => 0,
1644 _ => 2isize,
1645 },
1646 (SyntaxKind::Object, 5usize, _) => match terminal {
1647 SyntaxKind::SqOpen => 0,
1648 _ => 2isize,
1649 },
1650 (SyntaxKind::Object, 6usize, _) => match terminal {
1651 SyntaxKind::Decimal
1652 | SyntaxKind::Double
1653 | SyntaxKind::FalseLit
1654 | SyntaxKind::Integer
1655 | SyntaxKind::StringLiteralLongQuote
1656 | SyntaxKind::StringLiteralLongSingleQuote
1657 | SyntaxKind::StringLiteralQuote
1658 | SyntaxKind::StringLiteralSingleQuote
1659 | SyntaxKind::TrueLit => 0,
1660 _ => 1isize,
1661 },
1662 (SyntaxKind::ObjectList, 2usize, _) => match terminal {
1663 SyntaxKind::BlankNodeLabel
1664 | SyntaxKind::Decimal
1665 | SyntaxKind::Double
1666 | SyntaxKind::FalseLit
1667 | SyntaxKind::Integer
1668 | SyntaxKind::Iriref
1669 | SyntaxKind::PnameLn
1670 | SyntaxKind::PnameNs
1671 | SyntaxKind::StringLiteralLongQuote
1672 | SyntaxKind::StringLiteralLongSingleQuote
1673 | SyntaxKind::StringLiteralQuote
1674 | SyntaxKind::StringLiteralSingleQuote
1675 | SyntaxKind::TrueLit
1676 | SyntaxKind::ClOpen
1677 | SyntaxKind::SqOpen => 0,
1678 _ => 1isize,
1679 },
1680 (SyntaxKind::ObjectList, 3usize, _) => match terminal {
1681 SyntaxKind::Alit => 2isize,
1682 SyntaxKind::BlankNodeLabel => 1isize,
1683 SyntaxKind::Decimal => 1isize,
1684 SyntaxKind::Double => 1isize,
1685 SyntaxKind::FalseLit => 1isize,
1686 SyntaxKind::Integer => 1isize,
1687 SyntaxKind::Iriref => 1isize,
1688 SyntaxKind::Langtag => 2isize,
1689 SyntaxKind::PnameLn => 1isize,
1690 SyntaxKind::PnameNs => 1isize,
1691 SyntaxKind::StringLiteralLongQuote => 1isize,
1692 SyntaxKind::StringLiteralLongSingleQuote => 1isize,
1693 SyntaxKind::StringLiteralQuote => 1isize,
1694 SyntaxKind::StringLiteralSingleQuote => 1isize,
1695 SyntaxKind::TrueLit => 1isize,
1696 SyntaxKind::BaseToken => 2isize,
1697 SyntaxKind::ClClose => 2isize,
1698 SyntaxKind::ClOpen => 1isize,
1699 SyntaxKind::Colon => 2isize,
1700 SyntaxKind::CurlyClose => 2isize,
1701 SyntaxKind::CurlyOpen => 2isize,
1702 SyntaxKind::Datatype => 2isize,
1703 SyntaxKind::GraphToken => 2isize,
1704 SyntaxKind::PrefixToken => 2isize,
1705 SyntaxKind::SparqlBaseToken => 2isize,
1706 SyntaxKind::SparqlPrefixToken => 2isize,
1707 SyntaxKind::SqClose => 2isize,
1708 SyntaxKind::SqOpen => 1isize,
1709 SyntaxKind::Stop => 2isize,
1710 _ => 0,
1711 },
1712 (SyntaxKind::ObjectList, 4usize, _) => match terminal {
1713 SyntaxKind::BlankNodeLabel
1714 | SyntaxKind::Decimal
1715 | SyntaxKind::Double
1716 | SyntaxKind::FalseLit
1717 | SyntaxKind::Integer
1718 | SyntaxKind::Iriref
1719 | SyntaxKind::PnameLn
1720 | SyntaxKind::PnameNs
1721 | SyntaxKind::StringLiteralLongQuote
1722 | SyntaxKind::StringLiteralLongSingleQuote
1723 | SyntaxKind::StringLiteralQuote
1724 | SyntaxKind::StringLiteralSingleQuote
1725 | SyntaxKind::TrueLit
1726 | SyntaxKind::ClOpen
1727 | SyntaxKind::SqOpen => 0,
1728 _ => 1isize,
1729 },
1730 (SyntaxKind::Predicate, 1usize, _) => match terminal {
1731 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
1732 _ => 1isize,
1733 },
1734 (SyntaxKind::PredicateObjectList, 3usize, _) => match terminal {
1735 SyntaxKind::BlankNodeLabel
1736 | SyntaxKind::Decimal
1737 | SyntaxKind::Double
1738 | SyntaxKind::FalseLit
1739 | SyntaxKind::Integer
1740 | SyntaxKind::Iriref
1741 | SyntaxKind::PnameLn
1742 | SyntaxKind::PnameNs
1743 | SyntaxKind::StringLiteralLongQuote
1744 | SyntaxKind::StringLiteralLongSingleQuote
1745 | SyntaxKind::StringLiteralQuote
1746 | SyntaxKind::StringLiteralSingleQuote
1747 | SyntaxKind::TrueLit
1748 | SyntaxKind::ClOpen
1749 | SyntaxKind::SqOpen => 0,
1750 _ => 1isize,
1751 },
1752 (SyntaxKind::PredicateObjectList, 4usize, _) => match terminal {
1753 SyntaxKind::Alit
1754 | SyntaxKind::Iriref
1755 | SyntaxKind::PnameLn
1756 | SyntaxKind::PnameNs => 0,
1757 _ => 1isize,
1758 },
1759 (SyntaxKind::PredicateObjectList, 5usize, _) => match terminal {
1760 SyntaxKind::Colon => 0,
1761 _ => 1isize,
1762 },
1763 (SyntaxKind::PredicateObjectList, 6usize, _) => match terminal {
1764 SyntaxKind::BlankNodeLabel
1765 | SyntaxKind::Decimal
1766 | SyntaxKind::Double
1767 | SyntaxKind::FalseLit
1768 | SyntaxKind::Integer
1769 | SyntaxKind::Iriref
1770 | SyntaxKind::PnameLn
1771 | SyntaxKind::PnameNs
1772 | SyntaxKind::StringLiteralLongQuote
1773 | SyntaxKind::StringLiteralLongSingleQuote
1774 | SyntaxKind::StringLiteralQuote
1775 | SyntaxKind::StringLiteralSingleQuote
1776 | SyntaxKind::TrueLit
1777 | SyntaxKind::ClOpen
1778 | SyntaxKind::SqOpen => 0,
1779 _ => 1isize,
1780 },
1781 (SyntaxKind::PredicateObjectList, 7usize, _) => match terminal {
1782 SyntaxKind::Alit
1783 | SyntaxKind::Iriref
1784 | SyntaxKind::PnameLn
1785 | SyntaxKind::PnameNs => 0,
1786 _ => 1isize,
1787 },
1788 (SyntaxKind::PrefixId, 1usize, _) => match terminal {
1789 SyntaxKind::Stop => 0,
1790 _ => 3isize,
1791 },
1792 (SyntaxKind::PrefixId, 2usize, _) => match terminal {
1793 SyntaxKind::Alit => 4isize,
1794 SyntaxKind::BlankNodeLabel => 4isize,
1795 SyntaxKind::Decimal => 4isize,
1796 SyntaxKind::Double => 4isize,
1797 SyntaxKind::FalseLit => 4isize,
1798 SyntaxKind::Integer => 4isize,
1799 SyntaxKind::Langtag => 4isize,
1800 SyntaxKind::PnameLn => 4isize,
1801 SyntaxKind::PnameNs => 4isize,
1802 SyntaxKind::StringLiteralLongQuote => 4isize,
1803 SyntaxKind::StringLiteralLongSingleQuote => 4isize,
1804 SyntaxKind::StringLiteralQuote => 4isize,
1805 SyntaxKind::StringLiteralSingleQuote => 4isize,
1806 SyntaxKind::TrueLit => 4isize,
1807 SyntaxKind::BaseToken => 4isize,
1808 SyntaxKind::ClClose => 4isize,
1809 SyntaxKind::ClOpen => 4isize,
1810 SyntaxKind::Colon => 4isize,
1811 SyntaxKind::Comma => 4isize,
1812 SyntaxKind::CurlyClose => 4isize,
1813 SyntaxKind::CurlyOpen => 4isize,
1814 SyntaxKind::Datatype => 4isize,
1815 SyntaxKind::GraphToken => 4isize,
1816 SyntaxKind::PrefixToken => 4isize,
1817 SyntaxKind::SparqlBaseToken => 4isize,
1818 SyntaxKind::SparqlPrefixToken => 4isize,
1819 SyntaxKind::SqClose => 4isize,
1820 SyntaxKind::SqOpen => 4isize,
1821 SyntaxKind::Stop => 1isize,
1822 _ => 0,
1823 },
1824 (SyntaxKind::PrefixId, 3usize, _) => match terminal {
1825 SyntaxKind::Alit => 5isize,
1826 SyntaxKind::BlankNodeLabel => 5isize,
1827 SyntaxKind::Decimal => 5isize,
1828 SyntaxKind::Double => 5isize,
1829 SyntaxKind::FalseLit => 5isize,
1830 SyntaxKind::Integer => 5isize,
1831 SyntaxKind::Iriref => 1isize,
1832 SyntaxKind::Langtag => 5isize,
1833 SyntaxKind::PnameLn => 5isize,
1834 SyntaxKind::StringLiteralLongQuote => 5isize,
1835 SyntaxKind::StringLiteralLongSingleQuote => 5isize,
1836 SyntaxKind::StringLiteralQuote => 5isize,
1837 SyntaxKind::StringLiteralSingleQuote => 5isize,
1838 SyntaxKind::TrueLit => 5isize,
1839 SyntaxKind::BaseToken => 5isize,
1840 SyntaxKind::ClClose => 5isize,
1841 SyntaxKind::ClOpen => 5isize,
1842 SyntaxKind::Colon => 5isize,
1843 SyntaxKind::Comma => 5isize,
1844 SyntaxKind::CurlyClose => 5isize,
1845 SyntaxKind::CurlyOpen => 5isize,
1846 SyntaxKind::Datatype => 5isize,
1847 SyntaxKind::GraphToken => 5isize,
1848 SyntaxKind::PrefixToken => 5isize,
1849 SyntaxKind::SparqlBaseToken => 5isize,
1850 SyntaxKind::SparqlPrefixToken => 5isize,
1851 SyntaxKind::SqClose => 5isize,
1852 SyntaxKind::SqOpen => 5isize,
1853 SyntaxKind::Stop => 2isize,
1854 _ => 0,
1855 },
1856 (SyntaxKind::PrefixId, 4usize, _) => match terminal {
1857 SyntaxKind::Alit => 105isize,
1858 SyntaxKind::BlankNodeLabel => 105isize,
1859 SyntaxKind::Decimal => 105isize,
1860 SyntaxKind::Double => 105isize,
1861 SyntaxKind::FalseLit => 105isize,
1862 SyntaxKind::Integer => 105isize,
1863 SyntaxKind::Iriref => 101isize,
1864 SyntaxKind::Langtag => 105isize,
1865 SyntaxKind::PnameLn => 105isize,
1866 SyntaxKind::PnameNs => 100isize,
1867 SyntaxKind::StringLiteralLongQuote => 105isize,
1868 SyntaxKind::StringLiteralLongSingleQuote => 105isize,
1869 SyntaxKind::StringLiteralQuote => 105isize,
1870 SyntaxKind::StringLiteralSingleQuote => 105isize,
1871 SyntaxKind::TrueLit => 105isize,
1872 SyntaxKind::BaseToken => 105isize,
1873 SyntaxKind::ClClose => 105isize,
1874 SyntaxKind::ClOpen => 105isize,
1875 SyntaxKind::Colon => 105isize,
1876 SyntaxKind::Comma => 105isize,
1877 SyntaxKind::CurlyClose => 105isize,
1878 SyntaxKind::CurlyOpen => 105isize,
1879 SyntaxKind::Datatype => 105isize,
1880 SyntaxKind::GraphToken => 105isize,
1881 SyntaxKind::SparqlBaseToken => 105isize,
1882 SyntaxKind::SparqlPrefixToken => 105isize,
1883 SyntaxKind::SqClose => 105isize,
1884 SyntaxKind::SqOpen => 105isize,
1885 SyntaxKind::Stop => 102isize,
1886 _ => 0,
1887 },
1888 (SyntaxKind::SparqlBase, 1usize, _) => match terminal {
1889 SyntaxKind::Iriref => 0,
1890 _ => 1isize,
1891 },
1892 (SyntaxKind::SparqlBase, 2usize, _) => match terminal {
1893 SyntaxKind::Alit => 101isize,
1894 SyntaxKind::BlankNodeLabel => 101isize,
1895 SyntaxKind::Decimal => 101isize,
1896 SyntaxKind::Double => 101isize,
1897 SyntaxKind::FalseLit => 101isize,
1898 SyntaxKind::Integer => 101isize,
1899 SyntaxKind::Iriref => 100isize,
1900 SyntaxKind::Langtag => 101isize,
1901 SyntaxKind::PnameLn => 101isize,
1902 SyntaxKind::PnameNs => 101isize,
1903 SyntaxKind::StringLiteralLongQuote => 101isize,
1904 SyntaxKind::StringLiteralLongSingleQuote => 101isize,
1905 SyntaxKind::StringLiteralQuote => 101isize,
1906 SyntaxKind::StringLiteralSingleQuote => 101isize,
1907 SyntaxKind::TrueLit => 101isize,
1908 SyntaxKind::BaseToken => 101isize,
1909 SyntaxKind::ClClose => 101isize,
1910 SyntaxKind::ClOpen => 101isize,
1911 SyntaxKind::Colon => 101isize,
1912 SyntaxKind::Comma => 101isize,
1913 SyntaxKind::CurlyClose => 101isize,
1914 SyntaxKind::CurlyOpen => 101isize,
1915 SyntaxKind::Datatype => 101isize,
1916 SyntaxKind::GraphToken => 101isize,
1917 SyntaxKind::PrefixToken => 101isize,
1918 SyntaxKind::SparqlPrefixToken => 101isize,
1919 SyntaxKind::SqClose => 101isize,
1920 SyntaxKind::SqOpen => 101isize,
1921 SyntaxKind::Stop => 101isize,
1922 _ => 0,
1923 },
1924 (SyntaxKind::SparqlPrefix, 1usize, _) => match terminal {
1925 SyntaxKind::Iriref => 0,
1926 _ => 1isize,
1927 },
1928 (SyntaxKind::SparqlPrefix, 2usize, _) => match terminal {
1929 SyntaxKind::Alit => 2isize,
1930 SyntaxKind::BlankNodeLabel => 2isize,
1931 SyntaxKind::Decimal => 2isize,
1932 SyntaxKind::Double => 2isize,
1933 SyntaxKind::FalseLit => 2isize,
1934 SyntaxKind::Integer => 2isize,
1935 SyntaxKind::Iriref => 1isize,
1936 SyntaxKind::Langtag => 2isize,
1937 SyntaxKind::PnameLn => 2isize,
1938 SyntaxKind::StringLiteralLongQuote => 2isize,
1939 SyntaxKind::StringLiteralLongSingleQuote => 2isize,
1940 SyntaxKind::StringLiteralQuote => 2isize,
1941 SyntaxKind::StringLiteralSingleQuote => 2isize,
1942 SyntaxKind::TrueLit => 2isize,
1943 SyntaxKind::BaseToken => 2isize,
1944 SyntaxKind::ClClose => 2isize,
1945 SyntaxKind::ClOpen => 2isize,
1946 SyntaxKind::Colon => 2isize,
1947 SyntaxKind::Comma => 2isize,
1948 SyntaxKind::CurlyClose => 2isize,
1949 SyntaxKind::CurlyOpen => 2isize,
1950 SyntaxKind::Datatype => 2isize,
1951 SyntaxKind::GraphToken => 2isize,
1952 SyntaxKind::PrefixToken => 2isize,
1953 SyntaxKind::SparqlBaseToken => 2isize,
1954 SyntaxKind::SparqlPrefixToken => 2isize,
1955 SyntaxKind::SqClose => 2isize,
1956 SyntaxKind::SqOpen => 2isize,
1957 SyntaxKind::Stop => 2isize,
1958 _ => 0,
1959 },
1960 (SyntaxKind::SparqlPrefix, 3usize, _) => match terminal {
1961 SyntaxKind::Alit => 102isize,
1962 SyntaxKind::BlankNodeLabel => 102isize,
1963 SyntaxKind::Decimal => 102isize,
1964 SyntaxKind::Double => 102isize,
1965 SyntaxKind::FalseLit => 102isize,
1966 SyntaxKind::Integer => 102isize,
1967 SyntaxKind::Iriref => 101isize,
1968 SyntaxKind::Langtag => 102isize,
1969 SyntaxKind::PnameLn => 102isize,
1970 SyntaxKind::PnameNs => 100isize,
1971 SyntaxKind::StringLiteralLongQuote => 102isize,
1972 SyntaxKind::StringLiteralLongSingleQuote => 102isize,
1973 SyntaxKind::StringLiteralQuote => 102isize,
1974 SyntaxKind::StringLiteralSingleQuote => 102isize,
1975 SyntaxKind::TrueLit => 102isize,
1976 SyntaxKind::BaseToken => 102isize,
1977 SyntaxKind::ClClose => 102isize,
1978 SyntaxKind::ClOpen => 102isize,
1979 SyntaxKind::Colon => 102isize,
1980 SyntaxKind::Comma => 102isize,
1981 SyntaxKind::CurlyClose => 102isize,
1982 SyntaxKind::CurlyOpen => 102isize,
1983 SyntaxKind::Datatype => 102isize,
1984 SyntaxKind::GraphToken => 102isize,
1985 SyntaxKind::PrefixToken => 102isize,
1986 SyntaxKind::SparqlBaseToken => 102isize,
1987 SyntaxKind::SqClose => 102isize,
1988 SyntaxKind::SqOpen => 102isize,
1989 SyntaxKind::Stop => 102isize,
1990 _ => 0,
1991 },
1992 (SyntaxKind::Subject, 1usize, _) => match terminal {
1993 SyntaxKind::BlankNodeLabel
1994 | SyntaxKind::Iriref
1995 | SyntaxKind::PnameLn
1996 | SyntaxKind::PnameNs
1997 | SyntaxKind::ClOpen
1998 | SyntaxKind::SqOpen => 0,
1999 _ => 1isize,
2000 },
2001 (SyntaxKind::Subject, 2usize, _) => match terminal {
2002 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
2003 _ => 1isize,
2004 },
2005 (SyntaxKind::Subject, 3usize, _) => match terminal {
2006 SyntaxKind::BlankNodeLabel | SyntaxKind::SqOpen => 0,
2007 _ => 1isize,
2008 },
2009 (SyntaxKind::Subject, 4usize, _) => match terminal {
2010 SyntaxKind::ClOpen => 0,
2011 _ => 2isize,
2012 },
2013 (SyntaxKind::TrigDoc, 2usize, _) => match terminal {
2014 SyntaxKind::BlankNodeLabel
2015 | SyntaxKind::Iriref
2016 | SyntaxKind::PnameLn
2017 | SyntaxKind::PnameNs
2018 | SyntaxKind::BaseToken
2019 | SyntaxKind::ClOpen
2020 | SyntaxKind::CurlyOpen
2021 | SyntaxKind::GraphToken
2022 | SyntaxKind::PrefixToken
2023 | SyntaxKind::SparqlBaseToken
2024 | SyntaxKind::SparqlPrefixToken
2025 | SyntaxKind::SqOpen => 0,
2026 _ => 1isize,
2027 },
2028 (SyntaxKind::TrigDoc, 3usize, _) => match terminal {
2029 SyntaxKind::Alit => 101isize,
2030 SyntaxKind::BlankNodeLabel => 101isize,
2031 SyntaxKind::Decimal => 101isize,
2032 SyntaxKind::Double => 101isize,
2033 SyntaxKind::FalseLit => 101isize,
2034 SyntaxKind::Integer => 101isize,
2035 SyntaxKind::Iriref => 100isize,
2036 SyntaxKind::Langtag => 101isize,
2037 SyntaxKind::PnameLn => 101isize,
2038 SyntaxKind::PnameNs => 100isize,
2039 SyntaxKind::StringLiteralLongQuote => 101isize,
2040 SyntaxKind::StringLiteralLongSingleQuote => 101isize,
2041 SyntaxKind::StringLiteralQuote => 101isize,
2042 SyntaxKind::StringLiteralSingleQuote => 101isize,
2043 SyntaxKind::TrueLit => 101isize,
2044 SyntaxKind::ClClose => 101isize,
2045 SyntaxKind::ClOpen => 101isize,
2046 SyntaxKind::Colon => 101isize,
2047 SyntaxKind::Comma => 101isize,
2048 SyntaxKind::CurlyClose => 101isize,
2049 SyntaxKind::CurlyOpen => 101isize,
2050 SyntaxKind::Datatype => 101isize,
2051 SyntaxKind::GraphToken => 101isize,
2052 SyntaxKind::SqClose => 101isize,
2053 SyntaxKind::SqOpen => 101isize,
2054 SyntaxKind::Stop => 101isize,
2055 _ => 0,
2056 },
2057 (SyntaxKind::TrigDoc, 4usize, _) => match terminal {
2058 SyntaxKind::BlankNodeLabel
2059 | SyntaxKind::Iriref
2060 | SyntaxKind::PnameLn
2061 | SyntaxKind::PnameNs
2062 | SyntaxKind::ClOpen
2063 | SyntaxKind::CurlyOpen
2064 | SyntaxKind::GraphToken
2065 | SyntaxKind::SqOpen => 0,
2066 _ => 1isize,
2067 },
2068 (SyntaxKind::Triples, 1usize, _) => match terminal {
2069 SyntaxKind::BlankNodeLabel
2070 | SyntaxKind::Iriref
2071 | SyntaxKind::PnameLn
2072 | SyntaxKind::PnameNs
2073 | SyntaxKind::ClOpen
2074 | SyntaxKind::SqOpen => 0,
2075 _ => 1isize,
2076 },
2077 (SyntaxKind::Triples, 2usize, _) => match terminal {
2078 SyntaxKind::Alit
2079 | SyntaxKind::Iriref
2080 | SyntaxKind::PnameLn
2081 | SyntaxKind::PnameNs => 0,
2082 _ => 1isize,
2083 },
2084 (SyntaxKind::Triples, 3usize, _) => match terminal {
2085 SyntaxKind::BlankNodeLabel
2086 | SyntaxKind::Iriref
2087 | SyntaxKind::PnameLn
2088 | SyntaxKind::PnameNs
2089 | SyntaxKind::ClOpen
2090 | SyntaxKind::SqOpen => 0,
2091 _ => 1isize,
2092 },
2093 (SyntaxKind::Triples, 5usize, _) => match terminal {
2094 SyntaxKind::Alit
2095 | SyntaxKind::Iriref
2096 | SyntaxKind::PnameLn
2097 | SyntaxKind::PnameNs => 0,
2098 _ => 1isize,
2099 },
2100 (SyntaxKind::Triples, 6usize, _) => match terminal {
2101 SyntaxKind::Alit => 2isize,
2102 SyntaxKind::BlankNodeLabel => 3isize,
2103 SyntaxKind::Decimal => 3isize,
2104 SyntaxKind::Double => 3isize,
2105 SyntaxKind::FalseLit => 3isize,
2106 SyntaxKind::Integer => 3isize,
2107 SyntaxKind::Iriref => 2isize,
2108 SyntaxKind::Langtag => 3isize,
2109 SyntaxKind::PnameLn => 2isize,
2110 SyntaxKind::PnameNs => 2isize,
2111 SyntaxKind::StringLiteralLongQuote => 3isize,
2112 SyntaxKind::StringLiteralLongSingleQuote => 3isize,
2113 SyntaxKind::StringLiteralQuote => 3isize,
2114 SyntaxKind::StringLiteralSingleQuote => 3isize,
2115 SyntaxKind::TrueLit => 3isize,
2116 SyntaxKind::BaseToken => 3isize,
2117 SyntaxKind::ClClose => 3isize,
2118 SyntaxKind::ClOpen => 3isize,
2119 SyntaxKind::Colon => 3isize,
2120 SyntaxKind::Comma => 3isize,
2121 SyntaxKind::CurlyClose => 3isize,
2122 SyntaxKind::CurlyOpen => 3isize,
2123 SyntaxKind::Datatype => 3isize,
2124 SyntaxKind::GraphToken => 3isize,
2125 SyntaxKind::PrefixToken => 3isize,
2126 SyntaxKind::SparqlBaseToken => 3isize,
2127 SyntaxKind::SparqlPrefixToken => 3isize,
2128 SyntaxKind::SqClose => 3isize,
2129 SyntaxKind::Stop => 3isize,
2130 _ => 0,
2131 },
2132 (SyntaxKind::TriplesBlock, 3usize, _) => match terminal {
2133 SyntaxKind::BlankNodeLabel
2134 | SyntaxKind::Iriref
2135 | SyntaxKind::PnameLn
2136 | SyntaxKind::PnameNs
2137 | SyntaxKind::ClOpen
2138 | SyntaxKind::SqOpen => 0,
2139 _ => 1isize,
2140 },
2141 (SyntaxKind::TriplesBlock, 4usize, _) => match terminal {
2142 SyntaxKind::Stop => 0,
2143 _ => 3isize,
2144 },
2145 (SyntaxKind::TriplesBlock, 5usize, _) => match terminal {
2146 SyntaxKind::BlankNodeLabel
2147 | SyntaxKind::Iriref
2148 | SyntaxKind::PnameLn
2149 | SyntaxKind::PnameNs
2150 | SyntaxKind::ClOpen
2151 | SyntaxKind::SqOpen => 0,
2152 _ => 1isize,
2153 },
2154 (SyntaxKind::Verb, 1usize, _) => match terminal {
2155 SyntaxKind::Alit
2156 | SyntaxKind::Iriref
2157 | SyntaxKind::PnameLn
2158 | SyntaxKind::PnameNs => 0,
2159 _ => 1isize,
2160 },
2161 (SyntaxKind::Verb, 2usize, _) => match terminal {
2162 SyntaxKind::Iriref | SyntaxKind::PnameLn | SyntaxKind::PnameNs => 0,
2163 _ => 1isize,
2164 },
2165 (SyntaxKind::Verb, 3usize, _) => match terminal {
2166 SyntaxKind::Alit => 0,
2167 _ => 1isize,
2168 },
2169 (SyntaxKind::WrappedGraph, 1usize, _) => match terminal {
2170 SyntaxKind::CurlyClose => 0,
2171 _ => 2isize,
2172 },
2173 (SyntaxKind::WrappedGraph, 2usize, _) => match terminal {
2174 SyntaxKind::BlankNodeLabel
2175 | SyntaxKind::Iriref
2176 | SyntaxKind::PnameLn
2177 | SyntaxKind::PnameNs
2178 | SyntaxKind::ClOpen
2179 | SyntaxKind::CurlyClose
2180 | SyntaxKind::SqOpen => 0,
2181 _ => 1isize,
2182 },
2183 (SyntaxKind::WrappedGraph, 3usize, _) => match terminal {
2184 SyntaxKind::BlankNodeLabel
2185 | SyntaxKind::Iriref
2186 | SyntaxKind::PnameLn
2187 | SyntaxKind::PnameNs
2188 | SyntaxKind::ClOpen
2189 | SyntaxKind::SqOpen => 0,
2190 _ => 1isize,
2191 },
2192 (SyntaxKind::WrappedGraph, 4usize, _) => match terminal {
2193 SyntaxKind::CurlyOpen => 0,
2194 _ => 2isize,
2195 },
2196 _ => 0,
2197 }
2198 }
2199 impl crate::a_star::ParserTrait for Rule {
2200 type Kind = SyntaxKind;
2201 fn step(
2202 &self,
2203 element: &crate::a_star::Element<Self>,
2204 state: &mut crate::a_star::AStar<Self>,
2205 ) {
2206 match (self.kind, self.state) {
2207 (SyntaxKind::TrigDoc, 0usize) => {
2208 if let Some(parent) = element.pop() {
2209 state.add_element(parent);
2210 }
2211 }
2212 (SyntaxKind::TrigDoc, 1usize) => {
2213 state.add_element(element.pop_push(Rule {
2214 kind: self.kind,
2215 state: 2usize,
2216 }));
2217 state.add_element(element.pop_push(Rule {
2218 kind: self.kind,
2219 state: 0usize,
2220 }));
2221 }
2222 (SyntaxKind::TrigDoc, 2usize) => {
2223 state.add_element(element.pop_push(Rule {
2224 kind: self.kind,
2225 state: 3usize,
2226 }));
2227 state.add_element(element.pop_push(Rule {
2228 kind: self.kind,
2229 state: 4usize,
2230 }));
2231 }
2232 (SyntaxKind::TrigDoc, 3usize) => {
2233 state.add_element_checked(
2234 element
2235 .pop_push(Rule {
2236 kind: self.kind,
2237 state: 1usize,
2238 })
2239 .push(Rule {
2240 kind: SyntaxKind::Directive,
2241 state: 1usize,
2242 }),
2243 SyntaxKind::Directive,
2244 );
2245 }
2246 (SyntaxKind::TrigDoc, 4usize) => {
2247 state.add_element_checked(
2248 element
2249 .pop_push(Rule {
2250 kind: self.kind,
2251 state: 1usize,
2252 })
2253 .push(Rule {
2254 kind: SyntaxKind::Block,
2255 state: 1usize,
2256 }),
2257 SyntaxKind::Block,
2258 );
2259 }
2260 (SyntaxKind::Directive, 0usize) => {
2261 if let Some(parent) = element.pop() {
2262 state.add_element(parent);
2263 }
2264 }
2265 (SyntaxKind::Directive, 1usize) => {
2266 state.add_element(element.pop_push(Rule {
2267 kind: self.kind,
2268 state: 2usize,
2269 }));
2270 state.add_element(element.pop_push(Rule {
2271 kind: self.kind,
2272 state: 3usize,
2273 }));
2274 state.add_element(element.pop_push(Rule {
2275 kind: self.kind,
2276 state: 4usize,
2277 }));
2278 state.add_element(element.pop_push(Rule {
2279 kind: self.kind,
2280 state: 5usize,
2281 }));
2282 }
2283 (SyntaxKind::Directive, 2usize) => {
2284 state.add_element_checked(
2285 element
2286 .pop_push(Rule {
2287 kind: self.kind,
2288 state: 0usize,
2289 })
2290 .push(Rule {
2291 kind: SyntaxKind::PrefixId,
2292 state: 4usize,
2293 }),
2294 SyntaxKind::PrefixId,
2295 );
2296 }
2297 (SyntaxKind::Directive, 3usize) => {
2298 state.add_element_checked(
2299 element
2300 .pop_push(Rule {
2301 kind: self.kind,
2302 state: 0usize,
2303 })
2304 .push(Rule {
2305 kind: SyntaxKind::Base,
2306 state: 3usize,
2307 }),
2308 SyntaxKind::Base,
2309 );
2310 }
2311 (SyntaxKind::Directive, 4usize) => {
2312 state.add_element_checked(
2313 element
2314 .pop_push(Rule {
2315 kind: self.kind,
2316 state: 0usize,
2317 })
2318 .push(Rule {
2319 kind: SyntaxKind::SparqlPrefix,
2320 state: 3usize,
2321 }),
2322 SyntaxKind::SparqlPrefix,
2323 );
2324 }
2325 (SyntaxKind::Directive, 5usize) => {
2326 state.add_element_checked(
2327 element
2328 .pop_push(Rule {
2329 kind: self.kind,
2330 state: 0usize,
2331 })
2332 .push(Rule {
2333 kind: SyntaxKind::SparqlBase,
2334 state: 2usize,
2335 }),
2336 SyntaxKind::SparqlBase,
2337 );
2338 }
2339 (SyntaxKind::PrefixId, 0usize) => {
2340 if let Some(parent) = element.pop() {
2341 state.add_element(parent);
2342 }
2343 }
2344 (SyntaxKind::PrefixId, 1usize) => {
2345 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Stop);
2346 state.add_element(matched.pop_push(Rule {
2347 kind: self.kind,
2348 state: 0usize,
2349 }));
2350 if let Some(fb) = fb {
2351 state.add_element(fb.pop_push(Rule {
2352 kind: self.kind,
2353 state: 0usize,
2354 }));
2355 }
2356 }
2357 (SyntaxKind::PrefixId, 2usize) => {
2358 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Iriref);
2359 state.add_element(matched.pop_push(Rule {
2360 kind: self.kind,
2361 state: 1usize,
2362 }));
2363 if let Some(fb) = fb {
2364 state.add_element(fb.pop_push(Rule {
2365 kind: self.kind,
2366 state: 1usize,
2367 }));
2368 }
2369 }
2370 (SyntaxKind::PrefixId, 3usize) => {
2371 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::PnameNs);
2372 state.add_element(matched.pop_push(Rule {
2373 kind: self.kind,
2374 state: 2usize,
2375 }));
2376 if let Some(fb) = fb {
2377 state.add_element(fb.pop_push(Rule {
2378 kind: self.kind,
2379 state: 2usize,
2380 }));
2381 }
2382 }
2383 (SyntaxKind::PrefixId, 4usize) => {
2384 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::PrefixToken);
2385 state.add_element(matched.pop_push(Rule {
2386 kind: self.kind,
2387 state: 3usize,
2388 }));
2389 if let Some(fb) = fb {
2390 state.add_element(fb.pop_push(Rule {
2391 kind: self.kind,
2392 state: 3usize,
2393 }));
2394 }
2395 }
2396 (SyntaxKind::Base, 0usize) => {
2397 if let Some(parent) = element.pop() {
2398 state.add_element(parent);
2399 }
2400 }
2401 (SyntaxKind::Base, 1usize) => {
2402 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Stop);
2403 state.add_element(matched.pop_push(Rule {
2404 kind: self.kind,
2405 state: 0usize,
2406 }));
2407 if let Some(fb) = fb {
2408 state.add_element(fb.pop_push(Rule {
2409 kind: self.kind,
2410 state: 0usize,
2411 }));
2412 }
2413 }
2414 (SyntaxKind::Base, 2usize) => {
2415 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Iriref);
2416 state.add_element(matched.pop_push(Rule {
2417 kind: self.kind,
2418 state: 1usize,
2419 }));
2420 if let Some(fb) = fb {
2421 state.add_element(fb.pop_push(Rule {
2422 kind: self.kind,
2423 state: 1usize,
2424 }));
2425 }
2426 }
2427 (SyntaxKind::Base, 3usize) => {
2428 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::BaseToken);
2429 state.add_element(matched.pop_push(Rule {
2430 kind: self.kind,
2431 state: 2usize,
2432 }));
2433 if let Some(fb) = fb {
2434 state.add_element(fb.pop_push(Rule {
2435 kind: self.kind,
2436 state: 2usize,
2437 }));
2438 }
2439 }
2440 (SyntaxKind::SparqlPrefix, 0usize) => {
2441 if let Some(parent) = element.pop() {
2442 state.add_element(parent);
2443 }
2444 }
2445 (SyntaxKind::SparqlPrefix, 1usize) => {
2446 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Iriref);
2447 state.add_element(matched.pop_push(Rule {
2448 kind: self.kind,
2449 state: 0usize,
2450 }));
2451 if let Some(fb) = fb {
2452 state.add_element(fb.pop_push(Rule {
2453 kind: self.kind,
2454 state: 0usize,
2455 }));
2456 }
2457 }
2458 (SyntaxKind::SparqlPrefix, 2usize) => {
2459 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::PnameNs);
2460 state.add_element(matched.pop_push(Rule {
2461 kind: self.kind,
2462 state: 1usize,
2463 }));
2464 if let Some(fb) = fb {
2465 state.add_element(fb.pop_push(Rule {
2466 kind: self.kind,
2467 state: 1usize,
2468 }));
2469 }
2470 }
2471 (SyntaxKind::SparqlPrefix, 3usize) => {
2472 let (matched, fb) =
2473 state.expect_as_inline(element, SyntaxKind::SparqlPrefixToken);
2474 state.add_element(matched.pop_push(Rule {
2475 kind: self.kind,
2476 state: 2usize,
2477 }));
2478 if let Some(fb) = fb {
2479 state.add_element(fb.pop_push(Rule {
2480 kind: self.kind,
2481 state: 2usize,
2482 }));
2483 }
2484 }
2485 (SyntaxKind::SparqlBase, 0usize) => {
2486 if let Some(parent) = element.pop() {
2487 state.add_element(parent);
2488 }
2489 }
2490 (SyntaxKind::SparqlBase, 1usize) => {
2491 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Iriref);
2492 state.add_element(matched.pop_push(Rule {
2493 kind: self.kind,
2494 state: 0usize,
2495 }));
2496 if let Some(fb) = fb {
2497 state.add_element(fb.pop_push(Rule {
2498 kind: self.kind,
2499 state: 0usize,
2500 }));
2501 }
2502 }
2503 (SyntaxKind::SparqlBase, 2usize) => {
2504 let (matched, fb) =
2505 state.expect_as_inline(element, SyntaxKind::SparqlBaseToken);
2506 state.add_element(matched.pop_push(Rule {
2507 kind: self.kind,
2508 state: 1usize,
2509 }));
2510 if let Some(fb) = fb {
2511 state.add_element(fb.pop_push(Rule {
2512 kind: self.kind,
2513 state: 1usize,
2514 }));
2515 }
2516 }
2517 (SyntaxKind::Block, 0usize) => {
2518 if let Some(parent) = element.pop() {
2519 state.add_element(parent);
2520 }
2521 }
2522 (SyntaxKind::Block, 1usize) => {
2523 state.add_element(element.pop_push(Rule {
2524 kind: self.kind,
2525 state: 2usize,
2526 }));
2527 state.add_element(element.pop_push(Rule {
2528 kind: self.kind,
2529 state: 4usize,
2530 }));
2531 }
2532 (SyntaxKind::Block, 2usize) => {
2533 state.add_element_checked(
2534 element
2535 .pop_push(Rule {
2536 kind: self.kind,
2537 state: 0usize,
2538 })
2539 .push(Rule {
2540 kind: SyntaxKind::GraphBlock,
2541 state: 2usize,
2542 }),
2543 SyntaxKind::GraphBlock,
2544 );
2545 }
2546 (SyntaxKind::Block, 3usize) => {
2547 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Stop);
2548 state.add_element(matched.pop_push(Rule {
2549 kind: self.kind,
2550 state: 0usize,
2551 }));
2552 if let Some(fb) = fb {
2553 state.add_element(fb.pop_push(Rule {
2554 kind: self.kind,
2555 state: 0usize,
2556 }));
2557 }
2558 }
2559 (SyntaxKind::Block, 4usize) => {
2560 state.add_element_checked(
2561 element
2562 .pop_push(Rule {
2563 kind: self.kind,
2564 state: 3usize,
2565 })
2566 .push(Rule {
2567 kind: SyntaxKind::Triples,
2568 state: 1usize,
2569 }),
2570 SyntaxKind::Triples,
2571 );
2572 }
2573 (SyntaxKind::GraphBlock, 0usize) => {
2574 if let Some(parent) = element.pop() {
2575 state.add_element(parent);
2576 }
2577 }
2578 (SyntaxKind::GraphBlock, 1usize) => {
2579 state.add_element_checked(
2580 element
2581 .pop_push(Rule {
2582 kind: self.kind,
2583 state: 0usize,
2584 })
2585 .push(Rule {
2586 kind: SyntaxKind::WrappedGraph,
2587 state: 4usize,
2588 }),
2589 SyntaxKind::WrappedGraph,
2590 );
2591 }
2592 (SyntaxKind::GraphBlock, 2usize) => {
2593 state.add_element(element.pop_push(Rule {
2594 kind: self.kind,
2595 state: 4usize,
2596 }));
2597 state.add_element(element.pop_push(Rule {
2598 kind: self.kind,
2599 state: 5usize,
2600 }));
2601 }
2602 (SyntaxKind::GraphBlock, 3usize) => {
2603 state.add_element_checked(
2604 element
2605 .pop_push(Rule {
2606 kind: self.kind,
2607 state: 1usize,
2608 })
2609 .push(Rule {
2610 kind: SyntaxKind::GraphTerm,
2611 state: 1usize,
2612 }),
2613 SyntaxKind::GraphTerm,
2614 );
2615 }
2616 (SyntaxKind::GraphBlock, 4usize) => {
2617 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::GraphToken);
2618 state.add_element(matched.pop_push(Rule {
2619 kind: self.kind,
2620 state: 3usize,
2621 }));
2622 if let Some(fb) = fb {
2623 state.add_element(fb.pop_push(Rule {
2624 kind: self.kind,
2625 state: 3usize,
2626 }));
2627 }
2628 }
2629 (SyntaxKind::GraphBlock, 5usize) => {
2630 state.add_element(element.pop_push(Rule {
2631 kind: self.kind,
2632 state: 1usize,
2633 }));
2634 state.add_element(element.pop_push(Rule {
2635 kind: self.kind,
2636 state: 6usize,
2637 }));
2638 }
2639 (SyntaxKind::GraphBlock, 6usize) => {
2640 state.add_element(element.pop_push(Rule {
2641 kind: self.kind,
2642 state: 3usize,
2643 }));
2644 }
2645 (SyntaxKind::WrappedGraph, 0usize) => {
2646 if let Some(parent) = element.pop() {
2647 state.add_element(parent);
2648 }
2649 }
2650 (SyntaxKind::WrappedGraph, 1usize) => {
2651 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::CurlyClose);
2652 state.add_element(matched.pop_push(Rule {
2653 kind: self.kind,
2654 state: 0usize,
2655 }));
2656 if let Some(fb) = fb {
2657 state.add_element(fb.pop_push(Rule {
2658 kind: self.kind,
2659 state: 0usize,
2660 }));
2661 }
2662 }
2663 (SyntaxKind::WrappedGraph, 2usize) => {
2664 state.add_element(element.pop_push(Rule {
2665 kind: self.kind,
2666 state: 1usize,
2667 }));
2668 state.add_element(element.pop_push(Rule {
2669 kind: self.kind,
2670 state: 3usize,
2671 }));
2672 }
2673 (SyntaxKind::WrappedGraph, 3usize) => {
2674 state.add_element_checked(
2675 element
2676 .pop_push(Rule {
2677 kind: self.kind,
2678 state: 1usize,
2679 })
2680 .push(Rule {
2681 kind: SyntaxKind::TriplesBlock,
2682 state: 5usize,
2683 }),
2684 SyntaxKind::TriplesBlock,
2685 );
2686 }
2687 (SyntaxKind::WrappedGraph, 4usize) => {
2688 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::CurlyOpen);
2689 state.add_element(matched.pop_push(Rule {
2690 kind: self.kind,
2691 state: 2usize,
2692 }));
2693 if let Some(fb) = fb {
2694 state.add_element(fb.pop_push(Rule {
2695 kind: self.kind,
2696 state: 2usize,
2697 }));
2698 }
2699 }
2700 (SyntaxKind::TriplesBlock, 0usize) => {
2701 if let Some(parent) = element.pop() {
2702 state.add_element(parent);
2703 }
2704 }
2705 (SyntaxKind::TriplesBlock, 1usize) => {
2706 state.add_element(element.pop_push(Rule {
2707 kind: self.kind,
2708 state: 0usize,
2709 }));
2710 state.add_element(element.pop_push(Rule {
2711 kind: self.kind,
2712 state: 4usize,
2713 }));
2714 }
2715 (SyntaxKind::TriplesBlock, 2usize) => {
2716 state.add_element(element.pop_push(Rule {
2717 kind: self.kind,
2718 state: 0usize,
2719 }));
2720 state.add_element(element.pop_push(Rule {
2721 kind: self.kind,
2722 state: 3usize,
2723 }));
2724 }
2725 (SyntaxKind::TriplesBlock, 3usize) => {
2726 state.add_element_checked(
2727 element
2728 .pop_push(Rule {
2729 kind: self.kind,
2730 state: 0usize,
2731 })
2732 .push(Rule {
2733 kind: SyntaxKind::TriplesBlock,
2734 state: 5usize,
2735 }),
2736 SyntaxKind::TriplesBlock,
2737 );
2738 }
2739 (SyntaxKind::TriplesBlock, 4usize) => {
2740 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Stop);
2741 state.add_element(matched.pop_push(Rule {
2742 kind: self.kind,
2743 state: 2usize,
2744 }));
2745 if let Some(fb) = fb {
2746 state.add_element(fb.pop_push(Rule {
2747 kind: self.kind,
2748 state: 2usize,
2749 }));
2750 }
2751 }
2752 (SyntaxKind::TriplesBlock, 5usize) => {
2753 state.add_element_checked(
2754 element
2755 .pop_push(Rule {
2756 kind: self.kind,
2757 state: 1usize,
2758 })
2759 .push(Rule {
2760 kind: SyntaxKind::Triples,
2761 state: 1usize,
2762 }),
2763 SyntaxKind::Triples,
2764 );
2765 }
2766 (SyntaxKind::Triples, 0usize) => {
2767 if let Some(parent) = element.pop() {
2768 state.add_element(parent);
2769 }
2770 }
2771 (SyntaxKind::Triples, 1usize) => {
2772 state.add_element(element.pop_push(Rule {
2773 kind: self.kind,
2774 state: 3usize,
2775 }));
2776 state.add_element(element.pop_push(Rule {
2777 kind: self.kind,
2778 state: 6usize,
2779 }));
2780 }
2781 (SyntaxKind::Triples, 2usize) => {
2782 state.add_element_checked(
2783 element
2784 .pop_push(Rule {
2785 kind: self.kind,
2786 state: 0usize,
2787 })
2788 .push(Rule {
2789 kind: SyntaxKind::PredicateObjectList,
2790 state: 7usize,
2791 }),
2792 SyntaxKind::PredicateObjectList,
2793 );
2794 }
2795 (SyntaxKind::Triples, 3usize) => {
2796 state.add_element_checked(
2797 element
2798 .pop_push(Rule {
2799 kind: self.kind,
2800 state: 2usize,
2801 })
2802 .push(Rule {
2803 kind: SyntaxKind::Subject,
2804 state: 1usize,
2805 }),
2806 SyntaxKind::Subject,
2807 );
2808 }
2809 (SyntaxKind::Triples, 4usize) => {
2810 state.add_element(element.pop_push(Rule {
2811 kind: self.kind,
2812 state: 0usize,
2813 }));
2814 state.add_element(element.pop_push(Rule {
2815 kind: self.kind,
2816 state: 5usize,
2817 }));
2818 }
2819 (SyntaxKind::Triples, 5usize) => {
2820 state.add_element(element.pop_push(Rule {
2821 kind: self.kind,
2822 state: 2usize,
2823 }));
2824 }
2825 (SyntaxKind::Triples, 6usize) => {
2826 state.add_element_checked(
2827 element
2828 .pop_push(Rule {
2829 kind: self.kind,
2830 state: 4usize,
2831 })
2832 .push(Rule {
2833 kind: SyntaxKind::BlankNodePropertyList,
2834 state: 3usize,
2835 }),
2836 SyntaxKind::BlankNodePropertyList,
2837 );
2838 }
2839 (SyntaxKind::PredicateObjectList, 0usize) => {
2840 if let Some(parent) = element.pop() {
2841 state.add_element(parent);
2842 }
2843 }
2844 (SyntaxKind::PredicateObjectList, 1usize) => {
2845 state.add_element(element.pop_push(Rule {
2846 kind: self.kind,
2847 state: 5usize,
2848 }));
2849 state.add_element(element.pop_push(Rule {
2850 kind: self.kind,
2851 state: 0usize,
2852 }));
2853 }
2854 (SyntaxKind::PredicateObjectList, 2usize) => {
2855 state.add_element(element.pop_push(Rule {
2856 kind: self.kind,
2857 state: 1usize,
2858 }));
2859 state.add_element(element.pop_push(Rule {
2860 kind: self.kind,
2861 state: 4usize,
2862 }));
2863 }
2864 (SyntaxKind::PredicateObjectList, 3usize) => {
2865 state.add_element_checked(
2866 element
2867 .pop_push(Rule {
2868 kind: self.kind,
2869 state: 1usize,
2870 })
2871 .push(Rule {
2872 kind: SyntaxKind::ObjectList,
2873 state: 4usize,
2874 }),
2875 SyntaxKind::ObjectList,
2876 );
2877 }
2878 (SyntaxKind::PredicateObjectList, 4usize) => {
2879 state.add_element_checked(
2880 element
2881 .pop_push(Rule {
2882 kind: self.kind,
2883 state: 3usize,
2884 })
2885 .push(Rule {
2886 kind: SyntaxKind::Verb,
2887 state: 1usize,
2888 }),
2889 SyntaxKind::Verb,
2890 );
2891 }
2892 (SyntaxKind::PredicateObjectList, 5usize) => {
2893 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Colon);
2894 state.add_element(matched.pop_push(Rule {
2895 kind: self.kind,
2896 state: 2usize,
2897 }));
2898 if let Some(fb) = fb {
2899 state.add_element(fb.pop_push(Rule {
2900 kind: self.kind,
2901 state: 2usize,
2902 }));
2903 }
2904 }
2905 (SyntaxKind::PredicateObjectList, 6usize) => {
2906 state.add_element(element.pop_push(Rule {
2907 kind: self.kind,
2908 state: 3usize,
2909 }));
2910 }
2911 (SyntaxKind::PredicateObjectList, 7usize) => {
2912 state.add_element_checked(
2913 element
2914 .pop_push(Rule {
2915 kind: self.kind,
2916 state: 6usize,
2917 })
2918 .push(Rule {
2919 kind: SyntaxKind::Verb,
2920 state: 1usize,
2921 }),
2922 SyntaxKind::Verb,
2923 );
2924 }
2925 (SyntaxKind::ObjectList, 0usize) => {
2926 if let Some(parent) = element.pop() {
2927 state.add_element(parent);
2928 }
2929 }
2930 (SyntaxKind::ObjectList, 1usize) => {
2931 state.add_element(element.pop_push(Rule {
2932 kind: self.kind,
2933 state: 3usize,
2934 }));
2935 state.add_element(element.pop_push(Rule {
2936 kind: self.kind,
2937 state: 0usize,
2938 }));
2939 }
2940 (SyntaxKind::ObjectList, 2usize) => {
2941 state.add_element_checked(
2942 element
2943 .pop_push(Rule {
2944 kind: self.kind,
2945 state: 1usize,
2946 })
2947 .push(Rule {
2948 kind: SyntaxKind::Object,
2949 state: 1usize,
2950 }),
2951 SyntaxKind::Object,
2952 );
2953 }
2954 (SyntaxKind::ObjectList, 3usize) => {
2955 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Comma);
2956 state.add_element(matched.pop_push(Rule {
2957 kind: self.kind,
2958 state: 2usize,
2959 }));
2960 if let Some(fb) = fb {
2961 state.add_element(fb.pop_push(Rule {
2962 kind: self.kind,
2963 state: 2usize,
2964 }));
2965 }
2966 }
2967 (SyntaxKind::ObjectList, 4usize) => {
2968 state.add_element(element.pop_push(Rule {
2969 kind: self.kind,
2970 state: 2usize,
2971 }));
2972 }
2973 (SyntaxKind::Verb, 0usize) => {
2974 if let Some(parent) = element.pop() {
2975 state.add_element(parent);
2976 }
2977 }
2978 (SyntaxKind::Verb, 1usize) => {
2979 state.add_element(element.pop_push(Rule {
2980 kind: self.kind,
2981 state: 2usize,
2982 }));
2983 state.add_element_checked(
2984 element.pop_push(Rule {
2985 kind: self.kind,
2986 state: 3usize,
2987 }),
2988 SyntaxKind::Alit,
2989 );
2990 }
2991 (SyntaxKind::Verb, 2usize) => {
2992 state.add_element_checked(
2993 element
2994 .pop_push(Rule {
2995 kind: self.kind,
2996 state: 0usize,
2997 })
2998 .push(Rule {
2999 kind: SyntaxKind::Predicate,
3000 state: 1usize,
3001 }),
3002 SyntaxKind::Predicate,
3003 );
3004 }
3005 (SyntaxKind::Verb, 3usize) => {
3006 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Alit);
3007 state.add_element(matched.pop_push(Rule {
3008 kind: self.kind,
3009 state: 0usize,
3010 }));
3011 if let Some(fb) = fb {
3012 state.add_element(fb.pop_push(Rule {
3013 kind: self.kind,
3014 state: 0usize,
3015 }));
3016 }
3017 }
3018 (SyntaxKind::GraphTerm, 0usize) => {
3019 if let Some(parent) = element.pop() {
3020 state.add_element(parent);
3021 }
3022 }
3023 (SyntaxKind::GraphTerm, 1usize) => {
3024 state.add_element(element.pop_push(Rule {
3025 kind: self.kind,
3026 state: 2usize,
3027 }));
3028 state.add_element(element.pop_push(Rule {
3029 kind: self.kind,
3030 state: 3usize,
3031 }));
3032 }
3033 (SyntaxKind::GraphTerm, 2usize) => {
3034 state.add_element_checked(
3035 element
3036 .pop_push(Rule {
3037 kind: self.kind,
3038 state: 0usize,
3039 })
3040 .push(Rule {
3041 kind: SyntaxKind::Iri,
3042 state: 1usize,
3043 }),
3044 SyntaxKind::Iri,
3045 );
3046 }
3047 (SyntaxKind::GraphTerm, 3usize) => {
3048 state.add_element_checked(
3049 element
3050 .pop_push(Rule {
3051 kind: self.kind,
3052 state: 0usize,
3053 })
3054 .push(Rule {
3055 kind: SyntaxKind::BlankNode,
3056 state: 1usize,
3057 }),
3058 SyntaxKind::BlankNode,
3059 );
3060 }
3061 (SyntaxKind::Subject, 0usize) => {
3062 if let Some(parent) = element.pop() {
3063 state.add_element(parent);
3064 }
3065 }
3066 (SyntaxKind::Subject, 1usize) => {
3067 state.add_element(element.pop_push(Rule {
3068 kind: self.kind,
3069 state: 2usize,
3070 }));
3071 state.add_element(element.pop_push(Rule {
3072 kind: self.kind,
3073 state: 3usize,
3074 }));
3075 state.add_element(element.pop_push(Rule {
3076 kind: self.kind,
3077 state: 4usize,
3078 }));
3079 }
3080 (SyntaxKind::Subject, 2usize) => {
3081 state.add_element_checked(
3082 element
3083 .pop_push(Rule {
3084 kind: self.kind,
3085 state: 0usize,
3086 })
3087 .push(Rule {
3088 kind: SyntaxKind::Iri,
3089 state: 1usize,
3090 }),
3091 SyntaxKind::Iri,
3092 );
3093 }
3094 (SyntaxKind::Subject, 3usize) => {
3095 state.add_element_checked(
3096 element
3097 .pop_push(Rule {
3098 kind: self.kind,
3099 state: 0usize,
3100 })
3101 .push(Rule {
3102 kind: SyntaxKind::BlankNode,
3103 state: 1usize,
3104 }),
3105 SyntaxKind::BlankNode,
3106 );
3107 }
3108 (SyntaxKind::Subject, 4usize) => {
3109 state.add_element_checked(
3110 element
3111 .pop_push(Rule {
3112 kind: self.kind,
3113 state: 0usize,
3114 })
3115 .push(Rule {
3116 kind: SyntaxKind::Collection,
3117 state: 4usize,
3118 }),
3119 SyntaxKind::Collection,
3120 );
3121 }
3122 (SyntaxKind::Predicate, 0usize) => {
3123 if let Some(parent) = element.pop() {
3124 state.add_element(parent);
3125 }
3126 }
3127 (SyntaxKind::Predicate, 1usize) => {
3128 state.add_element_checked(
3129 element
3130 .pop_push(Rule {
3131 kind: self.kind,
3132 state: 0usize,
3133 })
3134 .push(Rule {
3135 kind: SyntaxKind::Iri,
3136 state: 1usize,
3137 }),
3138 SyntaxKind::Iri,
3139 );
3140 }
3141 (SyntaxKind::Object, 0usize) => {
3142 if let Some(parent) = element.pop() {
3143 state.add_element(parent);
3144 }
3145 }
3146 (SyntaxKind::Object, 1usize) => {
3147 state.add_element(element.pop_push(Rule {
3148 kind: self.kind,
3149 state: 2usize,
3150 }));
3151 state.add_element(element.pop_push(Rule {
3152 kind: self.kind,
3153 state: 3usize,
3154 }));
3155 state.add_element(element.pop_push(Rule {
3156 kind: self.kind,
3157 state: 4usize,
3158 }));
3159 state.add_element(element.pop_push(Rule {
3160 kind: self.kind,
3161 state: 5usize,
3162 }));
3163 state.add_element(element.pop_push(Rule {
3164 kind: self.kind,
3165 state: 6usize,
3166 }));
3167 }
3168 (SyntaxKind::Object, 2usize) => {
3169 state.add_element_checked(
3170 element
3171 .pop_push(Rule {
3172 kind: self.kind,
3173 state: 0usize,
3174 })
3175 .push(Rule {
3176 kind: SyntaxKind::Iri,
3177 state: 1usize,
3178 }),
3179 SyntaxKind::Iri,
3180 );
3181 }
3182 (SyntaxKind::Object, 3usize) => {
3183 state.add_element_checked(
3184 element
3185 .pop_push(Rule {
3186 kind: self.kind,
3187 state: 0usize,
3188 })
3189 .push(Rule {
3190 kind: SyntaxKind::BlankNode,
3191 state: 1usize,
3192 }),
3193 SyntaxKind::BlankNode,
3194 );
3195 }
3196 (SyntaxKind::Object, 4usize) => {
3197 state.add_element_checked(
3198 element
3199 .pop_push(Rule {
3200 kind: self.kind,
3201 state: 0usize,
3202 })
3203 .push(Rule {
3204 kind: SyntaxKind::Collection,
3205 state: 4usize,
3206 }),
3207 SyntaxKind::Collection,
3208 );
3209 }
3210 (SyntaxKind::Object, 5usize) => {
3211 state.add_element_checked(
3212 element
3213 .pop_push(Rule {
3214 kind: self.kind,
3215 state: 0usize,
3216 })
3217 .push(Rule {
3218 kind: SyntaxKind::BlankNodePropertyList2,
3219 state: 4usize,
3220 }),
3221 SyntaxKind::BlankNodePropertyList2,
3222 );
3223 }
3224 (SyntaxKind::Object, 6usize) => {
3225 state.add_element_checked(
3226 element
3227 .pop_push(Rule {
3228 kind: self.kind,
3229 state: 0usize,
3230 })
3231 .push(Rule {
3232 kind: SyntaxKind::Literal,
3233 state: 1usize,
3234 }),
3235 SyntaxKind::Literal,
3236 );
3237 }
3238 (SyntaxKind::Literal, 0usize) => {
3239 if let Some(parent) = element.pop() {
3240 state.add_element(parent);
3241 }
3242 }
3243 (SyntaxKind::Literal, 1usize) => {
3244 state.add_element(element.pop_push(Rule {
3245 kind: self.kind,
3246 state: 2usize,
3247 }));
3248 state.add_element(element.pop_push(Rule {
3249 kind: self.kind,
3250 state: 3usize,
3251 }));
3252 state.add_element(element.pop_push(Rule {
3253 kind: self.kind,
3254 state: 4usize,
3255 }));
3256 }
3257 (SyntaxKind::Literal, 2usize) => {
3258 state.add_element_checked(
3259 element
3260 .pop_push(Rule {
3261 kind: self.kind,
3262 state: 0usize,
3263 })
3264 .push(Rule {
3265 kind: SyntaxKind::Rdfliteral,
3266 state: 6usize,
3267 }),
3268 SyntaxKind::Rdfliteral,
3269 );
3270 }
3271 (SyntaxKind::Literal, 3usize) => {
3272 state.add_element_checked(
3273 element
3274 .pop_push(Rule {
3275 kind: self.kind,
3276 state: 0usize,
3277 })
3278 .push(Rule {
3279 kind: SyntaxKind::NumericLiteral,
3280 state: 1usize,
3281 }),
3282 SyntaxKind::NumericLiteral,
3283 );
3284 }
3285 (SyntaxKind::Literal, 4usize) => {
3286 state.add_element_checked(
3287 element
3288 .pop_push(Rule {
3289 kind: self.kind,
3290 state: 0usize,
3291 })
3292 .push(Rule {
3293 kind: SyntaxKind::BooleanLiteral,
3294 state: 1usize,
3295 }),
3296 SyntaxKind::BooleanLiteral,
3297 );
3298 }
3299 (SyntaxKind::BlankNodePropertyList2, 0usize) => {
3300 if let Some(parent) = element.pop() {
3301 state.add_element(parent);
3302 }
3303 }
3304 (SyntaxKind::BlankNodePropertyList2, 1usize) => {
3305 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqClose);
3306 state.add_element(matched.pop_push(Rule {
3307 kind: self.kind,
3308 state: 0usize,
3309 }));
3310 if let Some(fb) = fb {
3311 state.add_element(fb.pop_push(Rule {
3312 kind: self.kind,
3313 state: 0usize,
3314 }));
3315 }
3316 }
3317 (SyntaxKind::BlankNodePropertyList2, 2usize) => {
3318 state.add_element(element.pop_push(Rule {
3319 kind: self.kind,
3320 state: 1usize,
3321 }));
3322 state.add_element(element.pop_push(Rule {
3323 kind: self.kind,
3324 state: 3usize,
3325 }));
3326 }
3327 (SyntaxKind::BlankNodePropertyList2, 3usize) => {
3328 state.add_element_checked(
3329 element
3330 .pop_push(Rule {
3331 kind: self.kind,
3332 state: 1usize,
3333 })
3334 .push(Rule {
3335 kind: SyntaxKind::PredicateObjectList,
3336 state: 7usize,
3337 }),
3338 SyntaxKind::PredicateObjectList,
3339 );
3340 }
3341 (SyntaxKind::BlankNodePropertyList2, 4usize) => {
3342 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqOpen);
3343 state.add_element(matched.pop_push(Rule {
3344 kind: self.kind,
3345 state: 2usize,
3346 }));
3347 if let Some(fb) = fb {
3348 state.add_element(fb.pop_push(Rule {
3349 kind: self.kind,
3350 state: 2usize,
3351 }));
3352 }
3353 }
3354 (SyntaxKind::BlankNodePropertyList, 0usize) => {
3355 if let Some(parent) = element.pop() {
3356 state.add_element(parent);
3357 }
3358 }
3359 (SyntaxKind::BlankNodePropertyList, 1usize) => {
3360 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqClose);
3361 state.add_element(matched.pop_push(Rule {
3362 kind: self.kind,
3363 state: 0usize,
3364 }));
3365 if let Some(fb) = fb {
3366 state.add_element(fb.pop_push(Rule {
3367 kind: self.kind,
3368 state: 0usize,
3369 }));
3370 }
3371 }
3372 (SyntaxKind::BlankNodePropertyList, 2usize) => {
3373 state.add_element_checked(
3374 element
3375 .pop_push(Rule {
3376 kind: self.kind,
3377 state: 1usize,
3378 })
3379 .push(Rule {
3380 kind: SyntaxKind::PredicateObjectList,
3381 state: 7usize,
3382 }),
3383 SyntaxKind::PredicateObjectList,
3384 );
3385 }
3386 (SyntaxKind::BlankNodePropertyList, 3usize) => {
3387 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqOpen);
3388 state.add_element(matched.pop_push(Rule {
3389 kind: self.kind,
3390 state: 2usize,
3391 }));
3392 if let Some(fb) = fb {
3393 state.add_element(fb.pop_push(Rule {
3394 kind: self.kind,
3395 state: 2usize,
3396 }));
3397 }
3398 }
3399 (SyntaxKind::Collection, 0usize) => {
3400 if let Some(parent) = element.pop() {
3401 state.add_element(parent);
3402 }
3403 }
3404 (SyntaxKind::Collection, 1usize) => {
3405 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::ClClose);
3406 state.add_element(matched.pop_push(Rule {
3407 kind: self.kind,
3408 state: 0usize,
3409 }));
3410 if let Some(fb) = fb {
3411 state.add_element(fb.pop_push(Rule {
3412 kind: self.kind,
3413 state: 0usize,
3414 }));
3415 }
3416 }
3417 (SyntaxKind::Collection, 2usize) => {
3418 state.add_element(element.pop_push(Rule {
3419 kind: self.kind,
3420 state: 3usize,
3421 }));
3422 state.add_element(element.pop_push(Rule {
3423 kind: self.kind,
3424 state: 1usize,
3425 }));
3426 }
3427 (SyntaxKind::Collection, 3usize) => {
3428 state.add_element_checked(
3429 element
3430 .pop_push(Rule {
3431 kind: self.kind,
3432 state: 2usize,
3433 })
3434 .push(Rule {
3435 kind: SyntaxKind::Object,
3436 state: 1usize,
3437 }),
3438 SyntaxKind::Object,
3439 );
3440 }
3441 (SyntaxKind::Collection, 4usize) => {
3442 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::ClOpen);
3443 state.add_element(matched.pop_push(Rule {
3444 kind: self.kind,
3445 state: 2usize,
3446 }));
3447 if let Some(fb) = fb {
3448 state.add_element(fb.pop_push(Rule {
3449 kind: self.kind,
3450 state: 2usize,
3451 }));
3452 }
3453 }
3454 (SyntaxKind::NumericLiteral, 0usize) => {
3455 if let Some(parent) = element.pop() {
3456 state.add_element(parent);
3457 }
3458 }
3459 (SyntaxKind::NumericLiteral, 1usize) => {
3460 state.add_element_checked(
3461 element.pop_push(Rule {
3462 kind: self.kind,
3463 state: 2usize,
3464 }),
3465 SyntaxKind::Integer,
3466 );
3467 state.add_element_checked(
3468 element.pop_push(Rule {
3469 kind: self.kind,
3470 state: 3usize,
3471 }),
3472 SyntaxKind::Decimal,
3473 );
3474 state.add_element_checked(
3475 element.pop_push(Rule {
3476 kind: self.kind,
3477 state: 4usize,
3478 }),
3479 SyntaxKind::Double,
3480 );
3481 }
3482 (SyntaxKind::NumericLiteral, 2usize) => {
3483 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Integer);
3484 state.add_element(matched.pop_push(Rule {
3485 kind: self.kind,
3486 state: 0usize,
3487 }));
3488 if let Some(fb) = fb {
3489 state.add_element(fb.pop_push(Rule {
3490 kind: self.kind,
3491 state: 0usize,
3492 }));
3493 }
3494 }
3495 (SyntaxKind::NumericLiteral, 3usize) => {
3496 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Decimal);
3497 state.add_element(matched.pop_push(Rule {
3498 kind: self.kind,
3499 state: 0usize,
3500 }));
3501 if let Some(fb) = fb {
3502 state.add_element(fb.pop_push(Rule {
3503 kind: self.kind,
3504 state: 0usize,
3505 }));
3506 }
3507 }
3508 (SyntaxKind::NumericLiteral, 4usize) => {
3509 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Double);
3510 state.add_element(matched.pop_push(Rule {
3511 kind: self.kind,
3512 state: 0usize,
3513 }));
3514 if let Some(fb) = fb {
3515 state.add_element(fb.pop_push(Rule {
3516 kind: self.kind,
3517 state: 0usize,
3518 }));
3519 }
3520 }
3521 (SyntaxKind::Rdfliteral, 0usize) => {
3522 if let Some(parent) = element.pop() {
3523 state.add_element(parent);
3524 }
3525 }
3526 (SyntaxKind::Rdfliteral, 1usize) => {
3527 state.add_element(element.pop_push(Rule {
3528 kind: self.kind,
3529 state: 0usize,
3530 }));
3531 state.add_element(element.pop_push(Rule {
3532 kind: self.kind,
3533 state: 2usize,
3534 }));
3535 }
3536 (SyntaxKind::Rdfliteral, 2usize) => {
3537 state.add_element_checked(
3538 element.pop_push(Rule {
3539 kind: self.kind,
3540 state: 3usize,
3541 }),
3542 SyntaxKind::Langtag,
3543 );
3544 state.add_element(element.pop_push(Rule {
3545 kind: self.kind,
3546 state: 5usize,
3547 }));
3548 }
3549 (SyntaxKind::Rdfliteral, 3usize) => {
3550 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Langtag);
3551 state.add_element(matched.pop_push(Rule {
3552 kind: self.kind,
3553 state: 0usize,
3554 }));
3555 if let Some(fb) = fb {
3556 state.add_element(fb.pop_push(Rule {
3557 kind: self.kind,
3558 state: 0usize,
3559 }));
3560 }
3561 }
3562 (SyntaxKind::Rdfliteral, 4usize) => {
3563 state.add_element_checked(
3564 element
3565 .pop_push(Rule {
3566 kind: self.kind,
3567 state: 0usize,
3568 })
3569 .push(Rule {
3570 kind: SyntaxKind::Iri,
3571 state: 1usize,
3572 }),
3573 SyntaxKind::Iri,
3574 );
3575 }
3576 (SyntaxKind::Rdfliteral, 5usize) => {
3577 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Datatype);
3578 state.add_element(matched.pop_push(Rule {
3579 kind: self.kind,
3580 state: 4usize,
3581 }));
3582 if let Some(fb) = fb {
3583 state.add_element(fb.pop_push(Rule {
3584 kind: self.kind,
3585 state: 4usize,
3586 }));
3587 }
3588 }
3589 (SyntaxKind::Rdfliteral, 6usize) => {
3590 state.add_element_checked(
3591 element
3592 .pop_push(Rule {
3593 kind: self.kind,
3594 state: 1usize,
3595 })
3596 .push(Rule {
3597 kind: SyntaxKind::MyString,
3598 state: 1usize,
3599 }),
3600 SyntaxKind::MyString,
3601 );
3602 }
3603 (SyntaxKind::BooleanLiteral, 0usize) => {
3604 if let Some(parent) = element.pop() {
3605 state.add_element(parent);
3606 }
3607 }
3608 (SyntaxKind::BooleanLiteral, 1usize) => {
3609 state.add_element_checked(
3610 element.pop_push(Rule {
3611 kind: self.kind,
3612 state: 2usize,
3613 }),
3614 SyntaxKind::TrueLit,
3615 );
3616 state.add_element_checked(
3617 element.pop_push(Rule {
3618 kind: self.kind,
3619 state: 3usize,
3620 }),
3621 SyntaxKind::FalseLit,
3622 );
3623 }
3624 (SyntaxKind::BooleanLiteral, 2usize) => {
3625 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::TrueLit);
3626 state.add_element(matched.pop_push(Rule {
3627 kind: self.kind,
3628 state: 0usize,
3629 }));
3630 if let Some(fb) = fb {
3631 state.add_element(fb.pop_push(Rule {
3632 kind: self.kind,
3633 state: 0usize,
3634 }));
3635 }
3636 }
3637 (SyntaxKind::BooleanLiteral, 3usize) => {
3638 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::FalseLit);
3639 state.add_element(matched.pop_push(Rule {
3640 kind: self.kind,
3641 state: 0usize,
3642 }));
3643 if let Some(fb) = fb {
3644 state.add_element(fb.pop_push(Rule {
3645 kind: self.kind,
3646 state: 0usize,
3647 }));
3648 }
3649 }
3650 (SyntaxKind::MyString, 0usize) => {
3651 if let Some(parent) = element.pop() {
3652 state.add_element(parent);
3653 }
3654 }
3655 (SyntaxKind::MyString, 1usize) => {
3656 state.add_element_checked(
3657 element.pop_push(Rule {
3658 kind: self.kind,
3659 state: 2usize,
3660 }),
3661 SyntaxKind::StringLiteralQuote,
3662 );
3663 state.add_element_checked(
3664 element.pop_push(Rule {
3665 kind: self.kind,
3666 state: 3usize,
3667 }),
3668 SyntaxKind::StringLiteralSingleQuote,
3669 );
3670 state.add_element_checked(
3671 element.pop_push(Rule {
3672 kind: self.kind,
3673 state: 4usize,
3674 }),
3675 SyntaxKind::StringLiteralLongSingleQuote,
3676 );
3677 state.add_element_checked(
3678 element.pop_push(Rule {
3679 kind: self.kind,
3680 state: 5usize,
3681 }),
3682 SyntaxKind::StringLiteralLongQuote,
3683 );
3684 }
3685 (SyntaxKind::MyString, 2usize) => {
3686 let (matched, fb) =
3687 state.expect_as_inline(element, SyntaxKind::StringLiteralQuote);
3688 state.add_element(matched.pop_push(Rule {
3689 kind: self.kind,
3690 state: 0usize,
3691 }));
3692 if let Some(fb) = fb {
3693 state.add_element(fb.pop_push(Rule {
3694 kind: self.kind,
3695 state: 0usize,
3696 }));
3697 }
3698 }
3699 (SyntaxKind::MyString, 3usize) => {
3700 let (matched, fb) =
3701 state.expect_as_inline(element, SyntaxKind::StringLiteralSingleQuote);
3702 state.add_element(matched.pop_push(Rule {
3703 kind: self.kind,
3704 state: 0usize,
3705 }));
3706 if let Some(fb) = fb {
3707 state.add_element(fb.pop_push(Rule {
3708 kind: self.kind,
3709 state: 0usize,
3710 }));
3711 }
3712 }
3713 (SyntaxKind::MyString, 4usize) => {
3714 let (matched, fb) =
3715 state.expect_as_inline(element, SyntaxKind::StringLiteralLongSingleQuote);
3716 state.add_element(matched.pop_push(Rule {
3717 kind: self.kind,
3718 state: 0usize,
3719 }));
3720 if let Some(fb) = fb {
3721 state.add_element(fb.pop_push(Rule {
3722 kind: self.kind,
3723 state: 0usize,
3724 }));
3725 }
3726 }
3727 (SyntaxKind::MyString, 5usize) => {
3728 let (matched, fb) =
3729 state.expect_as_inline(element, SyntaxKind::StringLiteralLongQuote);
3730 state.add_element(matched.pop_push(Rule {
3731 kind: self.kind,
3732 state: 0usize,
3733 }));
3734 if let Some(fb) = fb {
3735 state.add_element(fb.pop_push(Rule {
3736 kind: self.kind,
3737 state: 0usize,
3738 }));
3739 }
3740 }
3741 (SyntaxKind::Iri, 0usize) => {
3742 if let Some(parent) = element.pop() {
3743 state.add_element(parent);
3744 }
3745 }
3746 (SyntaxKind::Iri, 1usize) => {
3747 state.add_element_checked(
3748 element.pop_push(Rule {
3749 kind: self.kind,
3750 state: 2usize,
3751 }),
3752 SyntaxKind::Iriref,
3753 );
3754 state.add_element(element.pop_push(Rule {
3755 kind: self.kind,
3756 state: 3usize,
3757 }));
3758 }
3759 (SyntaxKind::Iri, 2usize) => {
3760 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::Iriref);
3761 state.add_element(matched.pop_push(Rule {
3762 kind: self.kind,
3763 state: 0usize,
3764 }));
3765 if let Some(fb) = fb {
3766 state.add_element(fb.pop_push(Rule {
3767 kind: self.kind,
3768 state: 0usize,
3769 }));
3770 }
3771 }
3772 (SyntaxKind::Iri, 3usize) => {
3773 state.add_element_checked(
3774 element
3775 .pop_push(Rule {
3776 kind: self.kind,
3777 state: 0usize,
3778 })
3779 .push(Rule {
3780 kind: SyntaxKind::PrefixedName,
3781 state: 1usize,
3782 }),
3783 SyntaxKind::PrefixedName,
3784 );
3785 }
3786 (SyntaxKind::PrefixedName, 0usize) => {
3787 if let Some(parent) = element.pop() {
3788 state.add_element(parent);
3789 }
3790 }
3791 (SyntaxKind::PrefixedName, 1usize) => {
3792 state.add_element_checked(
3793 element.pop_push(Rule {
3794 kind: self.kind,
3795 state: 2usize,
3796 }),
3797 SyntaxKind::PnameLn,
3798 );
3799 state.add_element_checked(
3800 element.pop_push(Rule {
3801 kind: self.kind,
3802 state: 3usize,
3803 }),
3804 SyntaxKind::PnameNs,
3805 );
3806 }
3807 (SyntaxKind::PrefixedName, 2usize) => {
3808 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::PnameLn);
3809 state.add_element(matched.pop_push(Rule {
3810 kind: self.kind,
3811 state: 0usize,
3812 }));
3813 if let Some(fb) = fb {
3814 state.add_element(fb.pop_push(Rule {
3815 kind: self.kind,
3816 state: 0usize,
3817 }));
3818 }
3819 }
3820 (SyntaxKind::PrefixedName, 3usize) => {
3821 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::PnameNs);
3822 state.add_element(matched.pop_push(Rule {
3823 kind: self.kind,
3824 state: 0usize,
3825 }));
3826 if let Some(fb) = fb {
3827 state.add_element(fb.pop_push(Rule {
3828 kind: self.kind,
3829 state: 0usize,
3830 }));
3831 }
3832 }
3833 (SyntaxKind::BlankNode, 0usize) => {
3834 if let Some(parent) = element.pop() {
3835 state.add_element(parent);
3836 }
3837 }
3838 (SyntaxKind::BlankNode, 1usize) => {
3839 state.add_element_checked(
3840 element.pop_push(Rule {
3841 kind: self.kind,
3842 state: 2usize,
3843 }),
3844 SyntaxKind::BlankNodeLabel,
3845 );
3846 state.add_element(element.pop_push(Rule {
3847 kind: self.kind,
3848 state: 4usize,
3849 }));
3850 }
3851 (SyntaxKind::BlankNode, 2usize) => {
3852 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::BlankNodeLabel);
3853 state.add_element(matched.pop_push(Rule {
3854 kind: self.kind,
3855 state: 0usize,
3856 }));
3857 if let Some(fb) = fb {
3858 state.add_element(fb.pop_push(Rule {
3859 kind: self.kind,
3860 state: 0usize,
3861 }));
3862 }
3863 }
3864 (SyntaxKind::BlankNode, 3usize) => {
3865 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqClose);
3866 state.add_element(matched.pop_push(Rule {
3867 kind: self.kind,
3868 state: 0usize,
3869 }));
3870 if let Some(fb) = fb {
3871 state.add_element(fb.pop_push(Rule {
3872 kind: self.kind,
3873 state: 0usize,
3874 }));
3875 }
3876 }
3877 (SyntaxKind::BlankNode, 4usize) => {
3878 let (matched, fb) = state.expect_as_inline(element, SyntaxKind::SqOpen);
3879 state.add_element(matched.pop_push(Rule {
3880 kind: self.kind,
3881 state: 3usize,
3882 }));
3883 if let Some(fb) = fb {
3884 state.add_element(fb.pop_push(Rule {
3885 kind: self.kind,
3886 state: 3usize,
3887 }));
3888 }
3889 }
3890 (SyntaxKind::ClOpen, _) => {
3891 let added = state.expect_as(element, SyntaxKind::ClOpen);
3892 if let Some(parent) = added.pop() {
3893 state.add_element(parent);
3894 }
3895 }
3896 (SyntaxKind::ClClose, _) => {
3897 let added = state.expect_as(element, SyntaxKind::ClClose);
3898 if let Some(parent) = added.pop() {
3899 state.add_element(parent);
3900 }
3901 }
3902 (SyntaxKind::Comma, _) => {
3903 let added = state.expect_as(element, SyntaxKind::Comma);
3904 if let Some(parent) = added.pop() {
3905 state.add_element(parent);
3906 }
3907 }
3908 (SyntaxKind::Stop, _) => {
3909 let added = state.expect_as(element, SyntaxKind::Stop);
3910 if let Some(parent) = added.pop() {
3911 state.add_element(parent);
3912 }
3913 }
3914 (SyntaxKind::Colon, _) => {
3915 let added = state.expect_as(element, SyntaxKind::Colon);
3916 if let Some(parent) = added.pop() {
3917 state.add_element(parent);
3918 }
3919 }
3920 (SyntaxKind::BaseToken, _) => {
3921 let added = state.expect_as(element, SyntaxKind::BaseToken);
3922 if let Some(parent) = added.pop() {
3923 state.add_element(parent);
3924 }
3925 }
3926 (SyntaxKind::PrefixToken, _) => {
3927 let added = state.expect_as(element, SyntaxKind::PrefixToken);
3928 if let Some(parent) = added.pop() {
3929 state.add_element(parent);
3930 }
3931 }
3932 (SyntaxKind::SparqlBaseToken, _) => {
3933 let added = state.expect_as(element, SyntaxKind::SparqlBaseToken);
3934 if let Some(parent) = added.pop() {
3935 state.add_element(parent);
3936 }
3937 }
3938 (SyntaxKind::GraphToken, _) => {
3939 let added = state.expect_as(element, SyntaxKind::GraphToken);
3940 if let Some(parent) = added.pop() {
3941 state.add_element(parent);
3942 }
3943 }
3944 (SyntaxKind::SparqlPrefixToken, _) => {
3945 let added = state.expect_as(element, SyntaxKind::SparqlPrefixToken);
3946 if let Some(parent) = added.pop() {
3947 state.add_element(parent);
3948 }
3949 }
3950 (SyntaxKind::SqOpen, _) => {
3951 let added = state.expect_as(element, SyntaxKind::SqOpen);
3952 if let Some(parent) = added.pop() {
3953 state.add_element(parent);
3954 }
3955 }
3956 (SyntaxKind::SqClose, _) => {
3957 let added = state.expect_as(element, SyntaxKind::SqClose);
3958 if let Some(parent) = added.pop() {
3959 state.add_element(parent);
3960 }
3961 }
3962 (SyntaxKind::Datatype, _) => {
3963 let added = state.expect_as(element, SyntaxKind::Datatype);
3964 if let Some(parent) = added.pop() {
3965 state.add_element(parent);
3966 }
3967 }
3968 (SyntaxKind::Alit, _) => {
3969 let added = state.expect_as(element, SyntaxKind::Alit);
3970 if let Some(parent) = added.pop() {
3971 state.add_element(parent);
3972 }
3973 }
3974 (SyntaxKind::FalseLit, _) => {
3975 let added = state.expect_as(element, SyntaxKind::FalseLit);
3976 if let Some(parent) = added.pop() {
3977 state.add_element(parent);
3978 }
3979 }
3980 (SyntaxKind::TrueLit, _) => {
3981 let added = state.expect_as(element, SyntaxKind::TrueLit);
3982 if let Some(parent) = added.pop() {
3983 state.add_element(parent);
3984 }
3985 }
3986 (SyntaxKind::CurlyOpen, _) => {
3987 let added = state.expect_as(element, SyntaxKind::CurlyOpen);
3988 if let Some(parent) = added.pop() {
3989 state.add_element(parent);
3990 }
3991 }
3992 (SyntaxKind::CurlyClose, _) => {
3993 let added = state.expect_as(element, SyntaxKind::CurlyClose);
3994 if let Some(parent) = added.pop() {
3995 state.add_element(parent);
3996 }
3997 }
3998 (SyntaxKind::BlankNodeLabel, _) => {
3999 let added = state.expect_as(element, SyntaxKind::BlankNodeLabel);
4000 if let Some(parent) = added.pop() {
4001 state.add_element(parent);
4002 }
4003 }
4004 (SyntaxKind::Decimal, _) => {
4005 let added = state.expect_as(element, SyntaxKind::Decimal);
4006 if let Some(parent) = added.pop() {
4007 state.add_element(parent);
4008 }
4009 }
4010 (SyntaxKind::Double, _) => {
4011 let added = state.expect_as(element, SyntaxKind::Double);
4012 if let Some(parent) = added.pop() {
4013 state.add_element(parent);
4014 }
4015 }
4016 (SyntaxKind::Integer, _) => {
4017 let added = state.expect_as(element, SyntaxKind::Integer);
4018 if let Some(parent) = added.pop() {
4019 state.add_element(parent);
4020 }
4021 }
4022 (SyntaxKind::Iriref, _) => {
4023 let added = state.expect_as(element, SyntaxKind::Iriref);
4024 if let Some(parent) = added.pop() {
4025 state.add_element(parent);
4026 }
4027 }
4028 (SyntaxKind::Langtag, _) => {
4029 let added = state.expect_as(element, SyntaxKind::Langtag);
4030 if let Some(parent) = added.pop() {
4031 state.add_element(parent);
4032 }
4033 }
4034 (SyntaxKind::PnameLn, _) => {
4035 let added = state.expect_as(element, SyntaxKind::PnameLn);
4036 if let Some(parent) = added.pop() {
4037 state.add_element(parent);
4038 }
4039 }
4040 (SyntaxKind::PnameNs, _) => {
4041 let added = state.expect_as(element, SyntaxKind::PnameNs);
4042 if let Some(parent) = added.pop() {
4043 state.add_element(parent);
4044 }
4045 }
4046 (SyntaxKind::StringLiteralLongQuote, _) => {
4047 let added = state.expect_as(element, SyntaxKind::StringLiteralLongQuote);
4048 if let Some(parent) = added.pop() {
4049 state.add_element(parent);
4050 }
4051 }
4052 (SyntaxKind::StringLiteralLongSingleQuote, _) => {
4053 let added = state.expect_as(element, SyntaxKind::StringLiteralLongSingleQuote);
4054 if let Some(parent) = added.pop() {
4055 state.add_element(parent);
4056 }
4057 }
4058 (SyntaxKind::StringLiteralQuote, _) => {
4059 let added = state.expect_as(element, SyntaxKind::StringLiteralQuote);
4060 if let Some(parent) = added.pop() {
4061 state.add_element(parent);
4062 }
4063 }
4064 (SyntaxKind::StringLiteralSingleQuote, _) => {
4065 let added = state.expect_as(element, SyntaxKind::StringLiteralSingleQuote);
4066 if let Some(parent) = added.pop() {
4067 state.add_element(parent);
4068 }
4069 }
4070 _ => panic!("Aaaah unexpected state {:?}", self),
4071 }
4072 }
4073 fn at(&self) -> usize {
4074 self.state
4075 }
4076 fn element_kind(&self) -> SyntaxKind {
4077 self.kind
4078 }
4079 fn state_dist(&self, terminal: &SyntaxKind) -> isize {
4080 state_dist(self.kind, self.state, *terminal)
4081 }
4082 }
4083}
4084pub use definitions::*;
4085impl TokenTrait for SyntaxKind {
4086 const ERROR: Self = SyntaxKind::Error;
4087 const ROOT: Self = SyntaxKind::ROOT;
4088 fn branch(&self) -> u32 {
4089 *self as u32
4090 }
4091 fn skips(&self) -> bool {
4092 match self {
4093 SyntaxKind::WhiteSpace => true,
4094 SyntaxKind::Error => true,
4095 SyntaxKind::Comment => true,
4096 _ => false,
4097 }
4098 }
4099 fn starting_tokens(&self) -> &'static [SyntaxKind] {
4100 &[]
4101 }
4102 fn min_error_for_token(&self, tok: &SyntaxKind) -> isize {
4103 min_error_for_token(*self, *tok)
4104 }
4105 fn ending_tokens(&self) -> &'static [SyntaxKind] {
4106 &[]
4107 }
4108 fn max_error_value(&self) -> isize {
4109 match self {
4110 SyntaxKind::ClOpen => 2isize,
4111 SyntaxKind::ClClose => 2isize,
4112 SyntaxKind::Stop => 3isize,
4113 SyntaxKind::BaseToken => 100isize,
4114 SyntaxKind::PrefixToken => 100isize,
4115 SyntaxKind::SparqlBaseToken => 100isize,
4116 SyntaxKind::GraphToken => 3isize,
4117 SyntaxKind::SparqlPrefixToken => 100isize,
4118 SyntaxKind::SqOpen => 2isize,
4119 SyntaxKind::SqClose => 2isize,
4120 SyntaxKind::CurlyOpen => 2isize,
4121 SyntaxKind::CurlyClose => 2isize,
4122 _ => 1isize,
4123 }
4124 }
4125 fn bracket_delta(&self) -> i8 {
4126 match self {
4127 SyntaxKind::SqOpen => 1,
4128 SyntaxKind::ClOpen => 1,
4129 SyntaxKind::CurlyOpen => 1,
4130 SyntaxKind::SqClose => -1,
4131 SyntaxKind::ClClose => -1,
4132 SyntaxKind::CurlyClose => -1,
4133 _ => 0,
4134 }
4135 }
4136 fn min_completion_cost(&self) -> isize {
4137 match self {
4138 SyntaxKind::Base => 104isize,
4139 SyntaxKind::BlankNodePropertyList => 6isize,
4140 SyntaxKind::BlankNodePropertyList2 => 4isize,
4141 SyntaxKind::Block => 4isize,
4142 SyntaxKind::Collection => 4isize,
4143 SyntaxKind::Directive => 101isize,
4144 SyntaxKind::GraphBlock => 4isize,
4145 SyntaxKind::PredicateObjectList => 2isize,
4146 SyntaxKind::PrefixId => 105isize,
4147 SyntaxKind::SparqlBase => 101isize,
4148 SyntaxKind::SparqlPrefix => 102isize,
4149 SyntaxKind::Triples => 3isize,
4150 SyntaxKind::TriplesBlock => 3isize,
4151 SyntaxKind::WrappedGraph => 4isize,
4152 _ => Self::max_error_value(self),
4153 }
4154 }
4155 fn deletion_cost(&self) -> isize {
4156 match self {
4157 _ => Self::max_error_value(self) * 5,
4158 }
4159 }
4160}
4161pub mod format {
4162 use super::{SyntaxKind, SyntaxNode};
4163 use crate::format::Doc;
4164 use crate::TokenTrait;
4165 use rowan::NodeOrToken;
4166 #[derive(Default)]
4167 struct Hints {
4168 space: bool,
4169 line: bool,
4170 hardline: bool,
4171 blankline: bool,
4172 indent: bool,
4173 dedent: bool,
4174 }
4175 impl Hints {
4176 fn to_docs(&self) -> Vec<Doc> {
4177 let mut v = Vec::new();
4178 if self.indent {
4179 v.push(Doc::nil());
4180 }
4181 if self.dedent {
4182 v.push(Doc::nil());
4183 }
4184 if self.blankline {
4185 v.push(Doc::HardLine);
4186 v.push(Doc::HardLine);
4187 } else if self.hardline {
4188 v.push(Doc::HardLine);
4189 } else if self.line {
4190 v.push(Doc::Line);
4191 } else if self.space {
4192 v.push(Doc::text(" "));
4193 }
4194 v
4195 }
4196 }
4197 fn format_hints(parent: SyntaxKind, token: SyntaxKind) -> (Hints, Hints) {
4198 match (parent, token) {
4199 (SyntaxKind::Triples, SyntaxKind::PredicateObjectList) => (
4200 Hints {
4201 space: true,
4202 line: false,
4203 hardline: false,
4204 blankline: false,
4205 indent: false,
4206 dedent: false,
4207 },
4208 Hints {
4209 space: false,
4210 line: false,
4211 hardline: false,
4212 blankline: false,
4213 indent: false,
4214 dedent: false,
4215 },
4216 ),
4217 (SyntaxKind::BlankNodePropertyList, SyntaxKind::SqOpen) => (
4218 Hints {
4219 space: false,
4220 line: false,
4221 hardline: false,
4222 blankline: false,
4223 indent: false,
4224 dedent: false,
4225 },
4226 Hints {
4227 space: false,
4228 line: true,
4229 hardline: false,
4230 blankline: false,
4231 indent: true,
4232 dedent: false,
4233 },
4234 ),
4235 (SyntaxKind::BlankNodePropertyList, SyntaxKind::SqClose) => (
4236 Hints {
4237 space: false,
4238 line: true,
4239 hardline: false,
4240 blankline: false,
4241 indent: false,
4242 dedent: true,
4243 },
4244 Hints {
4245 space: false,
4246 line: false,
4247 hardline: false,
4248 blankline: false,
4249 indent: false,
4250 dedent: false,
4251 },
4252 ),
4253 (SyntaxKind::BlankNodePropertyList2, SyntaxKind::SqOpen) => (
4254 Hints {
4255 space: false,
4256 line: false,
4257 hardline: false,
4258 blankline: false,
4259 indent: false,
4260 dedent: false,
4261 },
4262 Hints {
4263 space: false,
4264 line: true,
4265 hardline: false,
4266 blankline: false,
4267 indent: true,
4268 dedent: false,
4269 },
4270 ),
4271 (SyntaxKind::BlankNodePropertyList2, SyntaxKind::SqClose) => (
4272 Hints {
4273 space: false,
4274 line: true,
4275 hardline: false,
4276 blankline: false,
4277 indent: false,
4278 dedent: true,
4279 },
4280 Hints {
4281 space: false,
4282 line: false,
4283 hardline: false,
4284 blankline: false,
4285 indent: false,
4286 dedent: false,
4287 },
4288 ),
4289 (SyntaxKind::BlankNode, SyntaxKind::SqOpen) => (
4290 Hints {
4291 space: false,
4292 line: false,
4293 hardline: false,
4294 blankline: false,
4295 indent: false,
4296 dedent: false,
4297 },
4298 Hints {
4299 space: true,
4300 line: false,
4301 hardline: false,
4302 blankline: false,
4303 indent: false,
4304 dedent: false,
4305 },
4306 ),
4307 (SyntaxKind::PrefixId, SyntaxKind::PnameNs) => (
4308 Hints {
4309 space: false,
4310 line: false,
4311 hardline: false,
4312 blankline: false,
4313 indent: false,
4314 dedent: false,
4315 },
4316 Hints {
4317 space: true,
4318 line: false,
4319 hardline: false,
4320 blankline: false,
4321 indent: false,
4322 dedent: false,
4323 },
4324 ),
4325 (_, SyntaxKind::Subject) => (
4326 Hints {
4327 space: false,
4328 line: false,
4329 hardline: false,
4330 blankline: false,
4331 indent: false,
4332 dedent: false,
4333 },
4334 Hints {
4335 space: false,
4336 line: false,
4337 hardline: false,
4338 blankline: false,
4339 indent: true,
4340 dedent: false,
4341 },
4342 ),
4343 (_, SyntaxKind::Colon) => (
4344 Hints {
4345 space: false,
4346 line: false,
4347 hardline: false,
4348 blankline: false,
4349 indent: false,
4350 dedent: false,
4351 },
4352 Hints {
4353 space: false,
4354 line: true,
4355 hardline: false,
4356 blankline: false,
4357 indent: false,
4358 dedent: false,
4359 },
4360 ),
4361 (_, SyntaxKind::Stop) => (
4362 Hints {
4363 space: false,
4364 line: false,
4365 hardline: false,
4366 blankline: false,
4367 indent: false,
4368 dedent: false,
4369 },
4370 Hints {
4371 space: false,
4372 line: false,
4373 hardline: true,
4374 blankline: false,
4375 indent: false,
4376 dedent: false,
4377 },
4378 ),
4379 (_, SyntaxKind::Block) => (
4380 Hints {
4381 space: false,
4382 line: false,
4383 hardline: true,
4384 blankline: false,
4385 indent: false,
4386 dedent: false,
4387 },
4388 Hints {
4389 space: false,
4390 line: false,
4391 hardline: false,
4392 blankline: false,
4393 indent: false,
4394 dedent: false,
4395 },
4396 ),
4397 (_, SyntaxKind::Object) => (
4398 Hints {
4399 space: false,
4400 line: true,
4401 hardline: false,
4402 blankline: false,
4403 indent: false,
4404 dedent: false,
4405 },
4406 Hints {
4407 space: false,
4408 line: false,
4409 hardline: false,
4410 blankline: false,
4411 indent: false,
4412 dedent: false,
4413 },
4414 ),
4415 (_, SyntaxKind::ClOpen) => (
4416 Hints {
4417 space: false,
4418 line: false,
4419 hardline: false,
4420 blankline: false,
4421 indent: false,
4422 dedent: false,
4423 },
4424 Hints {
4425 space: false,
4426 line: true,
4427 hardline: false,
4428 blankline: false,
4429 indent: true,
4430 dedent: false,
4431 },
4432 ),
4433 (_, SyntaxKind::ClClose) => (
4434 Hints {
4435 space: false,
4436 line: true,
4437 hardline: false,
4438 blankline: false,
4439 indent: false,
4440 dedent: true,
4441 },
4442 Hints {
4443 space: false,
4444 line: false,
4445 hardline: false,
4446 blankline: false,
4447 indent: false,
4448 dedent: false,
4449 },
4450 ),
4451 (_, SyntaxKind::TriplesBlock) => (
4452 Hints {
4453 space: false,
4454 line: true,
4455 hardline: false,
4456 blankline: false,
4457 indent: false,
4458 dedent: false,
4459 },
4460 Hints {
4461 space: false,
4462 line: true,
4463 hardline: false,
4464 blankline: false,
4465 indent: false,
4466 dedent: false,
4467 },
4468 ),
4469 (_, SyntaxKind::WrappedGraph) => (
4470 Hints {
4471 space: true,
4472 line: false,
4473 hardline: false,
4474 blankline: false,
4475 indent: false,
4476 dedent: false,
4477 },
4478 Hints {
4479 space: false,
4480 line: false,
4481 hardline: false,
4482 blankline: false,
4483 indent: false,
4484 dedent: false,
4485 },
4486 ),
4487 (_, SyntaxKind::CurlyOpen) => (
4488 Hints {
4489 space: false,
4490 line: false,
4491 hardline: false,
4492 blankline: false,
4493 indent: false,
4494 dedent: false,
4495 },
4496 Hints {
4497 space: false,
4498 line: false,
4499 hardline: false,
4500 blankline: false,
4501 indent: true,
4502 dedent: false,
4503 },
4504 ),
4505 (_, SyntaxKind::CurlyClose) => (
4506 Hints {
4507 space: false,
4508 line: false,
4509 hardline: false,
4510 blankline: false,
4511 indent: false,
4512 dedent: true,
4513 },
4514 Hints {
4515 space: false,
4516 line: false,
4517 hardline: true,
4518 blankline: false,
4519 indent: false,
4520 dedent: false,
4521 },
4522 ),
4523 (_, SyntaxKind::GraphToken) => (
4524 Hints {
4525 space: false,
4526 line: false,
4527 hardline: false,
4528 blankline: false,
4529 indent: false,
4530 dedent: false,
4531 },
4532 Hints {
4533 space: true,
4534 line: false,
4535 hardline: false,
4536 blankline: false,
4537 indent: false,
4538 dedent: false,
4539 },
4540 ),
4541 (_, SyntaxKind::PrefixToken) => (
4542 Hints {
4543 space: false,
4544 line: false,
4545 hardline: false,
4546 blankline: false,
4547 indent: false,
4548 dedent: false,
4549 },
4550 Hints {
4551 space: true,
4552 line: false,
4553 hardline: false,
4554 blankline: false,
4555 indent: false,
4556 dedent: false,
4557 },
4558 ),
4559 (_, SyntaxKind::SparqlPrefixToken) => (
4560 Hints {
4561 space: false,
4562 line: false,
4563 hardline: false,
4564 blankline: false,
4565 indent: false,
4566 dedent: false,
4567 },
4568 Hints {
4569 space: true,
4570 line: false,
4571 hardline: false,
4572 blankline: false,
4573 indent: false,
4574 dedent: false,
4575 },
4576 ),
4577 (_, SyntaxKind::BaseToken) => (
4578 Hints {
4579 space: false,
4580 line: false,
4581 hardline: false,
4582 blankline: false,
4583 indent: false,
4584 dedent: false,
4585 },
4586 Hints {
4587 space: true,
4588 line: false,
4589 hardline: false,
4590 blankline: false,
4591 indent: false,
4592 dedent: false,
4593 },
4594 ),
4595 (_, SyntaxKind::SparqlBaseToken) => (
4596 Hints {
4597 space: false,
4598 line: false,
4599 hardline: false,
4600 blankline: false,
4601 indent: false,
4602 dedent: false,
4603 },
4604 Hints {
4605 space: true,
4606 line: false,
4607 hardline: false,
4608 blankline: false,
4609 indent: false,
4610 dedent: false,
4611 },
4612 ),
4613 _ => (Hints::default(), Hints::default()),
4614 }
4615 }
4616 fn is_group(kind: SyntaxKind) -> bool {
4617 matches!(
4618 kind,
4619 SyntaxKind::PredicateObjectList
4620 | SyntaxKind::ObjectList
4621 | SyntaxKind::WrappedGraph
4622 | SyntaxKind::Collection
4623 | SyntaxKind::BlankNodePropertyList
4624 | SyntaxKind::BlankNodePropertyList2
4625 )
4626 }
4627 pub fn to_doc(node: &SyntaxNode) -> Doc {
4628 let mut parts: Vec<Vec<Doc>> = vec![vec![]];
4629 for child in node.children_with_tokens() {
4630 match child {
4631 NodeOrToken::Token(t) => {
4632 if t.kind() == SyntaxKind::WhiteSpace {
4633 continue;
4634 }
4635 if t.kind() == SyntaxKind::Comment {
4636 parts
4637 .last_mut()
4638 .unwrap()
4639 .push(Doc::text(t.text().to_string()));
4640 continue;
4641 }
4642 let (before, after) = format_hints(node.kind(), t.kind());
4643 if before.dedent && parts.len() > 1 {
4644 let nested = parts.pop().unwrap_or_default();
4645 let indent_doc = Doc::nest(2, Doc::concat(nested));
4646 parts.last_mut().unwrap().push(indent_doc);
4647 }
4648 parts.last_mut().unwrap().extend(
4649 before
4650 .to_docs()
4651 .into_iter()
4652 .filter(|d| !matches!(d, Doc::Nil)),
4653 );
4654 parts
4655 .last_mut()
4656 .unwrap()
4657 .push(Doc::text(t.text().to_string()));
4658 let after_line: Vec<Doc> = after
4659 .to_docs()
4660 .into_iter()
4661 .filter(|d| !matches!(d, Doc::Nil))
4662 .collect();
4663 if after.indent {
4664 parts.push(after_line);
4665 } else {
4666 parts.last_mut().unwrap().extend(after_line);
4667 }
4668 }
4669 NodeOrToken::Node(n) => {
4670 if n.kind() == SyntaxKind::ERROR {
4671 parts
4672 .last_mut()
4673 .unwrap()
4674 .push(Doc::text(n.text().to_string()));
4675 continue;
4676 }
4677 let is_terminal_wrapper = {
4678 let mut it = n.children_with_tokens().filter(|c| match c {
4679 NodeOrToken::Token(t) => t.kind() != SyntaxKind::WhiteSpace,
4680 NodeOrToken::Node(_) => true,
4681 });
4682 matches!(it.next(), Some(NodeOrToken::Token(_))) && it.next().is_none()
4683 };
4684 if is_terminal_wrapper {
4685 let token_text = n.text().to_string();
4686 let (before, after) = format_hints(node.kind(), n.kind());
4687 if before.dedent && parts.len() > 1 {
4688 let nested = parts.pop().unwrap_or_default();
4689 let indent_doc = Doc::nest(2, Doc::concat(nested));
4690 parts.last_mut().unwrap().push(indent_doc);
4691 }
4692 parts.last_mut().unwrap().extend(
4693 before
4694 .to_docs()
4695 .into_iter()
4696 .filter(|d| !matches!(d, Doc::Nil)),
4697 );
4698 parts.last_mut().unwrap().push(Doc::text(token_text));
4699 let after_line: Vec<Doc> = after
4700 .to_docs()
4701 .into_iter()
4702 .filter(|d| !matches!(d, Doc::Nil))
4703 .collect();
4704 if after.indent {
4705 parts.push(after_line);
4706 } else {
4707 parts.last_mut().unwrap().extend(after_line);
4708 }
4709 } else {
4710 let (before, after) = format_hints(node.kind(), n.kind());
4711 if before.dedent && parts.len() > 1 {
4712 let nested = parts.pop().unwrap_or_default();
4713 let indent_doc = Doc::nest(2, Doc::concat(nested));
4714 parts.last_mut().unwrap().push(indent_doc);
4715 }
4716 parts.last_mut().unwrap().extend(
4717 before
4718 .to_docs()
4719 .into_iter()
4720 .filter(|d| !matches!(d, Doc::Nil)),
4721 );
4722 let child_doc = to_doc(&n);
4723 let child_doc = if is_group(n.kind()) {
4724 Doc::group(child_doc)
4725 } else {
4726 child_doc
4727 };
4728 parts.last_mut().unwrap().push(child_doc);
4729 let after_line: Vec<Doc> = after
4730 .to_docs()
4731 .into_iter()
4732 .filter(|d| !matches!(d, Doc::Nil))
4733 .collect();
4734 if after.indent {
4735 parts.push(after_line);
4736 } else {
4737 parts.last_mut().unwrap().extend(after_line);
4738 }
4739 }
4740 }
4741 }
4742 }
4743 while parts.len() > 1 {
4744 let nested = parts.pop().unwrap();
4745 parts
4746 .last_mut()
4747 .unwrap()
4748 .push(Doc::nest(2, Doc::concat(nested)));
4749 }
4750 Doc::concat(parts.pop().unwrap_or_default())
4751 }
4752 pub fn format(node: &SyntaxNode, width: usize) -> String {
4753 let doc = to_doc(node);
4754 let s = crate::format::render(&doc, width);
4755 let s = s.trim_start_matches('\n').trim_end_matches('\n');
4756 format!("{s}\n")
4757 }
4758}