@swaggerexpert/jsonpath 3.2.2 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/cjs/apg-lite.cjs +1221 -0
  2. package/cjs/compile.cjs +50 -0
  3. package/cjs/errors/JSONPathCompileError.cjs +8 -0
  4. package/cjs/errors/JSONPathError.cjs +44 -0
  5. package/cjs/errors/JSONPathParseError.cjs +8 -0
  6. package/cjs/escape.cjs +59 -0
  7. package/cjs/grammar.cjs +2839 -0
  8. package/cjs/index.cjs +31 -0
  9. package/cjs/parse/callbacks/cst.cjs +49 -0
  10. package/cjs/parse/index.cjs +41 -0
  11. package/cjs/parse/trace/Expectations.cjs +10 -0
  12. package/cjs/parse/trace/Trace.cjs +35 -0
  13. package/cjs/parse/translators/ASTTranslator/decoders.cjs +83 -0
  14. package/cjs/parse/translators/ASTTranslator/index.cjs +15 -0
  15. package/cjs/parse/translators/ASTTranslator/transformers.cjs +411 -0
  16. package/cjs/parse/translators/CSTOptimizedTranslator.cjs +39 -0
  17. package/cjs/parse/translators/CSTTranslator.cjs +118 -0
  18. package/cjs/parse/translators/XMLTranslator.cjs +12 -0
  19. package/cjs/test/index.cjs +25 -0
  20. package/es/compile.mjs +45 -0
  21. package/es/errors/JSONPathCompileError.mjs +3 -0
  22. package/es/errors/JSONPathError.mjs +40 -0
  23. package/es/errors/JSONPathParseError.mjs +3 -0
  24. package/es/escape.mjs +55 -0
  25. package/es/grammar.mjs +2835 -0
  26. package/es/index.mjs +13 -0
  27. package/es/parse/callbacks/cst.mjs +44 -0
  28. package/es/parse/index.mjs +36 -0
  29. package/es/parse/trace/Expectations.mjs +6 -0
  30. package/es/parse/trace/Trace.mjs +30 -0
  31. package/es/parse/translators/ASTTranslator/decoders.mjs +75 -0
  32. package/es/parse/translators/ASTTranslator/index.mjs +9 -0
  33. package/es/parse/translators/ASTTranslator/transformers.mjs +405 -0
  34. package/es/parse/translators/CSTOptimizedTranslator.mjs +34 -0
  35. package/es/parse/translators/CSTTranslator.mjs +113 -0
  36. package/es/parse/translators/XMLTranslator.mjs +7 -0
  37. package/es/test/index.mjs +20 -0
  38. package/package.json +1 -1
package/es/grammar.mjs ADDED
@@ -0,0 +1,2835 @@
1
+ // copyright: Copyright (c) 2024 Lowell D. Thomas, all rights reserved<br>
2
+ // license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)<br>
3
+ //
4
+ // Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)
5
+ export default function grammar() {
6
+ // ```
7
+ // SUMMARY
8
+ // rules = 91
9
+ // udts = 0
10
+ // opcodes = 423
11
+ // --- ABNF original opcodes
12
+ // ALT = 41
13
+ // CAT = 60
14
+ // REP = 32
15
+ // RNM = 178
16
+ // TLS = 64
17
+ // TBS = 28
18
+ // TRG = 20
19
+ // --- SABNF superset opcodes
20
+ // UDT = 0
21
+ // AND = 0
22
+ // NOT = 0
23
+ // characters = [9 - 1114111]
24
+ // ```
25
+ /* OBJECT IDENTIFIER (for internal parser use) */
26
+ this.grammarObject = 'grammarObject';
27
+
28
+ /* RULES */
29
+ this.rules = [];
30
+ this.rules[0] = {
31
+ name: 'jsonpath-query',
32
+ lower: 'jsonpath-query',
33
+ index: 0,
34
+ isBkr: false
35
+ };
36
+ this.rules[1] = {
37
+ name: 'segments',
38
+ lower: 'segments',
39
+ index: 1,
40
+ isBkr: false
41
+ };
42
+ this.rules[2] = {
43
+ name: 'B',
44
+ lower: 'b',
45
+ index: 2,
46
+ isBkr: false
47
+ };
48
+ this.rules[3] = {
49
+ name: 'S',
50
+ lower: 's',
51
+ index: 3,
52
+ isBkr: false
53
+ };
54
+ this.rules[4] = {
55
+ name: 'root-identifier',
56
+ lower: 'root-identifier',
57
+ index: 4,
58
+ isBkr: false
59
+ };
60
+ this.rules[5] = {
61
+ name: 'selector',
62
+ lower: 'selector',
63
+ index: 5,
64
+ isBkr: false
65
+ };
66
+ this.rules[6] = {
67
+ name: 'name-selector',
68
+ lower: 'name-selector',
69
+ index: 6,
70
+ isBkr: false
71
+ };
72
+ this.rules[7] = {
73
+ name: 'string-literal',
74
+ lower: 'string-literal',
75
+ index: 7,
76
+ isBkr: false
77
+ };
78
+ this.rules[8] = {
79
+ name: 'double-quoted',
80
+ lower: 'double-quoted',
81
+ index: 8,
82
+ isBkr: false
83
+ };
84
+ this.rules[9] = {
85
+ name: 'single-quoted',
86
+ lower: 'single-quoted',
87
+ index: 9,
88
+ isBkr: false
89
+ };
90
+ this.rules[10] = {
91
+ name: 'ESC',
92
+ lower: 'esc',
93
+ index: 10,
94
+ isBkr: false
95
+ };
96
+ this.rules[11] = {
97
+ name: 'unescaped',
98
+ lower: 'unescaped',
99
+ index: 11,
100
+ isBkr: false
101
+ };
102
+ this.rules[12] = {
103
+ name: 'escapable',
104
+ lower: 'escapable',
105
+ index: 12,
106
+ isBkr: false
107
+ };
108
+ this.rules[13] = {
109
+ name: 'hexchar',
110
+ lower: 'hexchar',
111
+ index: 13,
112
+ isBkr: false
113
+ };
114
+ this.rules[14] = {
115
+ name: 'non-surrogate',
116
+ lower: 'non-surrogate',
117
+ index: 14,
118
+ isBkr: false
119
+ };
120
+ this.rules[15] = {
121
+ name: 'high-surrogate',
122
+ lower: 'high-surrogate',
123
+ index: 15,
124
+ isBkr: false
125
+ };
126
+ this.rules[16] = {
127
+ name: 'low-surrogate',
128
+ lower: 'low-surrogate',
129
+ index: 16,
130
+ isBkr: false
131
+ };
132
+ this.rules[17] = {
133
+ name: 'HEXDIG',
134
+ lower: 'hexdig',
135
+ index: 17,
136
+ isBkr: false
137
+ };
138
+ this.rules[18] = {
139
+ name: 'wildcard-selector',
140
+ lower: 'wildcard-selector',
141
+ index: 18,
142
+ isBkr: false
143
+ };
144
+ this.rules[19] = {
145
+ name: 'index-selector',
146
+ lower: 'index-selector',
147
+ index: 19,
148
+ isBkr: false
149
+ };
150
+ this.rules[20] = {
151
+ name: 'int',
152
+ lower: 'int',
153
+ index: 20,
154
+ isBkr: false
155
+ };
156
+ this.rules[21] = {
157
+ name: 'DIGIT1',
158
+ lower: 'digit1',
159
+ index: 21,
160
+ isBkr: false
161
+ };
162
+ this.rules[22] = {
163
+ name: 'slice-selector',
164
+ lower: 'slice-selector',
165
+ index: 22,
166
+ isBkr: false
167
+ };
168
+ this.rules[23] = {
169
+ name: 'start',
170
+ lower: 'start',
171
+ index: 23,
172
+ isBkr: false
173
+ };
174
+ this.rules[24] = {
175
+ name: 'end',
176
+ lower: 'end',
177
+ index: 24,
178
+ isBkr: false
179
+ };
180
+ this.rules[25] = {
181
+ name: 'step',
182
+ lower: 'step',
183
+ index: 25,
184
+ isBkr: false
185
+ };
186
+ this.rules[26] = {
187
+ name: 'filter-selector',
188
+ lower: 'filter-selector',
189
+ index: 26,
190
+ isBkr: false
191
+ };
192
+ this.rules[27] = {
193
+ name: 'logical-expr',
194
+ lower: 'logical-expr',
195
+ index: 27,
196
+ isBkr: false
197
+ };
198
+ this.rules[28] = {
199
+ name: 'logical-or-expr',
200
+ lower: 'logical-or-expr',
201
+ index: 28,
202
+ isBkr: false
203
+ };
204
+ this.rules[29] = {
205
+ name: 'logical-and-expr',
206
+ lower: 'logical-and-expr',
207
+ index: 29,
208
+ isBkr: false
209
+ };
210
+ this.rules[30] = {
211
+ name: 'basic-expr',
212
+ lower: 'basic-expr',
213
+ index: 30,
214
+ isBkr: false
215
+ };
216
+ this.rules[31] = {
217
+ name: 'paren-expr',
218
+ lower: 'paren-expr',
219
+ index: 31,
220
+ isBkr: false
221
+ };
222
+ this.rules[32] = {
223
+ name: 'logical-not-op',
224
+ lower: 'logical-not-op',
225
+ index: 32,
226
+ isBkr: false
227
+ };
228
+ this.rules[33] = {
229
+ name: 'test-expr',
230
+ lower: 'test-expr',
231
+ index: 33,
232
+ isBkr: false
233
+ };
234
+ this.rules[34] = {
235
+ name: 'filter-query',
236
+ lower: 'filter-query',
237
+ index: 34,
238
+ isBkr: false
239
+ };
240
+ this.rules[35] = {
241
+ name: 'rel-query',
242
+ lower: 'rel-query',
243
+ index: 35,
244
+ isBkr: false
245
+ };
246
+ this.rules[36] = {
247
+ name: 'current-node-identifier',
248
+ lower: 'current-node-identifier',
249
+ index: 36,
250
+ isBkr: false
251
+ };
252
+ this.rules[37] = {
253
+ name: 'comparison-expr',
254
+ lower: 'comparison-expr',
255
+ index: 37,
256
+ isBkr: false
257
+ };
258
+ this.rules[38] = {
259
+ name: 'literal',
260
+ lower: 'literal',
261
+ index: 38,
262
+ isBkr: false
263
+ };
264
+ this.rules[39] = {
265
+ name: 'comparable',
266
+ lower: 'comparable',
267
+ index: 39,
268
+ isBkr: false
269
+ };
270
+ this.rules[40] = {
271
+ name: 'comparison-op',
272
+ lower: 'comparison-op',
273
+ index: 40,
274
+ isBkr: false
275
+ };
276
+ this.rules[41] = {
277
+ name: 'singular-query',
278
+ lower: 'singular-query',
279
+ index: 41,
280
+ isBkr: false
281
+ };
282
+ this.rules[42] = {
283
+ name: 'rel-singular-query',
284
+ lower: 'rel-singular-query',
285
+ index: 42,
286
+ isBkr: false
287
+ };
288
+ this.rules[43] = {
289
+ name: 'abs-singular-query',
290
+ lower: 'abs-singular-query',
291
+ index: 43,
292
+ isBkr: false
293
+ };
294
+ this.rules[44] = {
295
+ name: 'singular-query-segments',
296
+ lower: 'singular-query-segments',
297
+ index: 44,
298
+ isBkr: false
299
+ };
300
+ this.rules[45] = {
301
+ name: 'name-segment',
302
+ lower: 'name-segment',
303
+ index: 45,
304
+ isBkr: false
305
+ };
306
+ this.rules[46] = {
307
+ name: 'index-segment',
308
+ lower: 'index-segment',
309
+ index: 46,
310
+ isBkr: false
311
+ };
312
+ this.rules[47] = {
313
+ name: 'number',
314
+ lower: 'number',
315
+ index: 47,
316
+ isBkr: false
317
+ };
318
+ this.rules[48] = {
319
+ name: 'frac',
320
+ lower: 'frac',
321
+ index: 48,
322
+ isBkr: false
323
+ };
324
+ this.rules[49] = {
325
+ name: 'exp',
326
+ lower: 'exp',
327
+ index: 49,
328
+ isBkr: false
329
+ };
330
+ this.rules[50] = {
331
+ name: 'true',
332
+ lower: 'true',
333
+ index: 50,
334
+ isBkr: false
335
+ };
336
+ this.rules[51] = {
337
+ name: 'false',
338
+ lower: 'false',
339
+ index: 51,
340
+ isBkr: false
341
+ };
342
+ this.rules[52] = {
343
+ name: 'null',
344
+ lower: 'null',
345
+ index: 52,
346
+ isBkr: false
347
+ };
348
+ this.rules[53] = {
349
+ name: 'function-name',
350
+ lower: 'function-name',
351
+ index: 53,
352
+ isBkr: false
353
+ };
354
+ this.rules[54] = {
355
+ name: 'function-name-first',
356
+ lower: 'function-name-first',
357
+ index: 54,
358
+ isBkr: false
359
+ };
360
+ this.rules[55] = {
361
+ name: 'function-name-char',
362
+ lower: 'function-name-char',
363
+ index: 55,
364
+ isBkr: false
365
+ };
366
+ this.rules[56] = {
367
+ name: 'LCALPHA',
368
+ lower: 'lcalpha',
369
+ index: 56,
370
+ isBkr: false
371
+ };
372
+ this.rules[57] = {
373
+ name: 'function-expr',
374
+ lower: 'function-expr',
375
+ index: 57,
376
+ isBkr: false
377
+ };
378
+ this.rules[58] = {
379
+ name: 'function-argument',
380
+ lower: 'function-argument',
381
+ index: 58,
382
+ isBkr: false
383
+ };
384
+ this.rules[59] = {
385
+ name: 'segment',
386
+ lower: 'segment',
387
+ index: 59,
388
+ isBkr: false
389
+ };
390
+ this.rules[60] = {
391
+ name: 'child-segment',
392
+ lower: 'child-segment',
393
+ index: 60,
394
+ isBkr: false
395
+ };
396
+ this.rules[61] = {
397
+ name: 'bracketed-selection',
398
+ lower: 'bracketed-selection',
399
+ index: 61,
400
+ isBkr: false
401
+ };
402
+ this.rules[62] = {
403
+ name: 'member-name-shorthand',
404
+ lower: 'member-name-shorthand',
405
+ index: 62,
406
+ isBkr: false
407
+ };
408
+ this.rules[63] = {
409
+ name: 'name-first',
410
+ lower: 'name-first',
411
+ index: 63,
412
+ isBkr: false
413
+ };
414
+ this.rules[64] = {
415
+ name: 'name-char',
416
+ lower: 'name-char',
417
+ index: 64,
418
+ isBkr: false
419
+ };
420
+ this.rules[65] = {
421
+ name: 'DIGIT',
422
+ lower: 'digit',
423
+ index: 65,
424
+ isBkr: false
425
+ };
426
+ this.rules[66] = {
427
+ name: 'ALPHA',
428
+ lower: 'alpha',
429
+ index: 66,
430
+ isBkr: false
431
+ };
432
+ this.rules[67] = {
433
+ name: 'descendant-segment',
434
+ lower: 'descendant-segment',
435
+ index: 67,
436
+ isBkr: false
437
+ };
438
+ this.rules[68] = {
439
+ name: 'normalized-path',
440
+ lower: 'normalized-path',
441
+ index: 68,
442
+ isBkr: false
443
+ };
444
+ this.rules[69] = {
445
+ name: 'normal-index-segment',
446
+ lower: 'normal-index-segment',
447
+ index: 69,
448
+ isBkr: false
449
+ };
450
+ this.rules[70] = {
451
+ name: 'normal-selector',
452
+ lower: 'normal-selector',
453
+ index: 70,
454
+ isBkr: false
455
+ };
456
+ this.rules[71] = {
457
+ name: 'normal-name-selector',
458
+ lower: 'normal-name-selector',
459
+ index: 71,
460
+ isBkr: false
461
+ };
462
+ this.rules[72] = {
463
+ name: 'normal-single-quoted',
464
+ lower: 'normal-single-quoted',
465
+ index: 72,
466
+ isBkr: false
467
+ };
468
+ this.rules[73] = {
469
+ name: 'normal-unescaped',
470
+ lower: 'normal-unescaped',
471
+ index: 73,
472
+ isBkr: false
473
+ };
474
+ this.rules[74] = {
475
+ name: 'normal-escapable',
476
+ lower: 'normal-escapable',
477
+ index: 74,
478
+ isBkr: false
479
+ };
480
+ this.rules[75] = {
481
+ name: 'normal-hexchar',
482
+ lower: 'normal-hexchar',
483
+ index: 75,
484
+ isBkr: false
485
+ };
486
+ this.rules[76] = {
487
+ name: 'normal-HEXDIG',
488
+ lower: 'normal-hexdig',
489
+ index: 76,
490
+ isBkr: false
491
+ };
492
+ this.rules[77] = {
493
+ name: 'normal-index-selector',
494
+ lower: 'normal-index-selector',
495
+ index: 77,
496
+ isBkr: false
497
+ };
498
+ this.rules[78] = {
499
+ name: 'dot-prefix',
500
+ lower: 'dot-prefix',
501
+ index: 78,
502
+ isBkr: false
503
+ };
504
+ this.rules[79] = {
505
+ name: 'double-dot-prefix',
506
+ lower: 'double-dot-prefix',
507
+ index: 79,
508
+ isBkr: false
509
+ };
510
+ this.rules[80] = {
511
+ name: 'left-bracket',
512
+ lower: 'left-bracket',
513
+ index: 80,
514
+ isBkr: false
515
+ };
516
+ this.rules[81] = {
517
+ name: 'right-bracket',
518
+ lower: 'right-bracket',
519
+ index: 81,
520
+ isBkr: false
521
+ };
522
+ this.rules[82] = {
523
+ name: 'left-paren',
524
+ lower: 'left-paren',
525
+ index: 82,
526
+ isBkr: false
527
+ };
528
+ this.rules[83] = {
529
+ name: 'right-paren',
530
+ lower: 'right-paren',
531
+ index: 83,
532
+ isBkr: false
533
+ };
534
+ this.rules[84] = {
535
+ name: 'comma',
536
+ lower: 'comma',
537
+ index: 84,
538
+ isBkr: false
539
+ };
540
+ this.rules[85] = {
541
+ name: 'colon',
542
+ lower: 'colon',
543
+ index: 85,
544
+ isBkr: false
545
+ };
546
+ this.rules[86] = {
547
+ name: 'dquote',
548
+ lower: 'dquote',
549
+ index: 86,
550
+ isBkr: false
551
+ };
552
+ this.rules[87] = {
553
+ name: 'squote',
554
+ lower: 'squote',
555
+ index: 87,
556
+ isBkr: false
557
+ };
558
+ this.rules[88] = {
559
+ name: 'questionmark',
560
+ lower: 'questionmark',
561
+ index: 88,
562
+ isBkr: false
563
+ };
564
+ this.rules[89] = {
565
+ name: 'disjunction',
566
+ lower: 'disjunction',
567
+ index: 89,
568
+ isBkr: false
569
+ };
570
+ this.rules[90] = {
571
+ name: 'conjunction',
572
+ lower: 'conjunction',
573
+ index: 90,
574
+ isBkr: false
575
+ };
576
+
577
+ /* UDTS */
578
+ this.udts = [];
579
+
580
+ /* OPCODES */
581
+ /* jsonpath-query */
582
+ this.rules[0].opcodes = [];
583
+ this.rules[0].opcodes[0] = {
584
+ type: 2,
585
+ children: [1, 2]
586
+ }; // CAT
587
+ this.rules[0].opcodes[1] = {
588
+ type: 4,
589
+ index: 4
590
+ }; // RNM(root-identifier)
591
+ this.rules[0].opcodes[2] = {
592
+ type: 4,
593
+ index: 1
594
+ }; // RNM(segments)
595
+
596
+ /* segments */
597
+ this.rules[1].opcodes = [];
598
+ this.rules[1].opcodes[0] = {
599
+ type: 3,
600
+ min: 0,
601
+ max: Infinity
602
+ }; // REP
603
+ this.rules[1].opcodes[1] = {
604
+ type: 2,
605
+ children: [2, 3]
606
+ }; // CAT
607
+ this.rules[1].opcodes[2] = {
608
+ type: 4,
609
+ index: 3
610
+ }; // RNM(S)
611
+ this.rules[1].opcodes[3] = {
612
+ type: 4,
613
+ index: 59
614
+ }; // RNM(segment)
615
+
616
+ /* B */
617
+ this.rules[2].opcodes = [];
618
+ this.rules[2].opcodes[0] = {
619
+ type: 1,
620
+ children: [1, 2, 3, 4]
621
+ }; // ALT
622
+ this.rules[2].opcodes[1] = {
623
+ type: 6,
624
+ string: [32]
625
+ }; // TBS
626
+ this.rules[2].opcodes[2] = {
627
+ type: 6,
628
+ string: [9]
629
+ }; // TBS
630
+ this.rules[2].opcodes[3] = {
631
+ type: 6,
632
+ string: [10]
633
+ }; // TBS
634
+ this.rules[2].opcodes[4] = {
635
+ type: 6,
636
+ string: [13]
637
+ }; // TBS
638
+
639
+ /* S */
640
+ this.rules[3].opcodes = [];
641
+ this.rules[3].opcodes[0] = {
642
+ type: 3,
643
+ min: 0,
644
+ max: Infinity
645
+ }; // REP
646
+ this.rules[3].opcodes[1] = {
647
+ type: 4,
648
+ index: 2
649
+ }; // RNM(B)
650
+
651
+ /* root-identifier */
652
+ this.rules[4].opcodes = [];
653
+ this.rules[4].opcodes[0] = {
654
+ type: 7,
655
+ string: [36]
656
+ }; // TLS
657
+
658
+ /* selector */
659
+ this.rules[5].opcodes = [];
660
+ this.rules[5].opcodes[0] = {
661
+ type: 1,
662
+ children: [1, 2, 3, 4, 5]
663
+ }; // ALT
664
+ this.rules[5].opcodes[1] = {
665
+ type: 4,
666
+ index: 6
667
+ }; // RNM(name-selector)
668
+ this.rules[5].opcodes[2] = {
669
+ type: 4,
670
+ index: 18
671
+ }; // RNM(wildcard-selector)
672
+ this.rules[5].opcodes[3] = {
673
+ type: 4,
674
+ index: 22
675
+ }; // RNM(slice-selector)
676
+ this.rules[5].opcodes[4] = {
677
+ type: 4,
678
+ index: 19
679
+ }; // RNM(index-selector)
680
+ this.rules[5].opcodes[5] = {
681
+ type: 4,
682
+ index: 26
683
+ }; // RNM(filter-selector)
684
+
685
+ /* name-selector */
686
+ this.rules[6].opcodes = [];
687
+ this.rules[6].opcodes[0] = {
688
+ type: 4,
689
+ index: 7
690
+ }; // RNM(string-literal)
691
+
692
+ /* string-literal */
693
+ this.rules[7].opcodes = [];
694
+ this.rules[7].opcodes[0] = {
695
+ type: 1,
696
+ children: [1, 6]
697
+ }; // ALT
698
+ this.rules[7].opcodes[1] = {
699
+ type: 2,
700
+ children: [2, 3, 5]
701
+ }; // CAT
702
+ this.rules[7].opcodes[2] = {
703
+ type: 4,
704
+ index: 86
705
+ }; // RNM(dquote)
706
+ this.rules[7].opcodes[3] = {
707
+ type: 3,
708
+ min: 0,
709
+ max: Infinity
710
+ }; // REP
711
+ this.rules[7].opcodes[4] = {
712
+ type: 4,
713
+ index: 8
714
+ }; // RNM(double-quoted)
715
+ this.rules[7].opcodes[5] = {
716
+ type: 4,
717
+ index: 86
718
+ }; // RNM(dquote)
719
+ this.rules[7].opcodes[6] = {
720
+ type: 2,
721
+ children: [7, 8, 10]
722
+ }; // CAT
723
+ this.rules[7].opcodes[7] = {
724
+ type: 4,
725
+ index: 87
726
+ }; // RNM(squote)
727
+ this.rules[7].opcodes[8] = {
728
+ type: 3,
729
+ min: 0,
730
+ max: Infinity
731
+ }; // REP
732
+ this.rules[7].opcodes[9] = {
733
+ type: 4,
734
+ index: 9
735
+ }; // RNM(single-quoted)
736
+ this.rules[7].opcodes[10] = {
737
+ type: 4,
738
+ index: 87
739
+ }; // RNM(squote)
740
+
741
+ /* double-quoted */
742
+ this.rules[8].opcodes = [];
743
+ this.rules[8].opcodes[0] = {
744
+ type: 1,
745
+ children: [1, 2, 3, 6]
746
+ }; // ALT
747
+ this.rules[8].opcodes[1] = {
748
+ type: 4,
749
+ index: 11
750
+ }; // RNM(unescaped)
751
+ this.rules[8].opcodes[2] = {
752
+ type: 6,
753
+ string: [39]
754
+ }; // TBS
755
+ this.rules[8].opcodes[3] = {
756
+ type: 2,
757
+ children: [4, 5]
758
+ }; // CAT
759
+ this.rules[8].opcodes[4] = {
760
+ type: 4,
761
+ index: 10
762
+ }; // RNM(ESC)
763
+ this.rules[8].opcodes[5] = {
764
+ type: 6,
765
+ string: [34]
766
+ }; // TBS
767
+ this.rules[8].opcodes[6] = {
768
+ type: 2,
769
+ children: [7, 8]
770
+ }; // CAT
771
+ this.rules[8].opcodes[7] = {
772
+ type: 4,
773
+ index: 10
774
+ }; // RNM(ESC)
775
+ this.rules[8].opcodes[8] = {
776
+ type: 4,
777
+ index: 12
778
+ }; // RNM(escapable)
779
+
780
+ /* single-quoted */
781
+ this.rules[9].opcodes = [];
782
+ this.rules[9].opcodes[0] = {
783
+ type: 1,
784
+ children: [1, 2, 3, 6]
785
+ }; // ALT
786
+ this.rules[9].opcodes[1] = {
787
+ type: 4,
788
+ index: 11
789
+ }; // RNM(unescaped)
790
+ this.rules[9].opcodes[2] = {
791
+ type: 6,
792
+ string: [34]
793
+ }; // TBS
794
+ this.rules[9].opcodes[3] = {
795
+ type: 2,
796
+ children: [4, 5]
797
+ }; // CAT
798
+ this.rules[9].opcodes[4] = {
799
+ type: 4,
800
+ index: 10
801
+ }; // RNM(ESC)
802
+ this.rules[9].opcodes[5] = {
803
+ type: 6,
804
+ string: [39]
805
+ }; // TBS
806
+ this.rules[9].opcodes[6] = {
807
+ type: 2,
808
+ children: [7, 8]
809
+ }; // CAT
810
+ this.rules[9].opcodes[7] = {
811
+ type: 4,
812
+ index: 10
813
+ }; // RNM(ESC)
814
+ this.rules[9].opcodes[8] = {
815
+ type: 4,
816
+ index: 12
817
+ }; // RNM(escapable)
818
+
819
+ /* ESC */
820
+ this.rules[10].opcodes = [];
821
+ this.rules[10].opcodes[0] = {
822
+ type: 6,
823
+ string: [92]
824
+ }; // TBS
825
+
826
+ /* unescaped */
827
+ this.rules[11].opcodes = [];
828
+ this.rules[11].opcodes[0] = {
829
+ type: 1,
830
+ children: [1, 2, 3, 4, 5]
831
+ }; // ALT
832
+ this.rules[11].opcodes[1] = {
833
+ type: 5,
834
+ min: 32,
835
+ max: 33
836
+ }; // TRG
837
+ this.rules[11].opcodes[2] = {
838
+ type: 5,
839
+ min: 35,
840
+ max: 38
841
+ }; // TRG
842
+ this.rules[11].opcodes[3] = {
843
+ type: 5,
844
+ min: 40,
845
+ max: 91
846
+ }; // TRG
847
+ this.rules[11].opcodes[4] = {
848
+ type: 5,
849
+ min: 93,
850
+ max: 55295
851
+ }; // TRG
852
+ this.rules[11].opcodes[5] = {
853
+ type: 5,
854
+ min: 57344,
855
+ max: 1114111
856
+ }; // TRG
857
+
858
+ /* escapable */
859
+ this.rules[12].opcodes = [];
860
+ this.rules[12].opcodes[0] = {
861
+ type: 1,
862
+ children: [1, 2, 3, 4, 5, 6, 7, 8]
863
+ }; // ALT
864
+ this.rules[12].opcodes[1] = {
865
+ type: 6,
866
+ string: [98]
867
+ }; // TBS
868
+ this.rules[12].opcodes[2] = {
869
+ type: 6,
870
+ string: [102]
871
+ }; // TBS
872
+ this.rules[12].opcodes[3] = {
873
+ type: 6,
874
+ string: [110]
875
+ }; // TBS
876
+ this.rules[12].opcodes[4] = {
877
+ type: 6,
878
+ string: [114]
879
+ }; // TBS
880
+ this.rules[12].opcodes[5] = {
881
+ type: 6,
882
+ string: [116]
883
+ }; // TBS
884
+ this.rules[12].opcodes[6] = {
885
+ type: 7,
886
+ string: [47]
887
+ }; // TLS
888
+ this.rules[12].opcodes[7] = {
889
+ type: 7,
890
+ string: [92]
891
+ }; // TLS
892
+ this.rules[12].opcodes[8] = {
893
+ type: 2,
894
+ children: [9, 10]
895
+ }; // CAT
896
+ this.rules[12].opcodes[9] = {
897
+ type: 6,
898
+ string: [117]
899
+ }; // TBS
900
+ this.rules[12].opcodes[10] = {
901
+ type: 4,
902
+ index: 13
903
+ }; // RNM(hexchar)
904
+
905
+ /* hexchar */
906
+ this.rules[13].opcodes = [];
907
+ this.rules[13].opcodes[0] = {
908
+ type: 1,
909
+ children: [1, 2]
910
+ }; // ALT
911
+ this.rules[13].opcodes[1] = {
912
+ type: 4,
913
+ index: 14
914
+ }; // RNM(non-surrogate)
915
+ this.rules[13].opcodes[2] = {
916
+ type: 2,
917
+ children: [3, 4, 5, 6]
918
+ }; // CAT
919
+ this.rules[13].opcodes[3] = {
920
+ type: 4,
921
+ index: 15
922
+ }; // RNM(high-surrogate)
923
+ this.rules[13].opcodes[4] = {
924
+ type: 7,
925
+ string: [92]
926
+ }; // TLS
927
+ this.rules[13].opcodes[5] = {
928
+ type: 6,
929
+ string: [117]
930
+ }; // TBS
931
+ this.rules[13].opcodes[6] = {
932
+ type: 4,
933
+ index: 16
934
+ }; // RNM(low-surrogate)
935
+
936
+ /* non-surrogate */
937
+ this.rules[14].opcodes = [];
938
+ this.rules[14].opcodes[0] = {
939
+ type: 1,
940
+ children: [1, 11]
941
+ }; // ALT
942
+ this.rules[14].opcodes[1] = {
943
+ type: 2,
944
+ children: [2, 9]
945
+ }; // CAT
946
+ this.rules[14].opcodes[2] = {
947
+ type: 1,
948
+ children: [3, 4, 5, 6, 7, 8]
949
+ }; // ALT
950
+ this.rules[14].opcodes[3] = {
951
+ type: 4,
952
+ index: 65
953
+ }; // RNM(DIGIT)
954
+ this.rules[14].opcodes[4] = {
955
+ type: 7,
956
+ string: [97]
957
+ }; // TLS
958
+ this.rules[14].opcodes[5] = {
959
+ type: 7,
960
+ string: [98]
961
+ }; // TLS
962
+ this.rules[14].opcodes[6] = {
963
+ type: 7,
964
+ string: [99]
965
+ }; // TLS
966
+ this.rules[14].opcodes[7] = {
967
+ type: 7,
968
+ string: [101]
969
+ }; // TLS
970
+ this.rules[14].opcodes[8] = {
971
+ type: 7,
972
+ string: [102]
973
+ }; // TLS
974
+ this.rules[14].opcodes[9] = {
975
+ type: 3,
976
+ min: 3,
977
+ max: 3
978
+ }; // REP
979
+ this.rules[14].opcodes[10] = {
980
+ type: 4,
981
+ index: 17
982
+ }; // RNM(HEXDIG)
983
+ this.rules[14].opcodes[11] = {
984
+ type: 2,
985
+ children: [12, 13, 14]
986
+ }; // CAT
987
+ this.rules[14].opcodes[12] = {
988
+ type: 7,
989
+ string: [100]
990
+ }; // TLS
991
+ this.rules[14].opcodes[13] = {
992
+ type: 5,
993
+ min: 48,
994
+ max: 55
995
+ }; // TRG
996
+ this.rules[14].opcodes[14] = {
997
+ type: 3,
998
+ min: 2,
999
+ max: 2
1000
+ }; // REP
1001
+ this.rules[14].opcodes[15] = {
1002
+ type: 4,
1003
+ index: 17
1004
+ }; // RNM(HEXDIG)
1005
+
1006
+ /* high-surrogate */
1007
+ this.rules[15].opcodes = [];
1008
+ this.rules[15].opcodes[0] = {
1009
+ type: 2,
1010
+ children: [1, 2, 7]
1011
+ }; // CAT
1012
+ this.rules[15].opcodes[1] = {
1013
+ type: 7,
1014
+ string: [100]
1015
+ }; // TLS
1016
+ this.rules[15].opcodes[2] = {
1017
+ type: 1,
1018
+ children: [3, 4, 5, 6]
1019
+ }; // ALT
1020
+ this.rules[15].opcodes[3] = {
1021
+ type: 7,
1022
+ string: [56]
1023
+ }; // TLS
1024
+ this.rules[15].opcodes[4] = {
1025
+ type: 7,
1026
+ string: [57]
1027
+ }; // TLS
1028
+ this.rules[15].opcodes[5] = {
1029
+ type: 7,
1030
+ string: [97]
1031
+ }; // TLS
1032
+ this.rules[15].opcodes[6] = {
1033
+ type: 7,
1034
+ string: [98]
1035
+ }; // TLS
1036
+ this.rules[15].opcodes[7] = {
1037
+ type: 3,
1038
+ min: 2,
1039
+ max: 2
1040
+ }; // REP
1041
+ this.rules[15].opcodes[8] = {
1042
+ type: 4,
1043
+ index: 17
1044
+ }; // RNM(HEXDIG)
1045
+
1046
+ /* low-surrogate */
1047
+ this.rules[16].opcodes = [];
1048
+ this.rules[16].opcodes[0] = {
1049
+ type: 2,
1050
+ children: [1, 2, 7]
1051
+ }; // CAT
1052
+ this.rules[16].opcodes[1] = {
1053
+ type: 7,
1054
+ string: [100]
1055
+ }; // TLS
1056
+ this.rules[16].opcodes[2] = {
1057
+ type: 1,
1058
+ children: [3, 4, 5, 6]
1059
+ }; // ALT
1060
+ this.rules[16].opcodes[3] = {
1061
+ type: 7,
1062
+ string: [99]
1063
+ }; // TLS
1064
+ this.rules[16].opcodes[4] = {
1065
+ type: 7,
1066
+ string: [100]
1067
+ }; // TLS
1068
+ this.rules[16].opcodes[5] = {
1069
+ type: 7,
1070
+ string: [101]
1071
+ }; // TLS
1072
+ this.rules[16].opcodes[6] = {
1073
+ type: 7,
1074
+ string: [102]
1075
+ }; // TLS
1076
+ this.rules[16].opcodes[7] = {
1077
+ type: 3,
1078
+ min: 2,
1079
+ max: 2
1080
+ }; // REP
1081
+ this.rules[16].opcodes[8] = {
1082
+ type: 4,
1083
+ index: 17
1084
+ }; // RNM(HEXDIG)
1085
+
1086
+ /* HEXDIG */
1087
+ this.rules[17].opcodes = [];
1088
+ this.rules[17].opcodes[0] = {
1089
+ type: 1,
1090
+ children: [1, 2, 3, 4, 5, 6, 7]
1091
+ }; // ALT
1092
+ this.rules[17].opcodes[1] = {
1093
+ type: 4,
1094
+ index: 65
1095
+ }; // RNM(DIGIT)
1096
+ this.rules[17].opcodes[2] = {
1097
+ type: 7,
1098
+ string: [97]
1099
+ }; // TLS
1100
+ this.rules[17].opcodes[3] = {
1101
+ type: 7,
1102
+ string: [98]
1103
+ }; // TLS
1104
+ this.rules[17].opcodes[4] = {
1105
+ type: 7,
1106
+ string: [99]
1107
+ }; // TLS
1108
+ this.rules[17].opcodes[5] = {
1109
+ type: 7,
1110
+ string: [100]
1111
+ }; // TLS
1112
+ this.rules[17].opcodes[6] = {
1113
+ type: 7,
1114
+ string: [101]
1115
+ }; // TLS
1116
+ this.rules[17].opcodes[7] = {
1117
+ type: 7,
1118
+ string: [102]
1119
+ }; // TLS
1120
+
1121
+ /* wildcard-selector */
1122
+ this.rules[18].opcodes = [];
1123
+ this.rules[18].opcodes[0] = {
1124
+ type: 7,
1125
+ string: [42]
1126
+ }; // TLS
1127
+
1128
+ /* index-selector */
1129
+ this.rules[19].opcodes = [];
1130
+ this.rules[19].opcodes[0] = {
1131
+ type: 4,
1132
+ index: 20
1133
+ }; // RNM(int)
1134
+
1135
+ /* int */
1136
+ this.rules[20].opcodes = [];
1137
+ this.rules[20].opcodes[0] = {
1138
+ type: 1,
1139
+ children: [1, 2]
1140
+ }; // ALT
1141
+ this.rules[20].opcodes[1] = {
1142
+ type: 7,
1143
+ string: [48]
1144
+ }; // TLS
1145
+ this.rules[20].opcodes[2] = {
1146
+ type: 2,
1147
+ children: [3, 5, 6]
1148
+ }; // CAT
1149
+ this.rules[20].opcodes[3] = {
1150
+ type: 3,
1151
+ min: 0,
1152
+ max: 1
1153
+ }; // REP
1154
+ this.rules[20].opcodes[4] = {
1155
+ type: 7,
1156
+ string: [45]
1157
+ }; // TLS
1158
+ this.rules[20].opcodes[5] = {
1159
+ type: 4,
1160
+ index: 21
1161
+ }; // RNM(DIGIT1)
1162
+ this.rules[20].opcodes[6] = {
1163
+ type: 3,
1164
+ min: 0,
1165
+ max: Infinity
1166
+ }; // REP
1167
+ this.rules[20].opcodes[7] = {
1168
+ type: 4,
1169
+ index: 65
1170
+ }; // RNM(DIGIT)
1171
+
1172
+ /* DIGIT1 */
1173
+ this.rules[21].opcodes = [];
1174
+ this.rules[21].opcodes[0] = {
1175
+ type: 5,
1176
+ min: 49,
1177
+ max: 57
1178
+ }; // TRG
1179
+
1180
+ /* slice-selector */
1181
+ this.rules[22].opcodes = [];
1182
+ this.rules[22].opcodes[0] = {
1183
+ type: 2,
1184
+ children: [1, 5, 6, 7, 11]
1185
+ }; // CAT
1186
+ this.rules[22].opcodes[1] = {
1187
+ type: 3,
1188
+ min: 0,
1189
+ max: 1
1190
+ }; // REP
1191
+ this.rules[22].opcodes[2] = {
1192
+ type: 2,
1193
+ children: [3, 4]
1194
+ }; // CAT
1195
+ this.rules[22].opcodes[3] = {
1196
+ type: 4,
1197
+ index: 23
1198
+ }; // RNM(start)
1199
+ this.rules[22].opcodes[4] = {
1200
+ type: 4,
1201
+ index: 3
1202
+ }; // RNM(S)
1203
+ this.rules[22].opcodes[5] = {
1204
+ type: 4,
1205
+ index: 85
1206
+ }; // RNM(colon)
1207
+ this.rules[22].opcodes[6] = {
1208
+ type: 4,
1209
+ index: 3
1210
+ }; // RNM(S)
1211
+ this.rules[22].opcodes[7] = {
1212
+ type: 3,
1213
+ min: 0,
1214
+ max: 1
1215
+ }; // REP
1216
+ this.rules[22].opcodes[8] = {
1217
+ type: 2,
1218
+ children: [9, 10]
1219
+ }; // CAT
1220
+ this.rules[22].opcodes[9] = {
1221
+ type: 4,
1222
+ index: 24
1223
+ }; // RNM(end)
1224
+ this.rules[22].opcodes[10] = {
1225
+ type: 4,
1226
+ index: 3
1227
+ }; // RNM(S)
1228
+ this.rules[22].opcodes[11] = {
1229
+ type: 3,
1230
+ min: 0,
1231
+ max: 1
1232
+ }; // REP
1233
+ this.rules[22].opcodes[12] = {
1234
+ type: 2,
1235
+ children: [13, 14]
1236
+ }; // CAT
1237
+ this.rules[22].opcodes[13] = {
1238
+ type: 4,
1239
+ index: 85
1240
+ }; // RNM(colon)
1241
+ this.rules[22].opcodes[14] = {
1242
+ type: 3,
1243
+ min: 0,
1244
+ max: 1
1245
+ }; // REP
1246
+ this.rules[22].opcodes[15] = {
1247
+ type: 2,
1248
+ children: [16, 17]
1249
+ }; // CAT
1250
+ this.rules[22].opcodes[16] = {
1251
+ type: 4,
1252
+ index: 3
1253
+ }; // RNM(S)
1254
+ this.rules[22].opcodes[17] = {
1255
+ type: 4,
1256
+ index: 25
1257
+ }; // RNM(step)
1258
+
1259
+ /* start */
1260
+ this.rules[23].opcodes = [];
1261
+ this.rules[23].opcodes[0] = {
1262
+ type: 4,
1263
+ index: 20
1264
+ }; // RNM(int)
1265
+
1266
+ /* end */
1267
+ this.rules[24].opcodes = [];
1268
+ this.rules[24].opcodes[0] = {
1269
+ type: 4,
1270
+ index: 20
1271
+ }; // RNM(int)
1272
+
1273
+ /* step */
1274
+ this.rules[25].opcodes = [];
1275
+ this.rules[25].opcodes[0] = {
1276
+ type: 4,
1277
+ index: 20
1278
+ }; // RNM(int)
1279
+
1280
+ /* filter-selector */
1281
+ this.rules[26].opcodes = [];
1282
+ this.rules[26].opcodes[0] = {
1283
+ type: 2,
1284
+ children: [1, 2, 3]
1285
+ }; // CAT
1286
+ this.rules[26].opcodes[1] = {
1287
+ type: 4,
1288
+ index: 88
1289
+ }; // RNM(questionmark)
1290
+ this.rules[26].opcodes[2] = {
1291
+ type: 4,
1292
+ index: 3
1293
+ }; // RNM(S)
1294
+ this.rules[26].opcodes[3] = {
1295
+ type: 4,
1296
+ index: 27
1297
+ }; // RNM(logical-expr)
1298
+
1299
+ /* logical-expr */
1300
+ this.rules[27].opcodes = [];
1301
+ this.rules[27].opcodes[0] = {
1302
+ type: 4,
1303
+ index: 28
1304
+ }; // RNM(logical-or-expr)
1305
+
1306
+ /* logical-or-expr */
1307
+ this.rules[28].opcodes = [];
1308
+ this.rules[28].opcodes[0] = {
1309
+ type: 2,
1310
+ children: [1, 2]
1311
+ }; // CAT
1312
+ this.rules[28].opcodes[1] = {
1313
+ type: 4,
1314
+ index: 29
1315
+ }; // RNM(logical-and-expr)
1316
+ this.rules[28].opcodes[2] = {
1317
+ type: 3,
1318
+ min: 0,
1319
+ max: Infinity
1320
+ }; // REP
1321
+ this.rules[28].opcodes[3] = {
1322
+ type: 2,
1323
+ children: [4, 5, 6, 7]
1324
+ }; // CAT
1325
+ this.rules[28].opcodes[4] = {
1326
+ type: 4,
1327
+ index: 3
1328
+ }; // RNM(S)
1329
+ this.rules[28].opcodes[5] = {
1330
+ type: 4,
1331
+ index: 89
1332
+ }; // RNM(disjunction)
1333
+ this.rules[28].opcodes[6] = {
1334
+ type: 4,
1335
+ index: 3
1336
+ }; // RNM(S)
1337
+ this.rules[28].opcodes[7] = {
1338
+ type: 4,
1339
+ index: 29
1340
+ }; // RNM(logical-and-expr)
1341
+
1342
+ /* logical-and-expr */
1343
+ this.rules[29].opcodes = [];
1344
+ this.rules[29].opcodes[0] = {
1345
+ type: 2,
1346
+ children: [1, 2]
1347
+ }; // CAT
1348
+ this.rules[29].opcodes[1] = {
1349
+ type: 4,
1350
+ index: 30
1351
+ }; // RNM(basic-expr)
1352
+ this.rules[29].opcodes[2] = {
1353
+ type: 3,
1354
+ min: 0,
1355
+ max: Infinity
1356
+ }; // REP
1357
+ this.rules[29].opcodes[3] = {
1358
+ type: 2,
1359
+ children: [4, 5, 6, 7]
1360
+ }; // CAT
1361
+ this.rules[29].opcodes[4] = {
1362
+ type: 4,
1363
+ index: 3
1364
+ }; // RNM(S)
1365
+ this.rules[29].opcodes[5] = {
1366
+ type: 4,
1367
+ index: 90
1368
+ }; // RNM(conjunction)
1369
+ this.rules[29].opcodes[6] = {
1370
+ type: 4,
1371
+ index: 3
1372
+ }; // RNM(S)
1373
+ this.rules[29].opcodes[7] = {
1374
+ type: 4,
1375
+ index: 30
1376
+ }; // RNM(basic-expr)
1377
+
1378
+ /* basic-expr */
1379
+ this.rules[30].opcodes = [];
1380
+ this.rules[30].opcodes[0] = {
1381
+ type: 1,
1382
+ children: [1, 2, 3]
1383
+ }; // ALT
1384
+ this.rules[30].opcodes[1] = {
1385
+ type: 4,
1386
+ index: 31
1387
+ }; // RNM(paren-expr)
1388
+ this.rules[30].opcodes[2] = {
1389
+ type: 4,
1390
+ index: 37
1391
+ }; // RNM(comparison-expr)
1392
+ this.rules[30].opcodes[3] = {
1393
+ type: 4,
1394
+ index: 33
1395
+ }; // RNM(test-expr)
1396
+
1397
+ /* paren-expr */
1398
+ this.rules[31].opcodes = [];
1399
+ this.rules[31].opcodes[0] = {
1400
+ type: 2,
1401
+ children: [1, 5, 6, 7, 8, 9]
1402
+ }; // CAT
1403
+ this.rules[31].opcodes[1] = {
1404
+ type: 3,
1405
+ min: 0,
1406
+ max: 1
1407
+ }; // REP
1408
+ this.rules[31].opcodes[2] = {
1409
+ type: 2,
1410
+ children: [3, 4]
1411
+ }; // CAT
1412
+ this.rules[31].opcodes[3] = {
1413
+ type: 4,
1414
+ index: 32
1415
+ }; // RNM(logical-not-op)
1416
+ this.rules[31].opcodes[4] = {
1417
+ type: 4,
1418
+ index: 3
1419
+ }; // RNM(S)
1420
+ this.rules[31].opcodes[5] = {
1421
+ type: 4,
1422
+ index: 82
1423
+ }; // RNM(left-paren)
1424
+ this.rules[31].opcodes[6] = {
1425
+ type: 4,
1426
+ index: 3
1427
+ }; // RNM(S)
1428
+ this.rules[31].opcodes[7] = {
1429
+ type: 4,
1430
+ index: 27
1431
+ }; // RNM(logical-expr)
1432
+ this.rules[31].opcodes[8] = {
1433
+ type: 4,
1434
+ index: 3
1435
+ }; // RNM(S)
1436
+ this.rules[31].opcodes[9] = {
1437
+ type: 4,
1438
+ index: 83
1439
+ }; // RNM(right-paren)
1440
+
1441
+ /* logical-not-op */
1442
+ this.rules[32].opcodes = [];
1443
+ this.rules[32].opcodes[0] = {
1444
+ type: 7,
1445
+ string: [33]
1446
+ }; // TLS
1447
+
1448
+ /* test-expr */
1449
+ this.rules[33].opcodes = [];
1450
+ this.rules[33].opcodes[0] = {
1451
+ type: 2,
1452
+ children: [1, 5]
1453
+ }; // CAT
1454
+ this.rules[33].opcodes[1] = {
1455
+ type: 3,
1456
+ min: 0,
1457
+ max: 1
1458
+ }; // REP
1459
+ this.rules[33].opcodes[2] = {
1460
+ type: 2,
1461
+ children: [3, 4]
1462
+ }; // CAT
1463
+ this.rules[33].opcodes[3] = {
1464
+ type: 4,
1465
+ index: 32
1466
+ }; // RNM(logical-not-op)
1467
+ this.rules[33].opcodes[4] = {
1468
+ type: 4,
1469
+ index: 3
1470
+ }; // RNM(S)
1471
+ this.rules[33].opcodes[5] = {
1472
+ type: 1,
1473
+ children: [6, 7]
1474
+ }; // ALT
1475
+ this.rules[33].opcodes[6] = {
1476
+ type: 4,
1477
+ index: 34
1478
+ }; // RNM(filter-query)
1479
+ this.rules[33].opcodes[7] = {
1480
+ type: 4,
1481
+ index: 57
1482
+ }; // RNM(function-expr)
1483
+
1484
+ /* filter-query */
1485
+ this.rules[34].opcodes = [];
1486
+ this.rules[34].opcodes[0] = {
1487
+ type: 1,
1488
+ children: [1, 2]
1489
+ }; // ALT
1490
+ this.rules[34].opcodes[1] = {
1491
+ type: 4,
1492
+ index: 35
1493
+ }; // RNM(rel-query)
1494
+ this.rules[34].opcodes[2] = {
1495
+ type: 4,
1496
+ index: 0
1497
+ }; // RNM(jsonpath-query)
1498
+
1499
+ /* rel-query */
1500
+ this.rules[35].opcodes = [];
1501
+ this.rules[35].opcodes[0] = {
1502
+ type: 2,
1503
+ children: [1, 2]
1504
+ }; // CAT
1505
+ this.rules[35].opcodes[1] = {
1506
+ type: 4,
1507
+ index: 36
1508
+ }; // RNM(current-node-identifier)
1509
+ this.rules[35].opcodes[2] = {
1510
+ type: 4,
1511
+ index: 1
1512
+ }; // RNM(segments)
1513
+
1514
+ /* current-node-identifier */
1515
+ this.rules[36].opcodes = [];
1516
+ this.rules[36].opcodes[0] = {
1517
+ type: 7,
1518
+ string: [64]
1519
+ }; // TLS
1520
+
1521
+ /* comparison-expr */
1522
+ this.rules[37].opcodes = [];
1523
+ this.rules[37].opcodes[0] = {
1524
+ type: 2,
1525
+ children: [1, 2, 3, 4, 5]
1526
+ }; // CAT
1527
+ this.rules[37].opcodes[1] = {
1528
+ type: 4,
1529
+ index: 39
1530
+ }; // RNM(comparable)
1531
+ this.rules[37].opcodes[2] = {
1532
+ type: 4,
1533
+ index: 3
1534
+ }; // RNM(S)
1535
+ this.rules[37].opcodes[3] = {
1536
+ type: 4,
1537
+ index: 40
1538
+ }; // RNM(comparison-op)
1539
+ this.rules[37].opcodes[4] = {
1540
+ type: 4,
1541
+ index: 3
1542
+ }; // RNM(S)
1543
+ this.rules[37].opcodes[5] = {
1544
+ type: 4,
1545
+ index: 39
1546
+ }; // RNM(comparable)
1547
+
1548
+ /* literal */
1549
+ this.rules[38].opcodes = [];
1550
+ this.rules[38].opcodes[0] = {
1551
+ type: 1,
1552
+ children: [1, 2, 3, 4, 5]
1553
+ }; // ALT
1554
+ this.rules[38].opcodes[1] = {
1555
+ type: 4,
1556
+ index: 47
1557
+ }; // RNM(number)
1558
+ this.rules[38].opcodes[2] = {
1559
+ type: 4,
1560
+ index: 7
1561
+ }; // RNM(string-literal)
1562
+ this.rules[38].opcodes[3] = {
1563
+ type: 4,
1564
+ index: 50
1565
+ }; // RNM(true)
1566
+ this.rules[38].opcodes[4] = {
1567
+ type: 4,
1568
+ index: 51
1569
+ }; // RNM(false)
1570
+ this.rules[38].opcodes[5] = {
1571
+ type: 4,
1572
+ index: 52
1573
+ }; // RNM(null)
1574
+
1575
+ /* comparable */
1576
+ this.rules[39].opcodes = [];
1577
+ this.rules[39].opcodes[0] = {
1578
+ type: 1,
1579
+ children: [1, 2, 3]
1580
+ }; // ALT
1581
+ this.rules[39].opcodes[1] = {
1582
+ type: 4,
1583
+ index: 41
1584
+ }; // RNM(singular-query)
1585
+ this.rules[39].opcodes[2] = {
1586
+ type: 4,
1587
+ index: 57
1588
+ }; // RNM(function-expr)
1589
+ this.rules[39].opcodes[3] = {
1590
+ type: 4,
1591
+ index: 38
1592
+ }; // RNM(literal)
1593
+
1594
+ /* comparison-op */
1595
+ this.rules[40].opcodes = [];
1596
+ this.rules[40].opcodes[0] = {
1597
+ type: 1,
1598
+ children: [1, 2, 3, 4, 5, 6]
1599
+ }; // ALT
1600
+ this.rules[40].opcodes[1] = {
1601
+ type: 7,
1602
+ string: [61, 61]
1603
+ }; // TLS
1604
+ this.rules[40].opcodes[2] = {
1605
+ type: 7,
1606
+ string: [33, 61]
1607
+ }; // TLS
1608
+ this.rules[40].opcodes[3] = {
1609
+ type: 7,
1610
+ string: [60, 61]
1611
+ }; // TLS
1612
+ this.rules[40].opcodes[4] = {
1613
+ type: 7,
1614
+ string: [62, 61]
1615
+ }; // TLS
1616
+ this.rules[40].opcodes[5] = {
1617
+ type: 7,
1618
+ string: [60]
1619
+ }; // TLS
1620
+ this.rules[40].opcodes[6] = {
1621
+ type: 7,
1622
+ string: [62]
1623
+ }; // TLS
1624
+
1625
+ /* singular-query */
1626
+ this.rules[41].opcodes = [];
1627
+ this.rules[41].opcodes[0] = {
1628
+ type: 1,
1629
+ children: [1, 2]
1630
+ }; // ALT
1631
+ this.rules[41].opcodes[1] = {
1632
+ type: 4,
1633
+ index: 42
1634
+ }; // RNM(rel-singular-query)
1635
+ this.rules[41].opcodes[2] = {
1636
+ type: 4,
1637
+ index: 43
1638
+ }; // RNM(abs-singular-query)
1639
+
1640
+ /* rel-singular-query */
1641
+ this.rules[42].opcodes = [];
1642
+ this.rules[42].opcodes[0] = {
1643
+ type: 2,
1644
+ children: [1, 2]
1645
+ }; // CAT
1646
+ this.rules[42].opcodes[1] = {
1647
+ type: 4,
1648
+ index: 36
1649
+ }; // RNM(current-node-identifier)
1650
+ this.rules[42].opcodes[2] = {
1651
+ type: 4,
1652
+ index: 44
1653
+ }; // RNM(singular-query-segments)
1654
+
1655
+ /* abs-singular-query */
1656
+ this.rules[43].opcodes = [];
1657
+ this.rules[43].opcodes[0] = {
1658
+ type: 2,
1659
+ children: [1, 2]
1660
+ }; // CAT
1661
+ this.rules[43].opcodes[1] = {
1662
+ type: 4,
1663
+ index: 4
1664
+ }; // RNM(root-identifier)
1665
+ this.rules[43].opcodes[2] = {
1666
+ type: 4,
1667
+ index: 44
1668
+ }; // RNM(singular-query-segments)
1669
+
1670
+ /* singular-query-segments */
1671
+ this.rules[44].opcodes = [];
1672
+ this.rules[44].opcodes[0] = {
1673
+ type: 3,
1674
+ min: 0,
1675
+ max: Infinity
1676
+ }; // REP
1677
+ this.rules[44].opcodes[1] = {
1678
+ type: 2,
1679
+ children: [2, 3]
1680
+ }; // CAT
1681
+ this.rules[44].opcodes[2] = {
1682
+ type: 4,
1683
+ index: 3
1684
+ }; // RNM(S)
1685
+ this.rules[44].opcodes[3] = {
1686
+ type: 1,
1687
+ children: [4, 5]
1688
+ }; // ALT
1689
+ this.rules[44].opcodes[4] = {
1690
+ type: 4,
1691
+ index: 45
1692
+ }; // RNM(name-segment)
1693
+ this.rules[44].opcodes[5] = {
1694
+ type: 4,
1695
+ index: 46
1696
+ }; // RNM(index-segment)
1697
+
1698
+ /* name-segment */
1699
+ this.rules[45].opcodes = [];
1700
+ this.rules[45].opcodes[0] = {
1701
+ type: 1,
1702
+ children: [1, 5]
1703
+ }; // ALT
1704
+ this.rules[45].opcodes[1] = {
1705
+ type: 2,
1706
+ children: [2, 3, 4]
1707
+ }; // CAT
1708
+ this.rules[45].opcodes[2] = {
1709
+ type: 4,
1710
+ index: 80
1711
+ }; // RNM(left-bracket)
1712
+ this.rules[45].opcodes[3] = {
1713
+ type: 4,
1714
+ index: 6
1715
+ }; // RNM(name-selector)
1716
+ this.rules[45].opcodes[4] = {
1717
+ type: 4,
1718
+ index: 81
1719
+ }; // RNM(right-bracket)
1720
+ this.rules[45].opcodes[5] = {
1721
+ type: 2,
1722
+ children: [6, 7]
1723
+ }; // CAT
1724
+ this.rules[45].opcodes[6] = {
1725
+ type: 4,
1726
+ index: 78
1727
+ }; // RNM(dot-prefix)
1728
+ this.rules[45].opcodes[7] = {
1729
+ type: 4,
1730
+ index: 62
1731
+ }; // RNM(member-name-shorthand)
1732
+
1733
+ /* index-segment */
1734
+ this.rules[46].opcodes = [];
1735
+ this.rules[46].opcodes[0] = {
1736
+ type: 2,
1737
+ children: [1, 2, 3]
1738
+ }; // CAT
1739
+ this.rules[46].opcodes[1] = {
1740
+ type: 4,
1741
+ index: 80
1742
+ }; // RNM(left-bracket)
1743
+ this.rules[46].opcodes[2] = {
1744
+ type: 4,
1745
+ index: 19
1746
+ }; // RNM(index-selector)
1747
+ this.rules[46].opcodes[3] = {
1748
+ type: 4,
1749
+ index: 81
1750
+ }; // RNM(right-bracket)
1751
+
1752
+ /* number */
1753
+ this.rules[47].opcodes = [];
1754
+ this.rules[47].opcodes[0] = {
1755
+ type: 2,
1756
+ children: [1, 4, 6]
1757
+ }; // CAT
1758
+ this.rules[47].opcodes[1] = {
1759
+ type: 1,
1760
+ children: [2, 3]
1761
+ }; // ALT
1762
+ this.rules[47].opcodes[2] = {
1763
+ type: 4,
1764
+ index: 20
1765
+ }; // RNM(int)
1766
+ this.rules[47].opcodes[3] = {
1767
+ type: 7,
1768
+ string: [45, 48]
1769
+ }; // TLS
1770
+ this.rules[47].opcodes[4] = {
1771
+ type: 3,
1772
+ min: 0,
1773
+ max: 1
1774
+ }; // REP
1775
+ this.rules[47].opcodes[5] = {
1776
+ type: 4,
1777
+ index: 48
1778
+ }; // RNM(frac)
1779
+ this.rules[47].opcodes[6] = {
1780
+ type: 3,
1781
+ min: 0,
1782
+ max: 1
1783
+ }; // REP
1784
+ this.rules[47].opcodes[7] = {
1785
+ type: 4,
1786
+ index: 49
1787
+ }; // RNM(exp)
1788
+
1789
+ /* frac */
1790
+ this.rules[48].opcodes = [];
1791
+ this.rules[48].opcodes[0] = {
1792
+ type: 2,
1793
+ children: [1, 2]
1794
+ }; // CAT
1795
+ this.rules[48].opcodes[1] = {
1796
+ type: 7,
1797
+ string: [46]
1798
+ }; // TLS
1799
+ this.rules[48].opcodes[2] = {
1800
+ type: 3,
1801
+ min: 1,
1802
+ max: Infinity
1803
+ }; // REP
1804
+ this.rules[48].opcodes[3] = {
1805
+ type: 4,
1806
+ index: 65
1807
+ }; // RNM(DIGIT)
1808
+
1809
+ /* exp */
1810
+ this.rules[49].opcodes = [];
1811
+ this.rules[49].opcodes[0] = {
1812
+ type: 2,
1813
+ children: [1, 2, 6]
1814
+ }; // CAT
1815
+ this.rules[49].opcodes[1] = {
1816
+ type: 7,
1817
+ string: [101]
1818
+ }; // TLS
1819
+ this.rules[49].opcodes[2] = {
1820
+ type: 3,
1821
+ min: 0,
1822
+ max: 1
1823
+ }; // REP
1824
+ this.rules[49].opcodes[3] = {
1825
+ type: 1,
1826
+ children: [4, 5]
1827
+ }; // ALT
1828
+ this.rules[49].opcodes[4] = {
1829
+ type: 7,
1830
+ string: [45]
1831
+ }; // TLS
1832
+ this.rules[49].opcodes[5] = {
1833
+ type: 7,
1834
+ string: [43]
1835
+ }; // TLS
1836
+ this.rules[49].opcodes[6] = {
1837
+ type: 3,
1838
+ min: 1,
1839
+ max: Infinity
1840
+ }; // REP
1841
+ this.rules[49].opcodes[7] = {
1842
+ type: 4,
1843
+ index: 65
1844
+ }; // RNM(DIGIT)
1845
+
1846
+ /* true */
1847
+ this.rules[50].opcodes = [];
1848
+ this.rules[50].opcodes[0] = {
1849
+ type: 6,
1850
+ string: [116, 114, 117, 101]
1851
+ }; // TBS
1852
+
1853
+ /* false */
1854
+ this.rules[51].opcodes = [];
1855
+ this.rules[51].opcodes[0] = {
1856
+ type: 6,
1857
+ string: [102, 97, 108, 115, 101]
1858
+ }; // TBS
1859
+
1860
+ /* null */
1861
+ this.rules[52].opcodes = [];
1862
+ this.rules[52].opcodes[0] = {
1863
+ type: 6,
1864
+ string: [110, 117, 108, 108]
1865
+ }; // TBS
1866
+
1867
+ /* function-name */
1868
+ this.rules[53].opcodes = [];
1869
+ this.rules[53].opcodes[0] = {
1870
+ type: 2,
1871
+ children: [1, 2]
1872
+ }; // CAT
1873
+ this.rules[53].opcodes[1] = {
1874
+ type: 4,
1875
+ index: 54
1876
+ }; // RNM(function-name-first)
1877
+ this.rules[53].opcodes[2] = {
1878
+ type: 3,
1879
+ min: 0,
1880
+ max: Infinity
1881
+ }; // REP
1882
+ this.rules[53].opcodes[3] = {
1883
+ type: 4,
1884
+ index: 55
1885
+ }; // RNM(function-name-char)
1886
+
1887
+ /* function-name-first */
1888
+ this.rules[54].opcodes = [];
1889
+ this.rules[54].opcodes[0] = {
1890
+ type: 4,
1891
+ index: 56
1892
+ }; // RNM(LCALPHA)
1893
+
1894
+ /* function-name-char */
1895
+ this.rules[55].opcodes = [];
1896
+ this.rules[55].opcodes[0] = {
1897
+ type: 1,
1898
+ children: [1, 2, 3]
1899
+ }; // ALT
1900
+ this.rules[55].opcodes[1] = {
1901
+ type: 4,
1902
+ index: 54
1903
+ }; // RNM(function-name-first)
1904
+ this.rules[55].opcodes[2] = {
1905
+ type: 7,
1906
+ string: [95]
1907
+ }; // TLS
1908
+ this.rules[55].opcodes[3] = {
1909
+ type: 4,
1910
+ index: 65
1911
+ }; // RNM(DIGIT)
1912
+
1913
+ /* LCALPHA */
1914
+ this.rules[56].opcodes = [];
1915
+ this.rules[56].opcodes[0] = {
1916
+ type: 5,
1917
+ min: 97,
1918
+ max: 122
1919
+ }; // TRG
1920
+
1921
+ /* function-expr */
1922
+ this.rules[57].opcodes = [];
1923
+ this.rules[57].opcodes[0] = {
1924
+ type: 2,
1925
+ children: [1, 2, 3, 4, 13, 14]
1926
+ }; // CAT
1927
+ this.rules[57].opcodes[1] = {
1928
+ type: 4,
1929
+ index: 53
1930
+ }; // RNM(function-name)
1931
+ this.rules[57].opcodes[2] = {
1932
+ type: 4,
1933
+ index: 82
1934
+ }; // RNM(left-paren)
1935
+ this.rules[57].opcodes[3] = {
1936
+ type: 4,
1937
+ index: 3
1938
+ }; // RNM(S)
1939
+ this.rules[57].opcodes[4] = {
1940
+ type: 3,
1941
+ min: 0,
1942
+ max: 1
1943
+ }; // REP
1944
+ this.rules[57].opcodes[5] = {
1945
+ type: 2,
1946
+ children: [6, 7]
1947
+ }; // CAT
1948
+ this.rules[57].opcodes[6] = {
1949
+ type: 4,
1950
+ index: 58
1951
+ }; // RNM(function-argument)
1952
+ this.rules[57].opcodes[7] = {
1953
+ type: 3,
1954
+ min: 0,
1955
+ max: Infinity
1956
+ }; // REP
1957
+ this.rules[57].opcodes[8] = {
1958
+ type: 2,
1959
+ children: [9, 10, 11, 12]
1960
+ }; // CAT
1961
+ this.rules[57].opcodes[9] = {
1962
+ type: 4,
1963
+ index: 3
1964
+ }; // RNM(S)
1965
+ this.rules[57].opcodes[10] = {
1966
+ type: 4,
1967
+ index: 84
1968
+ }; // RNM(comma)
1969
+ this.rules[57].opcodes[11] = {
1970
+ type: 4,
1971
+ index: 3
1972
+ }; // RNM(S)
1973
+ this.rules[57].opcodes[12] = {
1974
+ type: 4,
1975
+ index: 58
1976
+ }; // RNM(function-argument)
1977
+ this.rules[57].opcodes[13] = {
1978
+ type: 4,
1979
+ index: 3
1980
+ }; // RNM(S)
1981
+ this.rules[57].opcodes[14] = {
1982
+ type: 4,
1983
+ index: 83
1984
+ }; // RNM(right-paren)
1985
+
1986
+ /* function-argument */
1987
+ this.rules[58].opcodes = [];
1988
+ this.rules[58].opcodes[0] = {
1989
+ type: 1,
1990
+ children: [1, 2, 3, 4]
1991
+ }; // ALT
1992
+ this.rules[58].opcodes[1] = {
1993
+ type: 4,
1994
+ index: 27
1995
+ }; // RNM(logical-expr)
1996
+ this.rules[58].opcodes[2] = {
1997
+ type: 4,
1998
+ index: 34
1999
+ }; // RNM(filter-query)
2000
+ this.rules[58].opcodes[3] = {
2001
+ type: 4,
2002
+ index: 57
2003
+ }; // RNM(function-expr)
2004
+ this.rules[58].opcodes[4] = {
2005
+ type: 4,
2006
+ index: 38
2007
+ }; // RNM(literal)
2008
+
2009
+ /* segment */
2010
+ this.rules[59].opcodes = [];
2011
+ this.rules[59].opcodes[0] = {
2012
+ type: 1,
2013
+ children: [1, 2]
2014
+ }; // ALT
2015
+ this.rules[59].opcodes[1] = {
2016
+ type: 4,
2017
+ index: 60
2018
+ }; // RNM(child-segment)
2019
+ this.rules[59].opcodes[2] = {
2020
+ type: 4,
2021
+ index: 67
2022
+ }; // RNM(descendant-segment)
2023
+
2024
+ /* child-segment */
2025
+ this.rules[60].opcodes = [];
2026
+ this.rules[60].opcodes[0] = {
2027
+ type: 1,
2028
+ children: [1, 2]
2029
+ }; // ALT
2030
+ this.rules[60].opcodes[1] = {
2031
+ type: 4,
2032
+ index: 61
2033
+ }; // RNM(bracketed-selection)
2034
+ this.rules[60].opcodes[2] = {
2035
+ type: 2,
2036
+ children: [3, 4]
2037
+ }; // CAT
2038
+ this.rules[60].opcodes[3] = {
2039
+ type: 4,
2040
+ index: 78
2041
+ }; // RNM(dot-prefix)
2042
+ this.rules[60].opcodes[4] = {
2043
+ type: 1,
2044
+ children: [5, 6]
2045
+ }; // ALT
2046
+ this.rules[60].opcodes[5] = {
2047
+ type: 4,
2048
+ index: 18
2049
+ }; // RNM(wildcard-selector)
2050
+ this.rules[60].opcodes[6] = {
2051
+ type: 4,
2052
+ index: 62
2053
+ }; // RNM(member-name-shorthand)
2054
+
2055
+ /* bracketed-selection */
2056
+ this.rules[61].opcodes = [];
2057
+ this.rules[61].opcodes[0] = {
2058
+ type: 2,
2059
+ children: [1, 2, 3, 4, 10, 11]
2060
+ }; // CAT
2061
+ this.rules[61].opcodes[1] = {
2062
+ type: 4,
2063
+ index: 80
2064
+ }; // RNM(left-bracket)
2065
+ this.rules[61].opcodes[2] = {
2066
+ type: 4,
2067
+ index: 3
2068
+ }; // RNM(S)
2069
+ this.rules[61].opcodes[3] = {
2070
+ type: 4,
2071
+ index: 5
2072
+ }; // RNM(selector)
2073
+ this.rules[61].opcodes[4] = {
2074
+ type: 3,
2075
+ min: 0,
2076
+ max: Infinity
2077
+ }; // REP
2078
+ this.rules[61].opcodes[5] = {
2079
+ type: 2,
2080
+ children: [6, 7, 8, 9]
2081
+ }; // CAT
2082
+ this.rules[61].opcodes[6] = {
2083
+ type: 4,
2084
+ index: 3
2085
+ }; // RNM(S)
2086
+ this.rules[61].opcodes[7] = {
2087
+ type: 4,
2088
+ index: 84
2089
+ }; // RNM(comma)
2090
+ this.rules[61].opcodes[8] = {
2091
+ type: 4,
2092
+ index: 3
2093
+ }; // RNM(S)
2094
+ this.rules[61].opcodes[9] = {
2095
+ type: 4,
2096
+ index: 5
2097
+ }; // RNM(selector)
2098
+ this.rules[61].opcodes[10] = {
2099
+ type: 4,
2100
+ index: 3
2101
+ }; // RNM(S)
2102
+ this.rules[61].opcodes[11] = {
2103
+ type: 4,
2104
+ index: 81
2105
+ }; // RNM(right-bracket)
2106
+
2107
+ /* member-name-shorthand */
2108
+ this.rules[62].opcodes = [];
2109
+ this.rules[62].opcodes[0] = {
2110
+ type: 2,
2111
+ children: [1, 2]
2112
+ }; // CAT
2113
+ this.rules[62].opcodes[1] = {
2114
+ type: 4,
2115
+ index: 63
2116
+ }; // RNM(name-first)
2117
+ this.rules[62].opcodes[2] = {
2118
+ type: 3,
2119
+ min: 0,
2120
+ max: Infinity
2121
+ }; // REP
2122
+ this.rules[62].opcodes[3] = {
2123
+ type: 4,
2124
+ index: 64
2125
+ }; // RNM(name-char)
2126
+
2127
+ /* name-first */
2128
+ this.rules[63].opcodes = [];
2129
+ this.rules[63].opcodes[0] = {
2130
+ type: 1,
2131
+ children: [1, 2, 3, 4]
2132
+ }; // ALT
2133
+ this.rules[63].opcodes[1] = {
2134
+ type: 4,
2135
+ index: 66
2136
+ }; // RNM(ALPHA)
2137
+ this.rules[63].opcodes[2] = {
2138
+ type: 7,
2139
+ string: [95]
2140
+ }; // TLS
2141
+ this.rules[63].opcodes[3] = {
2142
+ type: 5,
2143
+ min: 128,
2144
+ max: 55295
2145
+ }; // TRG
2146
+ this.rules[63].opcodes[4] = {
2147
+ type: 5,
2148
+ min: 57344,
2149
+ max: 1114111
2150
+ }; // TRG
2151
+
2152
+ /* name-char */
2153
+ this.rules[64].opcodes = [];
2154
+ this.rules[64].opcodes[0] = {
2155
+ type: 1,
2156
+ children: [1, 2]
2157
+ }; // ALT
2158
+ this.rules[64].opcodes[1] = {
2159
+ type: 4,
2160
+ index: 63
2161
+ }; // RNM(name-first)
2162
+ this.rules[64].opcodes[2] = {
2163
+ type: 4,
2164
+ index: 65
2165
+ }; // RNM(DIGIT)
2166
+
2167
+ /* DIGIT */
2168
+ this.rules[65].opcodes = [];
2169
+ this.rules[65].opcodes[0] = {
2170
+ type: 5,
2171
+ min: 48,
2172
+ max: 57
2173
+ }; // TRG
2174
+
2175
+ /* ALPHA */
2176
+ this.rules[66].opcodes = [];
2177
+ this.rules[66].opcodes[0] = {
2178
+ type: 1,
2179
+ children: [1, 2]
2180
+ }; // ALT
2181
+ this.rules[66].opcodes[1] = {
2182
+ type: 5,
2183
+ min: 65,
2184
+ max: 90
2185
+ }; // TRG
2186
+ this.rules[66].opcodes[2] = {
2187
+ type: 5,
2188
+ min: 97,
2189
+ max: 122
2190
+ }; // TRG
2191
+
2192
+ /* descendant-segment */
2193
+ this.rules[67].opcodes = [];
2194
+ this.rules[67].opcodes[0] = {
2195
+ type: 2,
2196
+ children: [1, 2]
2197
+ }; // CAT
2198
+ this.rules[67].opcodes[1] = {
2199
+ type: 4,
2200
+ index: 79
2201
+ }; // RNM(double-dot-prefix)
2202
+ this.rules[67].opcodes[2] = {
2203
+ type: 1,
2204
+ children: [3, 4, 5]
2205
+ }; // ALT
2206
+ this.rules[67].opcodes[3] = {
2207
+ type: 4,
2208
+ index: 61
2209
+ }; // RNM(bracketed-selection)
2210
+ this.rules[67].opcodes[4] = {
2211
+ type: 4,
2212
+ index: 18
2213
+ }; // RNM(wildcard-selector)
2214
+ this.rules[67].opcodes[5] = {
2215
+ type: 4,
2216
+ index: 62
2217
+ }; // RNM(member-name-shorthand)
2218
+
2219
+ /* normalized-path */
2220
+ this.rules[68].opcodes = [];
2221
+ this.rules[68].opcodes[0] = {
2222
+ type: 2,
2223
+ children: [1, 2]
2224
+ }; // CAT
2225
+ this.rules[68].opcodes[1] = {
2226
+ type: 4,
2227
+ index: 4
2228
+ }; // RNM(root-identifier)
2229
+ this.rules[68].opcodes[2] = {
2230
+ type: 3,
2231
+ min: 0,
2232
+ max: Infinity
2233
+ }; // REP
2234
+ this.rules[68].opcodes[3] = {
2235
+ type: 4,
2236
+ index: 69
2237
+ }; // RNM(normal-index-segment)
2238
+
2239
+ /* normal-index-segment */
2240
+ this.rules[69].opcodes = [];
2241
+ this.rules[69].opcodes[0] = {
2242
+ type: 2,
2243
+ children: [1, 2, 3]
2244
+ }; // CAT
2245
+ this.rules[69].opcodes[1] = {
2246
+ type: 4,
2247
+ index: 80
2248
+ }; // RNM(left-bracket)
2249
+ this.rules[69].opcodes[2] = {
2250
+ type: 4,
2251
+ index: 70
2252
+ }; // RNM(normal-selector)
2253
+ this.rules[69].opcodes[3] = {
2254
+ type: 4,
2255
+ index: 81
2256
+ }; // RNM(right-bracket)
2257
+
2258
+ /* normal-selector */
2259
+ this.rules[70].opcodes = [];
2260
+ this.rules[70].opcodes[0] = {
2261
+ type: 1,
2262
+ children: [1, 2]
2263
+ }; // ALT
2264
+ this.rules[70].opcodes[1] = {
2265
+ type: 4,
2266
+ index: 71
2267
+ }; // RNM(normal-name-selector)
2268
+ this.rules[70].opcodes[2] = {
2269
+ type: 4,
2270
+ index: 77
2271
+ }; // RNM(normal-index-selector)
2272
+
2273
+ /* normal-name-selector */
2274
+ this.rules[71].opcodes = [];
2275
+ this.rules[71].opcodes[0] = {
2276
+ type: 2,
2277
+ children: [1, 2, 4]
2278
+ }; // CAT
2279
+ this.rules[71].opcodes[1] = {
2280
+ type: 4,
2281
+ index: 87
2282
+ }; // RNM(squote)
2283
+ this.rules[71].opcodes[2] = {
2284
+ type: 3,
2285
+ min: 0,
2286
+ max: Infinity
2287
+ }; // REP
2288
+ this.rules[71].opcodes[3] = {
2289
+ type: 4,
2290
+ index: 72
2291
+ }; // RNM(normal-single-quoted)
2292
+ this.rules[71].opcodes[4] = {
2293
+ type: 4,
2294
+ index: 87
2295
+ }; // RNM(squote)
2296
+
2297
+ /* normal-single-quoted */
2298
+ this.rules[72].opcodes = [];
2299
+ this.rules[72].opcodes[0] = {
2300
+ type: 1,
2301
+ children: [1, 2]
2302
+ }; // ALT
2303
+ this.rules[72].opcodes[1] = {
2304
+ type: 4,
2305
+ index: 73
2306
+ }; // RNM(normal-unescaped)
2307
+ this.rules[72].opcodes[2] = {
2308
+ type: 2,
2309
+ children: [3, 4]
2310
+ }; // CAT
2311
+ this.rules[72].opcodes[3] = {
2312
+ type: 4,
2313
+ index: 10
2314
+ }; // RNM(ESC)
2315
+ this.rules[72].opcodes[4] = {
2316
+ type: 4,
2317
+ index: 74
2318
+ }; // RNM(normal-escapable)
2319
+
2320
+ /* normal-unescaped */
2321
+ this.rules[73].opcodes = [];
2322
+ this.rules[73].opcodes[0] = {
2323
+ type: 1,
2324
+ children: [1, 2, 3, 4]
2325
+ }; // ALT
2326
+ this.rules[73].opcodes[1] = {
2327
+ type: 5,
2328
+ min: 32,
2329
+ max: 38
2330
+ }; // TRG
2331
+ this.rules[73].opcodes[2] = {
2332
+ type: 5,
2333
+ min: 40,
2334
+ max: 91
2335
+ }; // TRG
2336
+ this.rules[73].opcodes[3] = {
2337
+ type: 5,
2338
+ min: 93,
2339
+ max: 55295
2340
+ }; // TRG
2341
+ this.rules[73].opcodes[4] = {
2342
+ type: 5,
2343
+ min: 57344,
2344
+ max: 1114111
2345
+ }; // TRG
2346
+
2347
+ /* normal-escapable */
2348
+ this.rules[74].opcodes = [];
2349
+ this.rules[74].opcodes[0] = {
2350
+ type: 1,
2351
+ children: [1, 2, 3, 4, 5, 6, 7, 8]
2352
+ }; // ALT
2353
+ this.rules[74].opcodes[1] = {
2354
+ type: 6,
2355
+ string: [98]
2356
+ }; // TBS
2357
+ this.rules[74].opcodes[2] = {
2358
+ type: 6,
2359
+ string: [102]
2360
+ }; // TBS
2361
+ this.rules[74].opcodes[3] = {
2362
+ type: 6,
2363
+ string: [110]
2364
+ }; // TBS
2365
+ this.rules[74].opcodes[4] = {
2366
+ type: 6,
2367
+ string: [114]
2368
+ }; // TBS
2369
+ this.rules[74].opcodes[5] = {
2370
+ type: 6,
2371
+ string: [116]
2372
+ }; // TBS
2373
+ this.rules[74].opcodes[6] = {
2374
+ type: 7,
2375
+ string: [39]
2376
+ }; // TLS
2377
+ this.rules[74].opcodes[7] = {
2378
+ type: 7,
2379
+ string: [92]
2380
+ }; // TLS
2381
+ this.rules[74].opcodes[8] = {
2382
+ type: 2,
2383
+ children: [9, 10]
2384
+ }; // CAT
2385
+ this.rules[74].opcodes[9] = {
2386
+ type: 6,
2387
+ string: [117]
2388
+ }; // TBS
2389
+ this.rules[74].opcodes[10] = {
2390
+ type: 4,
2391
+ index: 75
2392
+ }; // RNM(normal-hexchar)
2393
+
2394
+ /* normal-hexchar */
2395
+ this.rules[75].opcodes = [];
2396
+ this.rules[75].opcodes[0] = {
2397
+ type: 2,
2398
+ children: [1, 2, 3]
2399
+ }; // CAT
2400
+ this.rules[75].opcodes[1] = {
2401
+ type: 7,
2402
+ string: [48]
2403
+ }; // TLS
2404
+ this.rules[75].opcodes[2] = {
2405
+ type: 7,
2406
+ string: [48]
2407
+ }; // TLS
2408
+ this.rules[75].opcodes[3] = {
2409
+ type: 1,
2410
+ children: [4, 7, 10, 13]
2411
+ }; // ALT
2412
+ this.rules[75].opcodes[4] = {
2413
+ type: 2,
2414
+ children: [5, 6]
2415
+ }; // CAT
2416
+ this.rules[75].opcodes[5] = {
2417
+ type: 7,
2418
+ string: [48]
2419
+ }; // TLS
2420
+ this.rules[75].opcodes[6] = {
2421
+ type: 5,
2422
+ min: 48,
2423
+ max: 55
2424
+ }; // TRG
2425
+ this.rules[75].opcodes[7] = {
2426
+ type: 2,
2427
+ children: [8, 9]
2428
+ }; // CAT
2429
+ this.rules[75].opcodes[8] = {
2430
+ type: 7,
2431
+ string: [48]
2432
+ }; // TLS
2433
+ this.rules[75].opcodes[9] = {
2434
+ type: 6,
2435
+ string: [98]
2436
+ }; // TBS
2437
+ this.rules[75].opcodes[10] = {
2438
+ type: 2,
2439
+ children: [11, 12]
2440
+ }; // CAT
2441
+ this.rules[75].opcodes[11] = {
2442
+ type: 7,
2443
+ string: [48]
2444
+ }; // TLS
2445
+ this.rules[75].opcodes[12] = {
2446
+ type: 5,
2447
+ min: 101,
2448
+ max: 102
2449
+ }; // TRG
2450
+ this.rules[75].opcodes[13] = {
2451
+ type: 2,
2452
+ children: [14, 15]
2453
+ }; // CAT
2454
+ this.rules[75].opcodes[14] = {
2455
+ type: 7,
2456
+ string: [49]
2457
+ }; // TLS
2458
+ this.rules[75].opcodes[15] = {
2459
+ type: 4,
2460
+ index: 76
2461
+ }; // RNM(normal-HEXDIG)
2462
+
2463
+ /* normal-HEXDIG */
2464
+ this.rules[76].opcodes = [];
2465
+ this.rules[76].opcodes[0] = {
2466
+ type: 1,
2467
+ children: [1, 2]
2468
+ }; // ALT
2469
+ this.rules[76].opcodes[1] = {
2470
+ type: 4,
2471
+ index: 65
2472
+ }; // RNM(DIGIT)
2473
+ this.rules[76].opcodes[2] = {
2474
+ type: 5,
2475
+ min: 97,
2476
+ max: 102
2477
+ }; // TRG
2478
+
2479
+ /* normal-index-selector */
2480
+ this.rules[77].opcodes = [];
2481
+ this.rules[77].opcodes[0] = {
2482
+ type: 1,
2483
+ children: [1, 2]
2484
+ }; // ALT
2485
+ this.rules[77].opcodes[1] = {
2486
+ type: 7,
2487
+ string: [48]
2488
+ }; // TLS
2489
+ this.rules[77].opcodes[2] = {
2490
+ type: 2,
2491
+ children: [3, 4]
2492
+ }; // CAT
2493
+ this.rules[77].opcodes[3] = {
2494
+ type: 4,
2495
+ index: 21
2496
+ }; // RNM(DIGIT1)
2497
+ this.rules[77].opcodes[4] = {
2498
+ type: 3,
2499
+ min: 0,
2500
+ max: Infinity
2501
+ }; // REP
2502
+ this.rules[77].opcodes[5] = {
2503
+ type: 4,
2504
+ index: 65
2505
+ }; // RNM(DIGIT)
2506
+
2507
+ /* dot-prefix */
2508
+ this.rules[78].opcodes = [];
2509
+ this.rules[78].opcodes[0] = {
2510
+ type: 7,
2511
+ string: [46]
2512
+ }; // TLS
2513
+
2514
+ /* double-dot-prefix */
2515
+ this.rules[79].opcodes = [];
2516
+ this.rules[79].opcodes[0] = {
2517
+ type: 7,
2518
+ string: [46, 46]
2519
+ }; // TLS
2520
+
2521
+ /* left-bracket */
2522
+ this.rules[80].opcodes = [];
2523
+ this.rules[80].opcodes[0] = {
2524
+ type: 7,
2525
+ string: [91]
2526
+ }; // TLS
2527
+
2528
+ /* right-bracket */
2529
+ this.rules[81].opcodes = [];
2530
+ this.rules[81].opcodes[0] = {
2531
+ type: 7,
2532
+ string: [93]
2533
+ }; // TLS
2534
+
2535
+ /* left-paren */
2536
+ this.rules[82].opcodes = [];
2537
+ this.rules[82].opcodes[0] = {
2538
+ type: 7,
2539
+ string: [40]
2540
+ }; // TLS
2541
+
2542
+ /* right-paren */
2543
+ this.rules[83].opcodes = [];
2544
+ this.rules[83].opcodes[0] = {
2545
+ type: 7,
2546
+ string: [41]
2547
+ }; // TLS
2548
+
2549
+ /* comma */
2550
+ this.rules[84].opcodes = [];
2551
+ this.rules[84].opcodes[0] = {
2552
+ type: 7,
2553
+ string: [44]
2554
+ }; // TLS
2555
+
2556
+ /* colon */
2557
+ this.rules[85].opcodes = [];
2558
+ this.rules[85].opcodes[0] = {
2559
+ type: 7,
2560
+ string: [58]
2561
+ }; // TLS
2562
+
2563
+ /* dquote */
2564
+ this.rules[86].opcodes = [];
2565
+ this.rules[86].opcodes[0] = {
2566
+ type: 6,
2567
+ string: [34]
2568
+ }; // TBS
2569
+
2570
+ /* squote */
2571
+ this.rules[87].opcodes = [];
2572
+ this.rules[87].opcodes[0] = {
2573
+ type: 6,
2574
+ string: [39]
2575
+ }; // TBS
2576
+
2577
+ /* questionmark */
2578
+ this.rules[88].opcodes = [];
2579
+ this.rules[88].opcodes[0] = {
2580
+ type: 7,
2581
+ string: [63]
2582
+ }; // TLS
2583
+
2584
+ /* disjunction */
2585
+ this.rules[89].opcodes = [];
2586
+ this.rules[89].opcodes[0] = {
2587
+ type: 7,
2588
+ string: [124, 124]
2589
+ }; // TLS
2590
+
2591
+ /* conjunction */
2592
+ this.rules[90].opcodes = [];
2593
+ this.rules[90].opcodes[0] = {
2594
+ type: 7,
2595
+ string: [38, 38]
2596
+ }; // TLS
2597
+
2598
+ // The `toString()` function will display the original grammar file(s) that produced these opcodes.
2599
+ this.toString = function toString() {
2600
+ let str = "";
2601
+ str += "; JSONPath: Query Expressions for JSON\n";
2602
+ str += "; https://www.rfc-editor.org/rfc/rfc9535\n";
2603
+ str += "\n";
2604
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.1.1\n";
2605
+ str += "jsonpath-query = root-identifier segments\n";
2606
+ str += "segments = *(S segment)\n";
2607
+ str += "\n";
2608
+ str += "B = %x20 / ; Space\n";
2609
+ str += " %x09 / ; Horizontal tab\n";
2610
+ str += " %x0A / ; Line feed or New line\n";
2611
+ str += " %x0D ; Carriage return\n";
2612
+ str += "S = *B ; optional blank space\n";
2613
+ str += "\n";
2614
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.2.1\n";
2615
+ str += "root-identifier = \"$\"\n";
2616
+ str += "\n";
2617
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3\n";
2618
+ str += "selector = name-selector /\n";
2619
+ str += " wildcard-selector /\n";
2620
+ str += " slice-selector /\n";
2621
+ str += " index-selector /\n";
2622
+ str += " filter-selector\n";
2623
+ str += "\n";
2624
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.1.1\n";
2625
+ str += "name-selector = string-literal\n";
2626
+ str += "\n";
2627
+ str += "string-literal = dquote *double-quoted dquote / ; \"string\", MODIFICATION: surrogate text rule used\n";
2628
+ str += " squote *single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n";
2629
+ str += "\n";
2630
+ str += "double-quoted = unescaped /\n";
2631
+ str += " %x27 / ; '\n";
2632
+ str += " ESC %x22 / ; \\\"\n";
2633
+ str += " ESC escapable\n";
2634
+ str += "\n";
2635
+ str += "single-quoted = unescaped /\n";
2636
+ str += " %x22 / ; \"\n";
2637
+ str += " ESC %x27 / ; \\'\n";
2638
+ str += " ESC escapable\n";
2639
+ str += "\n";
2640
+ str += "ESC = %x5C ; \\ backslash\n";
2641
+ str += "\n";
2642
+ str += "unescaped = %x20-21 / ; see RFC 8259\n";
2643
+ str += " ; omit 0x22 \"\n";
2644
+ str += " %x23-26 /\n";
2645
+ str += " ; omit 0x27 '\n";
2646
+ str += " %x28-5B /\n";
2647
+ str += " ; omit 0x5C \\\n";
2648
+ str += " %x5D-D7FF /\n";
2649
+ str += " ; skip surrogate code points\n";
2650
+ str += " %xE000-10FFFF\n";
2651
+ str += "\n";
2652
+ str += "escapable = %x62 / ; b BS backspace U+0008\n";
2653
+ str += " %x66 / ; f FF form feed U+000C\n";
2654
+ str += " %x6E / ; n LF line feed U+000A\n";
2655
+ str += " %x72 / ; r CR carriage return U+000D\n";
2656
+ str += " %x74 / ; t HT horizontal tab U+0009\n";
2657
+ str += " \"/\" / ; / slash (solidus) U+002F\n";
2658
+ str += " \"\\\" / ; \\ backslash (reverse solidus) U+005C\n";
2659
+ str += " (%x75 hexchar) ; uXXXX U+XXXX\n";
2660
+ str += "\n";
2661
+ str += "hexchar = non-surrogate /\n";
2662
+ str += " (high-surrogate \"\\\" %x75 low-surrogate)\n";
2663
+ str += "non-surrogate = ((DIGIT / \"A\"/\"B\"/\"C\" / \"E\"/\"F\") 3HEXDIG) /\n";
2664
+ str += " (\"D\" %x30-37 2HEXDIG )\n";
2665
+ str += "high-surrogate = \"D\" (\"8\"/\"9\"/\"A\"/\"B\") 2HEXDIG\n";
2666
+ str += "low-surrogate = \"D\" (\"C\"/\"D\"/\"E\"/\"F\") 2HEXDIG\n";
2667
+ str += "\n";
2668
+ str += "HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n";
2669
+ str += "\n";
2670
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.2.1\n";
2671
+ str += "wildcard-selector = \"*\"\n";
2672
+ str += "\n";
2673
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.3.1\n";
2674
+ str += "index-selector = int ; decimal integer\n";
2675
+ str += "\n";
2676
+ str += "int = \"0\" /\n";
2677
+ str += " ([\"-\"] DIGIT1 *DIGIT) ; - optional\n";
2678
+ str += "DIGIT1 = %x31-39 ; 1-9 non-zero digit\n";
2679
+ str += "\n";
2680
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.4.1\n";
2681
+ str += "slice-selector = [start S] colon S [end S] [colon [S step ]] ; MODIFICATION: surrogate text rule used\n";
2682
+ str += "\n";
2683
+ str += "start = int ; included in selection\n";
2684
+ str += "end = int ; not included in selection\n";
2685
+ str += "step = int ; default: 1\n";
2686
+ str += "\n";
2687
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.5.1\n";
2688
+ str += "filter-selector = questionmark S logical-expr ; MODIFICATION: surrogate text rule used\n";
2689
+ str += "\n";
2690
+ str += "logical-expr = logical-or-expr\n";
2691
+ str += "logical-or-expr = logical-and-expr *(S disjunction S logical-and-expr) ; MODIFICATION: surrogate text rule used\n";
2692
+ str += " ; disjunction\n";
2693
+ str += " ; binds less tightly than conjunction\n";
2694
+ str += "logical-and-expr = basic-expr *(S conjunction S basic-expr) ; MODIFICATION: surrogate text rule used\n";
2695
+ str += " ; conjunction\n";
2696
+ str += " ; binds more tightly than disjunction\n";
2697
+ str += "\n";
2698
+ str += "basic-expr = paren-expr /\n";
2699
+ str += " comparison-expr /\n";
2700
+ str += " test-expr\n";
2701
+ str += "\n";
2702
+ str += "paren-expr = [logical-not-op S] left-paren S logical-expr S right-paren ; MODIFICATION: surrogate text rule used\n";
2703
+ str += " ; parenthesized expression\n";
2704
+ str += "logical-not-op = \"!\" ; logical NOT operator\n";
2705
+ str += "\n";
2706
+ str += "test-expr = [logical-not-op S]\n";
2707
+ str += " (filter-query / ; existence/non-existence\n";
2708
+ str += " function-expr) ; LogicalType or NodesType\n";
2709
+ str += "filter-query = rel-query / jsonpath-query\n";
2710
+ str += "rel-query = current-node-identifier segments\n";
2711
+ str += "current-node-identifier = \"@\"\n";
2712
+ str += "\n";
2713
+ str += "comparison-expr = comparable S comparison-op S comparable\n";
2714
+ str += "literal = number / string-literal /\n";
2715
+ str += " true / false / null\n";
2716
+ str += "comparable = singular-query / ; singular query value\n";
2717
+ str += " function-expr / ; ValueType\n";
2718
+ str += " literal\n";
2719
+ str += " ; MODIFICATION: https://www.rfc-editor.org/errata/eid8352\n";
2720
+ str += "comparison-op = \"==\" / \"!=\" /\n";
2721
+ str += " \"<=\" / \">=\" /\n";
2722
+ str += " \"<\" / \">\"\n";
2723
+ str += "\n";
2724
+ str += "singular-query = rel-singular-query / abs-singular-query\n";
2725
+ str += "rel-singular-query = current-node-identifier singular-query-segments\n";
2726
+ str += "abs-singular-query = root-identifier singular-query-segments\n";
2727
+ str += "singular-query-segments = *(S (name-segment / index-segment))\n";
2728
+ str += "name-segment = (left-bracket name-selector right-bracket) / ; MODIFICATION: surrogate text rule used\n";
2729
+ str += " (dot-prefix member-name-shorthand) ; MODIFICATION: surrogate text rule used\n";
2730
+ str += "index-segment = left-bracket index-selector right-bracket ; MODIFICATION: surrogate text rule used\n";
2731
+ str += "\n";
2732
+ str += "number = (int / \"-0\") [ frac ] [ exp ] ; decimal number\n";
2733
+ str += "frac = \".\" 1*DIGIT ; decimal fraction\n";
2734
+ str += "exp = \"e\" [ \"-\" / \"+\" ] 1*DIGIT ; decimal exponent\n";
2735
+ str += "true = %x74.72.75.65 ; true\n";
2736
+ str += "false = %x66.61.6c.73.65 ; false\n";
2737
+ str += "null = %x6e.75.6c.6c ; null\n";
2738
+ str += "\n";
2739
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.4\n";
2740
+ str += "function-name = function-name-first *function-name-char\n";
2741
+ str += "function-name-first = LCALPHA\n";
2742
+ str += "function-name-char = function-name-first / \"_\" / DIGIT\n";
2743
+ str += "LCALPHA = %x61-7A ; \"a\"..\"z\"\n";
2744
+ str += "\n";
2745
+ str += "function-expr = function-name left-paren S [function-argument ; MODIFICATION: surrogate text rule used\n";
2746
+ str += " *(S comma S function-argument)] S right-paren ; MODIFICATION: surrogate text rule used\n";
2747
+ str += "function-argument = logical-expr / ; MODIFICATION: https://www.rfc-editor.org/errata/eid8343\n";
2748
+ str += " filter-query / ; (includes singular-query)\n";
2749
+ str += " function-expr /\n";
2750
+ str += " literal\n";
2751
+ str += "\n";
2752
+ str += "\n";
2753
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.5\n";
2754
+ str += "segment = child-segment / descendant-segment\n";
2755
+ str += "\n";
2756
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.1.1\n";
2757
+ str += "child-segment = bracketed-selection /\n";
2758
+ str += " (dot-prefix ; MODIFICATION: surrogate text rule used\n";
2759
+ str += " (wildcard-selector /\n";
2760
+ str += " member-name-shorthand))\n";
2761
+ str += "\n";
2762
+ str += "bracketed-selection = left-bracket S selector *(S comma S selector) S right-bracket\n";
2763
+ str += " ; MODIFICATION: surrogate text rule used\n";
2764
+ str += "\n";
2765
+ str += "member-name-shorthand = name-first *name-char\n";
2766
+ str += "name-first = ALPHA /\n";
2767
+ str += " \"_\" /\n";
2768
+ str += " %x80-D7FF /\n";
2769
+ str += " ; skip surrogate code points\n";
2770
+ str += " %xE000-10FFFF\n";
2771
+ str += "name-char = name-first / DIGIT\n";
2772
+ str += "\n";
2773
+ str += "DIGIT = %x30-39 ; 0-9\n";
2774
+ str += "ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n";
2775
+ str += "\n";
2776
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.2.1\n";
2777
+ str += "descendant-segment = double-dot-prefix (bracketed-selection / ; MODIFICATION: surrogate text rule used\n";
2778
+ str += " wildcard-selector /\n";
2779
+ str += " member-name-shorthand)\n";
2780
+ str += "\n";
2781
+ str += "; https://www.rfc-editor.org/rfc/rfc9535#name-normalized-paths\n";
2782
+ str += "normalized-path = root-identifier *(normal-index-segment)\n";
2783
+ str += "normal-index-segment = left-bracket normal-selector right-bracket ; MODIFICATION: surrogate text rule used\n";
2784
+ str += "normal-selector = normal-name-selector / normal-index-selector\n";
2785
+ str += "normal-name-selector = squote *normal-single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n";
2786
+ str += "normal-single-quoted = normal-unescaped /\n";
2787
+ str += " ESC normal-escapable\n";
2788
+ str += "normal-unescaped = ; omit %x0-1F control codes\n";
2789
+ str += " %x20-26 /\n";
2790
+ str += " ; omit 0x27 '\n";
2791
+ str += " %x28-5B /\n";
2792
+ str += " ; omit 0x5C \\\n";
2793
+ str += " %x5D-D7FF /\n";
2794
+ str += " ; skip surrogate code points\n";
2795
+ str += " %xE000-10FFFF\n";
2796
+ str += "\n";
2797
+ str += "normal-escapable = %x62 / ; b BS backspace U+0008\n";
2798
+ str += " %x66 / ; f FF form feed U+000C\n";
2799
+ str += " %x6E / ; n LF line feed U+000A\n";
2800
+ str += " %x72 / ; r CR carriage return U+000D\n";
2801
+ str += " %x74 / ; t HT horizontal tab U+0009\n";
2802
+ str += " \"'\" / ; ' apostrophe U+0027\n";
2803
+ str += " \"\\\" / ; \\ backslash (reverse solidus) U+005C\n";
2804
+ str += " (%x75 normal-hexchar)\n";
2805
+ str += " ; certain values u00xx U+00XX\n";
2806
+ str += "normal-hexchar = \"0\" \"0\"\n";
2807
+ str += " (\n";
2808
+ str += " (\"0\" %x30-37) / ; \"00\"-\"07\"\n";
2809
+ str += " ; omit U+0008-U+000A BS HT LF\n";
2810
+ str += " (\"0\" %x62) / ; \"0b\"\n";
2811
+ str += " ; omit U+000C-U+000D FF CR\n";
2812
+ str += " (\"0\" %x65-66) / ; \"0e\"-\"0f\"\n";
2813
+ str += " (\"1\" normal-HEXDIG)\n";
2814
+ str += " )\n";
2815
+ str += "normal-HEXDIG = DIGIT / %x61-66 ; \"0\"-\"9\", \"a\"-\"f\"\n";
2816
+ str += "normal-index-selector = \"0\" / (DIGIT1 *DIGIT)\n";
2817
+ str += " ; non-negative decimal integer\n";
2818
+ str += "\n";
2819
+ str += "; Surrogate named rules\n";
2820
+ str += "dot-prefix = \".\"\n";
2821
+ str += "double-dot-prefix = \"..\"\n";
2822
+ str += "left-bracket = \"[\"\n";
2823
+ str += "right-bracket = \"]\"\n";
2824
+ str += "left-paren = \"(\"\n";
2825
+ str += "right-paren = \")\"\n";
2826
+ str += "comma = \",\"\n";
2827
+ str += "colon = \":\"\n";
2828
+ str += "dquote = %x22 ; \"\n";
2829
+ str += "squote = %x27 ; '\n";
2830
+ str += "questionmark = \"?\"\n";
2831
+ str += "disjunction = \"||\"\n";
2832
+ str += "conjunction = \"&&\"\n";
2833
+ return str;
2834
+ };
2835
+ }