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