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