@swaggerexpert/arazzo-runtime-expression 1.0.1 → 2.0.1

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 (57) hide show
  1. package/README.md +156 -76
  2. package/SECURITY.md +2 -1
  3. package/cjs/apg-lite.cjs +28 -28
  4. package/cjs/errors/ArazzoRuntimeExpressionError.cjs +44 -0
  5. package/cjs/errors/ArazzoRuntimeExpressionParseError.cjs +8 -0
  6. package/cjs/extract.cjs +35 -9
  7. package/cjs/{runtime-expression.cjs → grammar.cjs} +828 -286
  8. package/cjs/index.cjs +17 -5
  9. package/cjs/parse/callbacks/cst.cjs +28 -0
  10. package/cjs/parse/index.cjs +31 -32
  11. package/cjs/parse/trace/Expectations.cjs +10 -0
  12. package/cjs/parse/trace/Trace.cjs +35 -0
  13. package/cjs/parse/translators/ASTTranslator/index.cjs +15 -0
  14. package/cjs/parse/translators/ASTTranslator/transformers.cjs +225 -0
  15. package/cjs/parse/translators/CSTTranslator.cjs +55 -0
  16. package/cjs/parse/translators/XMLTranslator.cjs +12 -0
  17. package/cjs/test/index.cjs +18 -0
  18. package/es/errors/ArazzoRuntimeExpressionError.mjs +40 -0
  19. package/es/errors/ArazzoRuntimeExpressionParseError.mjs +3 -0
  20. package/es/extract.mjs +34 -9
  21. package/es/{runtime-expression.mjs → grammar.mjs} +828 -286
  22. package/es/index.mjs +9 -3
  23. package/es/parse/callbacks/cst.mjs +24 -0
  24. package/es/parse/index.mjs +31 -32
  25. package/es/parse/trace/Expectations.mjs +6 -0
  26. package/es/parse/trace/Trace.mjs +30 -0
  27. package/es/parse/translators/ASTTranslator/index.mjs +9 -0
  28. package/es/parse/translators/ASTTranslator/transformers.mjs +219 -0
  29. package/es/parse/translators/CSTTranslator.mjs +50 -0
  30. package/es/parse/translators/XMLTranslator.mjs +7 -0
  31. package/es/test/index.mjs +13 -0
  32. package/package.json +21 -14
  33. package/types/index.d.ts +330 -31
  34. package/cjs/parse/callbacks/body-reference.cjs +0 -14
  35. package/cjs/parse/callbacks/expression.cjs +0 -15
  36. package/cjs/parse/callbacks/header-reference.cjs +0 -14
  37. package/cjs/parse/callbacks/json-pointer.cjs +0 -14
  38. package/cjs/parse/callbacks/name.cjs +0 -14
  39. package/cjs/parse/callbacks/parameter-name.cjs +0 -14
  40. package/cjs/parse/callbacks/path-reference.cjs +0 -14
  41. package/cjs/parse/callbacks/query-reference.cjs +0 -14
  42. package/cjs/parse/callbacks/reference-token.cjs +0 -14
  43. package/cjs/parse/callbacks/source.cjs +0 -14
  44. package/cjs/parse/callbacks/token.cjs +0 -15
  45. package/cjs/test.cjs +0 -15
  46. package/es/parse/callbacks/body-reference.mjs +0 -10
  47. package/es/parse/callbacks/expression.mjs +0 -11
  48. package/es/parse/callbacks/header-reference.mjs +0 -10
  49. package/es/parse/callbacks/json-pointer.mjs +0 -10
  50. package/es/parse/callbacks/name.mjs +0 -10
  51. package/es/parse/callbacks/parameter-name.mjs +0 -10
  52. package/es/parse/callbacks/path-reference.mjs +0 -10
  53. package/es/parse/callbacks/query-reference.mjs +0 -10
  54. package/es/parse/callbacks/reference-token.mjs +0 -10
  55. package/es/parse/callbacks/source.mjs +0 -10
  56. package/es/parse/callbacks/token.mjs +0 -10
  57. package/es/test.mjs +0 -10
@@ -5,17 +5,17 @@
5
5
  export default function grammar() {
6
6
  // ```
7
7
  // SUMMARY
8
- // rules = 20
8
+ // rules = 36
9
9
  // udts = 0
10
- // opcodes = 125
10
+ // opcodes = 213
11
11
  // --- ABNF original opcodes
12
- // ALT = 11
13
- // CAT = 18
14
- // REP = 6
15
- // RNM = 29
16
- // TLS = 42
17
- // TBS = 10
18
- // TRG = 9
12
+ // ALT = 21
13
+ // CAT = 24
14
+ // REP = 16
15
+ // RNM = 55
16
+ // TLS = 73
17
+ // TBS = 12
18
+ // TRG = 12
19
19
  // --- SABNF superset opcodes
20
20
  // UDT = 0
21
21
  // AND = 0
@@ -34,117 +34,213 @@ export default function grammar() {
34
34
  isBkr: false
35
35
  };
36
36
  this.rules[1] = {
37
- name: 'parameter-name',
38
- lower: 'parameter-name',
37
+ name: 'source',
38
+ lower: 'source',
39
39
  index: 1,
40
40
  isBkr: false
41
41
  };
42
42
  this.rules[2] = {
43
- name: 'source',
44
- lower: 'source',
43
+ name: 'header-reference',
44
+ lower: 'header-reference',
45
45
  index: 2,
46
46
  isBkr: false
47
47
  };
48
48
  this.rules[3] = {
49
- name: 'header-reference',
50
- lower: 'header-reference',
49
+ name: 'query-reference',
50
+ lower: 'query-reference',
51
51
  index: 3,
52
52
  isBkr: false
53
53
  };
54
54
  this.rules[4] = {
55
- name: 'query-reference',
56
- lower: 'query-reference',
55
+ name: 'path-reference',
56
+ lower: 'path-reference',
57
57
  index: 4,
58
58
  isBkr: false
59
59
  };
60
60
  this.rules[5] = {
61
- name: 'path-reference',
62
- lower: 'path-reference',
61
+ name: 'body-reference',
62
+ lower: 'body-reference',
63
63
  index: 5,
64
64
  isBkr: false
65
65
  };
66
66
  this.rules[6] = {
67
- name: 'body-reference',
68
- lower: 'body-reference',
67
+ name: 'name',
68
+ lower: 'name',
69
69
  index: 6,
70
70
  isBkr: false
71
71
  };
72
72
  this.rules[7] = {
73
- name: 'name',
74
- lower: 'name',
73
+ name: 'expression-string',
74
+ lower: 'expression-string',
75
75
  index: 7,
76
76
  isBkr: false
77
77
  };
78
78
  this.rules[8] = {
79
- name: 'json-pointer',
80
- lower: 'json-pointer',
79
+ name: 'embedded-expression',
80
+ lower: 'embedded-expression',
81
81
  index: 8,
82
82
  isBkr: false
83
83
  };
84
84
  this.rules[9] = {
85
- name: 'reference-token',
86
- lower: 'reference-token',
85
+ name: 'literal-char',
86
+ lower: 'literal-char',
87
87
  index: 9,
88
88
  isBkr: false
89
89
  };
90
90
  this.rules[10] = {
91
- name: 'unescaped',
92
- lower: 'unescaped',
91
+ name: 'steps-name',
92
+ lower: 'steps-name',
93
93
  index: 10,
94
94
  isBkr: false
95
95
  };
96
96
  this.rules[11] = {
97
- name: 'escaped',
98
- lower: 'escaped',
97
+ name: 'steps-id',
98
+ lower: 'steps-id',
99
99
  index: 11,
100
100
  isBkr: false
101
101
  };
102
102
  this.rules[12] = {
103
- name: 'token',
104
- lower: 'token',
103
+ name: 'steps-field',
104
+ lower: 'steps-field',
105
105
  index: 12,
106
106
  isBkr: false
107
107
  };
108
108
  this.rules[13] = {
109
- name: 'tchar',
110
- lower: 'tchar',
109
+ name: 'steps-sub-field',
110
+ lower: 'steps-sub-field',
111
111
  index: 13,
112
112
  isBkr: false
113
113
  };
114
114
  this.rules[14] = {
115
- name: 'CHAR',
116
- lower: 'char',
115
+ name: 'workflows-name',
116
+ lower: 'workflows-name',
117
117
  index: 14,
118
118
  isBkr: false
119
119
  };
120
120
  this.rules[15] = {
121
- name: 'escape',
122
- lower: 'escape',
121
+ name: 'workflows-id',
122
+ lower: 'workflows-id',
123
123
  index: 15,
124
124
  isBkr: false
125
125
  };
126
126
  this.rules[16] = {
127
- name: 'unescape',
128
- lower: 'unescape',
127
+ name: 'workflows-field',
128
+ lower: 'workflows-field',
129
129
  index: 16,
130
130
  isBkr: false
131
131
  };
132
132
  this.rules[17] = {
133
- name: 'HEXDIG',
134
- lower: 'hexdig',
133
+ name: 'workflows-sub-field',
134
+ lower: 'workflows-sub-field',
135
135
  index: 17,
136
136
  isBkr: false
137
137
  };
138
138
  this.rules[18] = {
139
- name: 'DIGIT',
140
- lower: 'digit',
139
+ name: 'source-descriptions-name',
140
+ lower: 'source-descriptions-name',
141
141
  index: 18,
142
142
  isBkr: false
143
143
  };
144
144
  this.rules[19] = {
145
+ name: 'source-descriptions-source-name',
146
+ lower: 'source-descriptions-source-name',
147
+ index: 19,
148
+ isBkr: false
149
+ };
150
+ this.rules[20] = {
151
+ name: 'source-descriptions-reference',
152
+ lower: 'source-descriptions-reference',
153
+ index: 20,
154
+ isBkr: false
155
+ };
156
+ this.rules[21] = {
157
+ name: 'components-name',
158
+ lower: 'components-name',
159
+ index: 21,
160
+ isBkr: false
161
+ };
162
+ this.rules[22] = {
163
+ name: 'components-field',
164
+ lower: 'components-field',
165
+ index: 22,
166
+ isBkr: false
167
+ };
168
+ this.rules[23] = {
169
+ name: 'components-sub-field',
170
+ lower: 'components-sub-field',
171
+ index: 23,
172
+ isBkr: false
173
+ };
174
+ this.rules[24] = {
175
+ name: 'json-pointer',
176
+ lower: 'json-pointer',
177
+ index: 24,
178
+ isBkr: false
179
+ };
180
+ this.rules[25] = {
181
+ name: 'reference-token',
182
+ lower: 'reference-token',
183
+ index: 25,
184
+ isBkr: false
185
+ };
186
+ this.rules[26] = {
187
+ name: 'unescaped',
188
+ lower: 'unescaped',
189
+ index: 26,
190
+ isBkr: false
191
+ };
192
+ this.rules[27] = {
193
+ name: 'escaped',
194
+ lower: 'escaped',
195
+ index: 27,
196
+ isBkr: false
197
+ };
198
+ this.rules[28] = {
199
+ name: 'token',
200
+ lower: 'token',
201
+ index: 28,
202
+ isBkr: false
203
+ };
204
+ this.rules[29] = {
205
+ name: 'tchar',
206
+ lower: 'tchar',
207
+ index: 29,
208
+ isBkr: false
209
+ };
210
+ this.rules[30] = {
211
+ name: 'CHAR',
212
+ lower: 'char',
213
+ index: 30,
214
+ isBkr: false
215
+ };
216
+ this.rules[31] = {
217
+ name: 'escape',
218
+ lower: 'escape',
219
+ index: 31,
220
+ isBkr: false
221
+ };
222
+ this.rules[32] = {
223
+ name: 'unescape',
224
+ lower: 'unescape',
225
+ index: 32,
226
+ isBkr: false
227
+ };
228
+ this.rules[33] = {
229
+ name: 'HEXDIG',
230
+ lower: 'hexdig',
231
+ index: 33,
232
+ isBkr: false
233
+ };
234
+ this.rules[34] = {
235
+ name: 'DIGIT',
236
+ lower: 'digit',
237
+ index: 34,
238
+ isBkr: false
239
+ };
240
+ this.rules[35] = {
145
241
  name: 'ALPHA',
146
242
  lower: 'alpha',
147
- index: 19,
243
+ index: 35,
148
244
  isBkr: false
149
245
  };
150
246
 
@@ -156,7 +252,7 @@ export default function grammar() {
156
252
  this.rules[0].opcodes = [];
157
253
  this.rules[0].opcodes[0] = {
158
254
  type: 1,
159
- children: [1, 2, 3, 4, 7, 10, 13, 16, 19, 22, 25, 28]
255
+ children: [1, 2, 3, 4, 7, 10, 13, 16, 19, 22, 25]
160
256
  }; // ALT
161
257
  this.rules[0].opcodes[1] = {
162
258
  type: 7,
@@ -180,7 +276,7 @@ export default function grammar() {
180
276
  }; // TLS
181
277
  this.rules[0].opcodes[6] = {
182
278
  type: 4,
183
- index: 2
279
+ index: 1
184
280
  }; // RNM(source)
185
281
  this.rules[0].opcodes[7] = {
186
282
  type: 2,
@@ -192,7 +288,7 @@ export default function grammar() {
192
288
  }; // TLS
193
289
  this.rules[0].opcodes[9] = {
194
290
  type: 4,
195
- index: 2
291
+ index: 1
196
292
  }; // RNM(source)
197
293
  this.rules[0].opcodes[10] = {
198
294
  type: 2,
@@ -204,7 +300,7 @@ export default function grammar() {
204
300
  }; // TLS
205
301
  this.rules[0].opcodes[12] = {
206
302
  type: 4,
207
- index: 7
303
+ index: 6
208
304
  }; // RNM(name)
209
305
  this.rules[0].opcodes[13] = {
210
306
  type: 2,
@@ -216,512 +312,925 @@ export default function grammar() {
216
312
  }; // TLS
217
313
  this.rules[0].opcodes[15] = {
218
314
  type: 4,
219
- index: 7
220
- }; // RNM(name)
221
- this.rules[0].opcodes[16] = {
222
- type: 2,
223
- children: [17, 18]
224
- }; // CAT
225
- this.rules[0].opcodes[17] = {
315
+ index: 6
316
+ }; // RNM(name)
317
+ this.rules[0].opcodes[16] = {
318
+ type: 2,
319
+ children: [17, 18]
320
+ }; // CAT
321
+ this.rules[0].opcodes[17] = {
322
+ type: 7,
323
+ string: [36, 115, 116, 101, 112, 115, 46]
324
+ }; // TLS
325
+ this.rules[0].opcodes[18] = {
326
+ type: 4,
327
+ index: 6
328
+ }; // RNM(name)
329
+ this.rules[0].opcodes[19] = {
330
+ type: 2,
331
+ children: [20, 21]
332
+ }; // CAT
333
+ this.rules[0].opcodes[20] = {
334
+ type: 7,
335
+ string: [36, 119, 111, 114, 107, 102, 108, 111, 119, 115, 46]
336
+ }; // TLS
337
+ this.rules[0].opcodes[21] = {
338
+ type: 4,
339
+ index: 6
340
+ }; // RNM(name)
341
+ this.rules[0].opcodes[22] = {
342
+ type: 2,
343
+ children: [23, 24]
344
+ }; // CAT
345
+ this.rules[0].opcodes[23] = {
346
+ type: 7,
347
+ string: [36, 115, 111, 117, 114, 99, 101, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 115, 46]
348
+ }; // TLS
349
+ this.rules[0].opcodes[24] = {
350
+ type: 4,
351
+ index: 6
352
+ }; // RNM(name)
353
+ this.rules[0].opcodes[25] = {
354
+ type: 2,
355
+ children: [26, 27]
356
+ }; // CAT
357
+ this.rules[0].opcodes[26] = {
358
+ type: 7,
359
+ string: [36, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46]
360
+ }; // TLS
361
+ this.rules[0].opcodes[27] = {
362
+ type: 4,
363
+ index: 6
364
+ }; // RNM(name)
365
+
366
+ /* source */
367
+ this.rules[1].opcodes = [];
368
+ this.rules[1].opcodes[0] = {
369
+ type: 1,
370
+ children: [1, 2, 3, 4]
371
+ }; // ALT
372
+ this.rules[1].opcodes[1] = {
373
+ type: 4,
374
+ index: 2
375
+ }; // RNM(header-reference)
376
+ this.rules[1].opcodes[2] = {
377
+ type: 4,
378
+ index: 3
379
+ }; // RNM(query-reference)
380
+ this.rules[1].opcodes[3] = {
381
+ type: 4,
382
+ index: 4
383
+ }; // RNM(path-reference)
384
+ this.rules[1].opcodes[4] = {
385
+ type: 4,
386
+ index: 5
387
+ }; // RNM(body-reference)
388
+
389
+ /* header-reference */
390
+ this.rules[2].opcodes = [];
391
+ this.rules[2].opcodes[0] = {
392
+ type: 2,
393
+ children: [1, 2]
394
+ }; // CAT
395
+ this.rules[2].opcodes[1] = {
396
+ type: 7,
397
+ string: [104, 101, 97, 100, 101, 114, 46]
398
+ }; // TLS
399
+ this.rules[2].opcodes[2] = {
400
+ type: 4,
401
+ index: 28
402
+ }; // RNM(token)
403
+
404
+ /* query-reference */
405
+ this.rules[3].opcodes = [];
406
+ this.rules[3].opcodes[0] = {
407
+ type: 2,
408
+ children: [1, 2]
409
+ }; // CAT
410
+ this.rules[3].opcodes[1] = {
411
+ type: 7,
412
+ string: [113, 117, 101, 114, 121, 46]
413
+ }; // TLS
414
+ this.rules[3].opcodes[2] = {
415
+ type: 4,
416
+ index: 6
417
+ }; // RNM(name)
418
+
419
+ /* path-reference */
420
+ this.rules[4].opcodes = [];
421
+ this.rules[4].opcodes[0] = {
422
+ type: 2,
423
+ children: [1, 2]
424
+ }; // CAT
425
+ this.rules[4].opcodes[1] = {
426
+ type: 7,
427
+ string: [112, 97, 116, 104, 46]
428
+ }; // TLS
429
+ this.rules[4].opcodes[2] = {
430
+ type: 4,
431
+ index: 6
432
+ }; // RNM(name)
433
+
434
+ /* body-reference */
435
+ this.rules[5].opcodes = [];
436
+ this.rules[5].opcodes[0] = {
437
+ type: 2,
438
+ children: [1, 2]
439
+ }; // CAT
440
+ this.rules[5].opcodes[1] = {
441
+ type: 7,
442
+ string: [98, 111, 100, 121]
443
+ }; // TLS
444
+ this.rules[5].opcodes[2] = {
445
+ type: 3,
446
+ min: 0,
447
+ max: 1
448
+ }; // REP
449
+ this.rules[5].opcodes[3] = {
450
+ type: 2,
451
+ children: [4, 5]
452
+ }; // CAT
453
+ this.rules[5].opcodes[4] = {
454
+ type: 7,
455
+ string: [35]
456
+ }; // TLS
457
+ this.rules[5].opcodes[5] = {
458
+ type: 4,
459
+ index: 24
460
+ }; // RNM(json-pointer)
461
+
462
+ /* name */
463
+ this.rules[6].opcodes = [];
464
+ this.rules[6].opcodes[0] = {
465
+ type: 3,
466
+ min: 0,
467
+ max: Infinity
468
+ }; // REP
469
+ this.rules[6].opcodes[1] = {
470
+ type: 4,
471
+ index: 30
472
+ }; // RNM(CHAR)
473
+
474
+ /* expression-string */
475
+ this.rules[7].opcodes = [];
476
+ this.rules[7].opcodes[0] = {
477
+ type: 3,
478
+ min: 0,
479
+ max: Infinity
480
+ }; // REP
481
+ this.rules[7].opcodes[1] = {
482
+ type: 1,
483
+ children: [2, 3]
484
+ }; // ALT
485
+ this.rules[7].opcodes[2] = {
486
+ type: 4,
487
+ index: 9
488
+ }; // RNM(literal-char)
489
+ this.rules[7].opcodes[3] = {
490
+ type: 4,
491
+ index: 8
492
+ }; // RNM(embedded-expression)
493
+
494
+ /* embedded-expression */
495
+ this.rules[8].opcodes = [];
496
+ this.rules[8].opcodes[0] = {
497
+ type: 2,
498
+ children: [1, 2, 3]
499
+ }; // CAT
500
+ this.rules[8].opcodes[1] = {
501
+ type: 7,
502
+ string: [123]
503
+ }; // TLS
504
+ this.rules[8].opcodes[2] = {
505
+ type: 4,
506
+ index: 0
507
+ }; // RNM(expression)
508
+ this.rules[8].opcodes[3] = {
509
+ type: 7,
510
+ string: [125]
511
+ }; // TLS
512
+
513
+ /* literal-char */
514
+ this.rules[9].opcodes = [];
515
+ this.rules[9].opcodes[0] = {
516
+ type: 1,
517
+ children: [1, 2, 3]
518
+ }; // ALT
519
+ this.rules[9].opcodes[1] = {
520
+ type: 5,
521
+ min: 0,
522
+ max: 122
523
+ }; // TRG
524
+ this.rules[9].opcodes[2] = {
525
+ type: 6,
526
+ string: [124]
527
+ }; // TBS
528
+ this.rules[9].opcodes[3] = {
529
+ type: 5,
530
+ min: 126,
531
+ max: 1114111
532
+ }; // TRG
533
+
534
+ /* steps-name */
535
+ this.rules[10].opcodes = [];
536
+ this.rules[10].opcodes[0] = {
537
+ type: 2,
538
+ children: [1, 2, 3, 4, 5, 6]
539
+ }; // CAT
540
+ this.rules[10].opcodes[1] = {
541
+ type: 4,
542
+ index: 11
543
+ }; // RNM(steps-id)
544
+ this.rules[10].opcodes[2] = {
545
+ type: 7,
546
+ string: [46]
547
+ }; // TLS
548
+ this.rules[10].opcodes[3] = {
549
+ type: 4,
550
+ index: 12
551
+ }; // RNM(steps-field)
552
+ this.rules[10].opcodes[4] = {
553
+ type: 7,
554
+ string: [46]
555
+ }; // TLS
556
+ this.rules[10].opcodes[5] = {
557
+ type: 4,
558
+ index: 13
559
+ }; // RNM(steps-sub-field)
560
+ this.rules[10].opcodes[6] = {
561
+ type: 3,
562
+ min: 0,
563
+ max: 1
564
+ }; // REP
565
+ this.rules[10].opcodes[7] = {
566
+ type: 2,
567
+ children: [8, 9]
568
+ }; // CAT
569
+ this.rules[10].opcodes[8] = {
570
+ type: 7,
571
+ string: [35]
572
+ }; // TLS
573
+ this.rules[10].opcodes[9] = {
574
+ type: 4,
575
+ index: 24
576
+ }; // RNM(json-pointer)
577
+
578
+ /* steps-id */
579
+ this.rules[11].opcodes = [];
580
+ this.rules[11].opcodes[0] = {
581
+ type: 3,
582
+ min: 1,
583
+ max: Infinity
584
+ }; // REP
585
+ this.rules[11].opcodes[1] = {
586
+ type: 1,
587
+ children: [2, 3, 4, 5]
588
+ }; // ALT
589
+ this.rules[11].opcodes[2] = {
590
+ type: 4,
591
+ index: 35
592
+ }; // RNM(ALPHA)
593
+ this.rules[11].opcodes[3] = {
594
+ type: 4,
595
+ index: 34
596
+ }; // RNM(DIGIT)
597
+ this.rules[11].opcodes[4] = {
598
+ type: 7,
599
+ string: [95]
600
+ }; // TLS
601
+ this.rules[11].opcodes[5] = {
602
+ type: 7,
603
+ string: [45]
604
+ }; // TLS
605
+
606
+ /* steps-field */
607
+ this.rules[12].opcodes = [];
608
+ this.rules[12].opcodes[0] = {
609
+ type: 7,
610
+ string: [111, 117, 116, 112, 117, 116, 115]
611
+ }; // TLS
612
+
613
+ /* steps-sub-field */
614
+ this.rules[13].opcodes = [];
615
+ this.rules[13].opcodes[0] = {
616
+ type: 3,
617
+ min: 1,
618
+ max: Infinity
619
+ }; // REP
620
+ this.rules[13].opcodes[1] = {
621
+ type: 1,
622
+ children: [2, 3, 4, 5, 6]
623
+ }; // ALT
624
+ this.rules[13].opcodes[2] = {
625
+ type: 4,
626
+ index: 35
627
+ }; // RNM(ALPHA)
628
+ this.rules[13].opcodes[3] = {
629
+ type: 4,
630
+ index: 34
631
+ }; // RNM(DIGIT)
632
+ this.rules[13].opcodes[4] = {
633
+ type: 7,
634
+ string: [46]
635
+ }; // TLS
636
+ this.rules[13].opcodes[5] = {
637
+ type: 7,
638
+ string: [45]
639
+ }; // TLS
640
+ this.rules[13].opcodes[6] = {
641
+ type: 7,
642
+ string: [95]
643
+ }; // TLS
644
+
645
+ /* workflows-name */
646
+ this.rules[14].opcodes = [];
647
+ this.rules[14].opcodes[0] = {
648
+ type: 2,
649
+ children: [1, 2, 3, 4, 5, 6]
650
+ }; // CAT
651
+ this.rules[14].opcodes[1] = {
652
+ type: 4,
653
+ index: 15
654
+ }; // RNM(workflows-id)
655
+ this.rules[14].opcodes[2] = {
656
+ type: 7,
657
+ string: [46]
658
+ }; // TLS
659
+ this.rules[14].opcodes[3] = {
660
+ type: 4,
661
+ index: 16
662
+ }; // RNM(workflows-field)
663
+ this.rules[14].opcodes[4] = {
664
+ type: 7,
665
+ string: [46]
666
+ }; // TLS
667
+ this.rules[14].opcodes[5] = {
668
+ type: 4,
669
+ index: 17
670
+ }; // RNM(workflows-sub-field)
671
+ this.rules[14].opcodes[6] = {
672
+ type: 3,
673
+ min: 0,
674
+ max: 1
675
+ }; // REP
676
+ this.rules[14].opcodes[7] = {
677
+ type: 2,
678
+ children: [8, 9]
679
+ }; // CAT
680
+ this.rules[14].opcodes[8] = {
681
+ type: 7,
682
+ string: [35]
683
+ }; // TLS
684
+ this.rules[14].opcodes[9] = {
685
+ type: 4,
686
+ index: 24
687
+ }; // RNM(json-pointer)
688
+
689
+ /* workflows-id */
690
+ this.rules[15].opcodes = [];
691
+ this.rules[15].opcodes[0] = {
692
+ type: 3,
693
+ min: 1,
694
+ max: Infinity
695
+ }; // REP
696
+ this.rules[15].opcodes[1] = {
697
+ type: 1,
698
+ children: [2, 3, 4, 5]
699
+ }; // ALT
700
+ this.rules[15].opcodes[2] = {
701
+ type: 4,
702
+ index: 35
703
+ }; // RNM(ALPHA)
704
+ this.rules[15].opcodes[3] = {
705
+ type: 4,
706
+ index: 34
707
+ }; // RNM(DIGIT)
708
+ this.rules[15].opcodes[4] = {
709
+ type: 7,
710
+ string: [95]
711
+ }; // TLS
712
+ this.rules[15].opcodes[5] = {
713
+ type: 7,
714
+ string: [45]
715
+ }; // TLS
716
+
717
+ /* workflows-field */
718
+ this.rules[16].opcodes = [];
719
+ this.rules[16].opcodes[0] = {
720
+ type: 1,
721
+ children: [1, 2]
722
+ }; // ALT
723
+ this.rules[16].opcodes[1] = {
724
+ type: 7,
725
+ string: [105, 110, 112, 117, 116, 115]
726
+ }; // TLS
727
+ this.rules[16].opcodes[2] = {
728
+ type: 7,
729
+ string: [111, 117, 116, 112, 117, 116, 115]
730
+ }; // TLS
731
+
732
+ /* workflows-sub-field */
733
+ this.rules[17].opcodes = [];
734
+ this.rules[17].opcodes[0] = {
735
+ type: 3,
736
+ min: 1,
737
+ max: Infinity
738
+ }; // REP
739
+ this.rules[17].opcodes[1] = {
740
+ type: 1,
741
+ children: [2, 3, 4, 5, 6]
742
+ }; // ALT
743
+ this.rules[17].opcodes[2] = {
744
+ type: 4,
745
+ index: 35
746
+ }; // RNM(ALPHA)
747
+ this.rules[17].opcodes[3] = {
748
+ type: 4,
749
+ index: 34
750
+ }; // RNM(DIGIT)
751
+ this.rules[17].opcodes[4] = {
226
752
  type: 7,
227
- string: [36, 115, 116, 101, 112, 115, 46]
753
+ string: [46]
228
754
  }; // TLS
229
- this.rules[0].opcodes[18] = {
230
- type: 4,
231
- index: 7
232
- }; // RNM(name)
233
- this.rules[0].opcodes[19] = {
234
- type: 2,
235
- children: [20, 21]
236
- }; // CAT
237
- this.rules[0].opcodes[20] = {
755
+ this.rules[17].opcodes[5] = {
238
756
  type: 7,
239
- string: [36, 119, 111, 114, 107, 102, 108, 111, 119, 115, 46]
757
+ string: [45]
240
758
  }; // TLS
241
- this.rules[0].opcodes[21] = {
242
- type: 4,
243
- index: 7
244
- }; // RNM(name)
245
- this.rules[0].opcodes[22] = {
246
- type: 2,
247
- children: [23, 24]
248
- }; // CAT
249
- this.rules[0].opcodes[23] = {
759
+ this.rules[17].opcodes[6] = {
250
760
  type: 7,
251
- string: [36, 115, 111, 117, 114, 99, 101, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 115, 46]
761
+ string: [95]
252
762
  }; // TLS
253
- this.rules[0].opcodes[24] = {
254
- type: 4,
255
- index: 7
256
- }; // RNM(name)
257
- this.rules[0].opcodes[25] = {
763
+
764
+ /* source-descriptions-name */
765
+ this.rules[18].opcodes = [];
766
+ this.rules[18].opcodes[0] = {
258
767
  type: 2,
259
- children: [26, 27]
768
+ children: [1, 2, 3]
260
769
  }; // CAT
261
- this.rules[0].opcodes[26] = {
262
- type: 7,
263
- string: [36, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46]
264
- }; // TLS
265
- this.rules[0].opcodes[27] = {
770
+ this.rules[18].opcodes[1] = {
266
771
  type: 4,
267
- index: 7
268
- }; // RNM(name)
269
- this.rules[0].opcodes[28] = {
270
- type: 2,
271
- children: [29, 30]
272
- }; // CAT
273
- this.rules[0].opcodes[29] = {
772
+ index: 19
773
+ }; // RNM(source-descriptions-source-name)
774
+ this.rules[18].opcodes[2] = {
274
775
  type: 7,
275
- string: [36, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 46]
776
+ string: [46]
276
777
  }; // TLS
277
- this.rules[0].opcodes[30] = {
278
- type: 4,
279
- index: 1
280
- }; // RNM(parameter-name)
281
-
282
- /* parameter-name */
283
- this.rules[1].opcodes = [];
284
- this.rules[1].opcodes[0] = {
778
+ this.rules[18].opcodes[3] = {
285
779
  type: 4,
286
- index: 7
287
- }; // RNM(name)
780
+ index: 20
781
+ }; // RNM(source-descriptions-reference)
288
782
 
289
- /* source */
290
- this.rules[2].opcodes = [];
291
- this.rules[2].opcodes[0] = {
783
+ /* source-descriptions-source-name */
784
+ this.rules[19].opcodes = [];
785
+ this.rules[19].opcodes[0] = {
786
+ type: 3,
787
+ min: 1,
788
+ max: Infinity
789
+ }; // REP
790
+ this.rules[19].opcodes[1] = {
292
791
  type: 1,
293
- children: [1, 2, 3, 4]
792
+ children: [2, 3, 4, 5]
294
793
  }; // ALT
295
- this.rules[2].opcodes[1] = {
296
- type: 4,
297
- index: 3
298
- }; // RNM(header-reference)
299
- this.rules[2].opcodes[2] = {
300
- type: 4,
301
- index: 4
302
- }; // RNM(query-reference)
303
- this.rules[2].opcodes[3] = {
794
+ this.rules[19].opcodes[2] = {
304
795
  type: 4,
305
- index: 5
306
- }; // RNM(path-reference)
307
- this.rules[2].opcodes[4] = {
796
+ index: 35
797
+ }; // RNM(ALPHA)
798
+ this.rules[19].opcodes[3] = {
308
799
  type: 4,
309
- index: 6
310
- }; // RNM(body-reference)
311
-
312
- /* header-reference */
313
- this.rules[3].opcodes = [];
314
- this.rules[3].opcodes[0] = {
315
- type: 2,
316
- children: [1, 2]
317
- }; // CAT
318
- this.rules[3].opcodes[1] = {
800
+ index: 34
801
+ }; // RNM(DIGIT)
802
+ this.rules[19].opcodes[4] = {
319
803
  type: 7,
320
- string: [104, 101, 97, 100, 101, 114, 46]
804
+ string: [95]
321
805
  }; // TLS
322
- this.rules[3].opcodes[2] = {
323
- type: 4,
324
- index: 12
325
- }; // RNM(token)
326
-
327
- /* query-reference */
328
- this.rules[4].opcodes = [];
329
- this.rules[4].opcodes[0] = {
330
- type: 2,
331
- children: [1, 2]
332
- }; // CAT
333
- this.rules[4].opcodes[1] = {
806
+ this.rules[19].opcodes[5] = {
334
807
  type: 7,
335
- string: [113, 117, 101, 114, 121, 46]
808
+ string: [45]
336
809
  }; // TLS
337
- this.rules[4].opcodes[2] = {
810
+
811
+ /* source-descriptions-reference */
812
+ this.rules[20].opcodes = [];
813
+ this.rules[20].opcodes[0] = {
814
+ type: 3,
815
+ min: 1,
816
+ max: Infinity
817
+ }; // REP
818
+ this.rules[20].opcodes[1] = {
338
819
  type: 4,
339
- index: 7
340
- }; // RNM(name)
820
+ index: 30
821
+ }; // RNM(CHAR)
341
822
 
342
- /* path-reference */
343
- this.rules[5].opcodes = [];
344
- this.rules[5].opcodes[0] = {
823
+ /* components-name */
824
+ this.rules[21].opcodes = [];
825
+ this.rules[21].opcodes[0] = {
345
826
  type: 2,
346
- children: [1, 2]
827
+ children: [1, 2, 3]
347
828
  }; // CAT
348
- this.rules[5].opcodes[1] = {
829
+ this.rules[21].opcodes[1] = {
830
+ type: 4,
831
+ index: 22
832
+ }; // RNM(components-field)
833
+ this.rules[21].opcodes[2] = {
349
834
  type: 7,
350
- string: [112, 97, 116, 104, 46]
835
+ string: [46]
351
836
  }; // TLS
352
- this.rules[5].opcodes[2] = {
837
+ this.rules[21].opcodes[3] = {
353
838
  type: 4,
354
- index: 7
355
- }; // RNM(name)
839
+ index: 23
840
+ }; // RNM(components-sub-field)
356
841
 
357
- /* body-reference */
358
- this.rules[6].opcodes = [];
359
- this.rules[6].opcodes[0] = {
360
- type: 2,
361
- children: [1, 2]
362
- }; // CAT
363
- this.rules[6].opcodes[1] = {
842
+ /* components-field */
843
+ this.rules[22].opcodes = [];
844
+ this.rules[22].opcodes[0] = {
845
+ type: 1,
846
+ children: [1, 2, 3, 4]
847
+ }; // ALT
848
+ this.rules[22].opcodes[1] = {
364
849
  type: 7,
365
- string: [98, 111, 100, 121]
850
+ string: [105, 110, 112, 117, 116, 115]
366
851
  }; // TLS
367
- this.rules[6].opcodes[2] = {
368
- type: 3,
369
- min: 0,
370
- max: 1
371
- }; // REP
372
- this.rules[6].opcodes[3] = {
373
- type: 2,
374
- children: [4, 5]
375
- }; // CAT
376
- this.rules[6].opcodes[4] = {
852
+ this.rules[22].opcodes[2] = {
377
853
  type: 7,
378
- string: [35]
854
+ string: [112, 97, 114, 97, 109, 101, 116, 101, 114, 115]
855
+ }; // TLS
856
+ this.rules[22].opcodes[3] = {
857
+ type: 7,
858
+ string: [115, 117, 99, 99, 101, 115, 115, 97, 99, 116, 105, 111, 110, 115]
859
+ }; // TLS
860
+ this.rules[22].opcodes[4] = {
861
+ type: 7,
862
+ string: [102, 97, 105, 108, 117, 114, 101, 97, 99, 116, 105, 111, 110, 115]
379
863
  }; // TLS
380
- this.rules[6].opcodes[5] = {
381
- type: 4,
382
- index: 8
383
- }; // RNM(json-pointer)
384
864
 
385
- /* name */
386
- this.rules[7].opcodes = [];
387
- this.rules[7].opcodes[0] = {
865
+ /* components-sub-field */
866
+ this.rules[23].opcodes = [];
867
+ this.rules[23].opcodes[0] = {
388
868
  type: 3,
389
- min: 0,
869
+ min: 1,
390
870
  max: Infinity
391
871
  }; // REP
392
- this.rules[7].opcodes[1] = {
872
+ this.rules[23].opcodes[1] = {
873
+ type: 1,
874
+ children: [2, 3, 4, 5, 6]
875
+ }; // ALT
876
+ this.rules[23].opcodes[2] = {
393
877
  type: 4,
394
- index: 14
395
- }; // RNM(CHAR)
878
+ index: 35
879
+ }; // RNM(ALPHA)
880
+ this.rules[23].opcodes[3] = {
881
+ type: 4,
882
+ index: 34
883
+ }; // RNM(DIGIT)
884
+ this.rules[23].opcodes[4] = {
885
+ type: 7,
886
+ string: [46]
887
+ }; // TLS
888
+ this.rules[23].opcodes[5] = {
889
+ type: 7,
890
+ string: [45]
891
+ }; // TLS
892
+ this.rules[23].opcodes[6] = {
893
+ type: 7,
894
+ string: [95]
895
+ }; // TLS
396
896
 
397
897
  /* json-pointer */
398
- this.rules[8].opcodes = [];
399
- this.rules[8].opcodes[0] = {
898
+ this.rules[24].opcodes = [];
899
+ this.rules[24].opcodes[0] = {
400
900
  type: 3,
401
901
  min: 0,
402
902
  max: Infinity
403
903
  }; // REP
404
- this.rules[8].opcodes[1] = {
904
+ this.rules[24].opcodes[1] = {
405
905
  type: 2,
406
906
  children: [2, 3]
407
907
  }; // CAT
408
- this.rules[8].opcodes[2] = {
908
+ this.rules[24].opcodes[2] = {
409
909
  type: 7,
410
910
  string: [47]
411
911
  }; // TLS
412
- this.rules[8].opcodes[3] = {
912
+ this.rules[24].opcodes[3] = {
413
913
  type: 4,
414
- index: 9
914
+ index: 25
415
915
  }; // RNM(reference-token)
416
916
 
417
917
  /* reference-token */
418
- this.rules[9].opcodes = [];
419
- this.rules[9].opcodes[0] = {
918
+ this.rules[25].opcodes = [];
919
+ this.rules[25].opcodes[0] = {
420
920
  type: 3,
421
921
  min: 0,
422
922
  max: Infinity
423
923
  }; // REP
424
- this.rules[9].opcodes[1] = {
924
+ this.rules[25].opcodes[1] = {
425
925
  type: 1,
426
926
  children: [2, 3]
427
927
  }; // ALT
428
- this.rules[9].opcodes[2] = {
928
+ this.rules[25].opcodes[2] = {
429
929
  type: 4,
430
- index: 10
930
+ index: 26
431
931
  }; // RNM(unescaped)
432
- this.rules[9].opcodes[3] = {
932
+ this.rules[25].opcodes[3] = {
433
933
  type: 4,
434
- index: 11
934
+ index: 27
435
935
  }; // RNM(escaped)
436
936
 
437
937
  /* unescaped */
438
- this.rules[10].opcodes = [];
439
- this.rules[10].opcodes[0] = {
938
+ this.rules[26].opcodes = [];
939
+ this.rules[26].opcodes[0] = {
440
940
  type: 1,
441
941
  children: [1, 2, 3]
442
942
  }; // ALT
443
- this.rules[10].opcodes[1] = {
943
+ this.rules[26].opcodes[1] = {
444
944
  type: 5,
445
945
  min: 0,
446
946
  max: 46
447
947
  }; // TRG
448
- this.rules[10].opcodes[2] = {
948
+ this.rules[26].opcodes[2] = {
449
949
  type: 5,
450
950
  min: 48,
451
951
  max: 125
452
952
  }; // TRG
453
- this.rules[10].opcodes[3] = {
953
+ this.rules[26].opcodes[3] = {
454
954
  type: 5,
455
955
  min: 127,
456
956
  max: 1114111
457
957
  }; // TRG
458
958
 
459
959
  /* escaped */
460
- this.rules[11].opcodes = [];
461
- this.rules[11].opcodes[0] = {
960
+ this.rules[27].opcodes = [];
961
+ this.rules[27].opcodes[0] = {
462
962
  type: 2,
463
963
  children: [1, 2]
464
964
  }; // CAT
465
- this.rules[11].opcodes[1] = {
965
+ this.rules[27].opcodes[1] = {
466
966
  type: 7,
467
967
  string: [126]
468
968
  }; // TLS
469
- this.rules[11].opcodes[2] = {
969
+ this.rules[27].opcodes[2] = {
470
970
  type: 1,
471
971
  children: [3, 4]
472
972
  }; // ALT
473
- this.rules[11].opcodes[3] = {
973
+ this.rules[27].opcodes[3] = {
474
974
  type: 7,
475
975
  string: [48]
476
976
  }; // TLS
477
- this.rules[11].opcodes[4] = {
977
+ this.rules[27].opcodes[4] = {
478
978
  type: 7,
479
979
  string: [49]
480
980
  }; // TLS
481
981
 
482
982
  /* token */
483
- this.rules[12].opcodes = [];
484
- this.rules[12].opcodes[0] = {
983
+ this.rules[28].opcodes = [];
984
+ this.rules[28].opcodes[0] = {
485
985
  type: 3,
486
986
  min: 1,
487
987
  max: Infinity
488
988
  }; // REP
489
- this.rules[12].opcodes[1] = {
989
+ this.rules[28].opcodes[1] = {
490
990
  type: 4,
491
- index: 13
991
+ index: 29
492
992
  }; // RNM(tchar)
493
993
 
494
994
  /* tchar */
495
- this.rules[13].opcodes = [];
496
- this.rules[13].opcodes[0] = {
995
+ this.rules[29].opcodes = [];
996
+ this.rules[29].opcodes[0] = {
497
997
  type: 1,
498
998
  children: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
499
999
  }; // ALT
500
- this.rules[13].opcodes[1] = {
1000
+ this.rules[29].opcodes[1] = {
501
1001
  type: 7,
502
1002
  string: [33]
503
1003
  }; // TLS
504
- this.rules[13].opcodes[2] = {
1004
+ this.rules[29].opcodes[2] = {
505
1005
  type: 7,
506
1006
  string: [35]
507
1007
  }; // TLS
508
- this.rules[13].opcodes[3] = {
1008
+ this.rules[29].opcodes[3] = {
509
1009
  type: 7,
510
1010
  string: [36]
511
1011
  }; // TLS
512
- this.rules[13].opcodes[4] = {
1012
+ this.rules[29].opcodes[4] = {
513
1013
  type: 7,
514
1014
  string: [37]
515
1015
  }; // TLS
516
- this.rules[13].opcodes[5] = {
1016
+ this.rules[29].opcodes[5] = {
517
1017
  type: 7,
518
1018
  string: [38]
519
1019
  }; // TLS
520
- this.rules[13].opcodes[6] = {
1020
+ this.rules[29].opcodes[6] = {
521
1021
  type: 7,
522
1022
  string: [39]
523
1023
  }; // TLS
524
- this.rules[13].opcodes[7] = {
1024
+ this.rules[29].opcodes[7] = {
525
1025
  type: 7,
526
1026
  string: [42]
527
1027
  }; // TLS
528
- this.rules[13].opcodes[8] = {
1028
+ this.rules[29].opcodes[8] = {
529
1029
  type: 7,
530
1030
  string: [43]
531
1031
  }; // TLS
532
- this.rules[13].opcodes[9] = {
1032
+ this.rules[29].opcodes[9] = {
533
1033
  type: 7,
534
1034
  string: [45]
535
1035
  }; // TLS
536
- this.rules[13].opcodes[10] = {
1036
+ this.rules[29].opcodes[10] = {
537
1037
  type: 7,
538
1038
  string: [46]
539
1039
  }; // TLS
540
- this.rules[13].opcodes[11] = {
1040
+ this.rules[29].opcodes[11] = {
541
1041
  type: 7,
542
1042
  string: [94]
543
1043
  }; // TLS
544
- this.rules[13].opcodes[12] = {
1044
+ this.rules[29].opcodes[12] = {
545
1045
  type: 7,
546
1046
  string: [95]
547
1047
  }; // TLS
548
- this.rules[13].opcodes[13] = {
1048
+ this.rules[29].opcodes[13] = {
549
1049
  type: 7,
550
1050
  string: [96]
551
1051
  }; // TLS
552
- this.rules[13].opcodes[14] = {
1052
+ this.rules[29].opcodes[14] = {
553
1053
  type: 7,
554
1054
  string: [124]
555
1055
  }; // TLS
556
- this.rules[13].opcodes[15] = {
1056
+ this.rules[29].opcodes[15] = {
557
1057
  type: 7,
558
1058
  string: [126]
559
1059
  }; // TLS
560
- this.rules[13].opcodes[16] = {
1060
+ this.rules[29].opcodes[16] = {
561
1061
  type: 4,
562
- index: 18
1062
+ index: 34
563
1063
  }; // RNM(DIGIT)
564
- this.rules[13].opcodes[17] = {
1064
+ this.rules[29].opcodes[17] = {
565
1065
  type: 4,
566
- index: 19
1066
+ index: 35
567
1067
  }; // RNM(ALPHA)
568
1068
 
569
1069
  /* CHAR */
570
- this.rules[14].opcodes = [];
571
- this.rules[14].opcodes[0] = {
1070
+ this.rules[30].opcodes = [];
1071
+ this.rules[30].opcodes[0] = {
572
1072
  type: 1,
573
1073
  children: [1, 2]
574
1074
  }; // ALT
575
- this.rules[14].opcodes[1] = {
1075
+ this.rules[30].opcodes[1] = {
576
1076
  type: 4,
577
- index: 16
1077
+ index: 32
578
1078
  }; // RNM(unescape)
579
- this.rules[14].opcodes[2] = {
1079
+ this.rules[30].opcodes[2] = {
580
1080
  type: 2,
581
1081
  children: [3, 4]
582
1082
  }; // CAT
583
- this.rules[14].opcodes[3] = {
1083
+ this.rules[30].opcodes[3] = {
584
1084
  type: 4,
585
- index: 15
1085
+ index: 31
586
1086
  }; // RNM(escape)
587
- this.rules[14].opcodes[4] = {
1087
+ this.rules[30].opcodes[4] = {
588
1088
  type: 1,
589
1089
  children: [5, 6, 7, 8, 9, 10, 11, 12, 13]
590
1090
  }; // ALT
591
- this.rules[14].opcodes[5] = {
1091
+ this.rules[30].opcodes[5] = {
592
1092
  type: 6,
593
1093
  string: [34]
594
1094
  }; // TBS
595
- this.rules[14].opcodes[6] = {
1095
+ this.rules[30].opcodes[6] = {
596
1096
  type: 6,
597
1097
  string: [92]
598
1098
  }; // TBS
599
- this.rules[14].opcodes[7] = {
1099
+ this.rules[30].opcodes[7] = {
600
1100
  type: 6,
601
1101
  string: [47]
602
1102
  }; // TBS
603
- this.rules[14].opcodes[8] = {
1103
+ this.rules[30].opcodes[8] = {
604
1104
  type: 6,
605
1105
  string: [98]
606
1106
  }; // TBS
607
- this.rules[14].opcodes[9] = {
1107
+ this.rules[30].opcodes[9] = {
608
1108
  type: 6,
609
1109
  string: [102]
610
1110
  }; // TBS
611
- this.rules[14].opcodes[10] = {
1111
+ this.rules[30].opcodes[10] = {
612
1112
  type: 6,
613
1113
  string: [110]
614
1114
  }; // TBS
615
- this.rules[14].opcodes[11] = {
1115
+ this.rules[30].opcodes[11] = {
616
1116
  type: 6,
617
1117
  string: [114]
618
1118
  }; // TBS
619
- this.rules[14].opcodes[12] = {
1119
+ this.rules[30].opcodes[12] = {
620
1120
  type: 6,
621
1121
  string: [116]
622
1122
  }; // TBS
623
- this.rules[14].opcodes[13] = {
1123
+ this.rules[30].opcodes[13] = {
624
1124
  type: 2,
625
1125
  children: [14, 15]
626
1126
  }; // CAT
627
- this.rules[14].opcodes[14] = {
1127
+ this.rules[30].opcodes[14] = {
628
1128
  type: 6,
629
1129
  string: [117]
630
1130
  }; // TBS
631
- this.rules[14].opcodes[15] = {
1131
+ this.rules[30].opcodes[15] = {
632
1132
  type: 3,
633
1133
  min: 4,
634
1134
  max: 4
635
1135
  }; // REP
636
- this.rules[14].opcodes[16] = {
1136
+ this.rules[30].opcodes[16] = {
637
1137
  type: 4,
638
- index: 17
1138
+ index: 33
639
1139
  }; // RNM(HEXDIG)
640
1140
 
641
1141
  /* escape */
642
- this.rules[15].opcodes = [];
643
- this.rules[15].opcodes[0] = {
1142
+ this.rules[31].opcodes = [];
1143
+ this.rules[31].opcodes[0] = {
644
1144
  type: 6,
645
1145
  string: [92]
646
1146
  }; // TBS
647
1147
 
648
1148
  /* unescape */
649
- this.rules[16].opcodes = [];
650
- this.rules[16].opcodes[0] = {
1149
+ this.rules[32].opcodes = [];
1150
+ this.rules[32].opcodes[0] = {
651
1151
  type: 1,
652
- children: [1, 2, 3]
1152
+ children: [1, 2, 3, 4, 5]
653
1153
  }; // ALT
654
- this.rules[16].opcodes[1] = {
1154
+ this.rules[32].opcodes[1] = {
655
1155
  type: 5,
656
1156
  min: 32,
657
1157
  max: 33
658
1158
  }; // TRG
659
- this.rules[16].opcodes[2] = {
1159
+ this.rules[32].opcodes[2] = {
660
1160
  type: 5,
661
1161
  min: 35,
662
1162
  max: 91
663
1163
  }; // TRG
664
- this.rules[16].opcodes[3] = {
1164
+ this.rules[32].opcodes[3] = {
665
1165
  type: 5,
666
1166
  min: 93,
1167
+ max: 122
1168
+ }; // TRG
1169
+ this.rules[32].opcodes[4] = {
1170
+ type: 6,
1171
+ string: [124]
1172
+ }; // TBS
1173
+ this.rules[32].opcodes[5] = {
1174
+ type: 5,
1175
+ min: 126,
667
1176
  max: 1114111
668
1177
  }; // TRG
669
1178
 
670
1179
  /* HEXDIG */
671
- this.rules[17].opcodes = [];
672
- this.rules[17].opcodes[0] = {
1180
+ this.rules[33].opcodes = [];
1181
+ this.rules[33].opcodes[0] = {
673
1182
  type: 1,
674
1183
  children: [1, 2, 3, 4, 5, 6, 7]
675
1184
  }; // ALT
676
- this.rules[17].opcodes[1] = {
1185
+ this.rules[33].opcodes[1] = {
677
1186
  type: 4,
678
- index: 18
1187
+ index: 34
679
1188
  }; // RNM(DIGIT)
680
- this.rules[17].opcodes[2] = {
1189
+ this.rules[33].opcodes[2] = {
681
1190
  type: 7,
682
1191
  string: [97]
683
1192
  }; // TLS
684
- this.rules[17].opcodes[3] = {
1193
+ this.rules[33].opcodes[3] = {
685
1194
  type: 7,
686
1195
  string: [98]
687
1196
  }; // TLS
688
- this.rules[17].opcodes[4] = {
1197
+ this.rules[33].opcodes[4] = {
689
1198
  type: 7,
690
1199
  string: [99]
691
1200
  }; // TLS
692
- this.rules[17].opcodes[5] = {
1201
+ this.rules[33].opcodes[5] = {
693
1202
  type: 7,
694
1203
  string: [100]
695
1204
  }; // TLS
696
- this.rules[17].opcodes[6] = {
1205
+ this.rules[33].opcodes[6] = {
697
1206
  type: 7,
698
1207
  string: [101]
699
1208
  }; // TLS
700
- this.rules[17].opcodes[7] = {
1209
+ this.rules[33].opcodes[7] = {
701
1210
  type: 7,
702
1211
  string: [102]
703
1212
  }; // TLS
704
1213
 
705
1214
  /* DIGIT */
706
- this.rules[18].opcodes = [];
707
- this.rules[18].opcodes[0] = {
1215
+ this.rules[34].opcodes = [];
1216
+ this.rules[34].opcodes[0] = {
708
1217
  type: 5,
709
1218
  min: 48,
710
1219
  max: 57
711
1220
  }; // TRG
712
1221
 
713
1222
  /* ALPHA */
714
- this.rules[19].opcodes = [];
715
- this.rules[19].opcodes[0] = {
1223
+ this.rules[35].opcodes = [];
1224
+ this.rules[35].opcodes[0] = {
716
1225
  type: 1,
717
1226
  children: [1, 2]
718
1227
  }; // ALT
719
- this.rules[19].opcodes[1] = {
1228
+ this.rules[35].opcodes[1] = {
720
1229
  type: 5,
721
1230
  min: 65,
722
1231
  max: 90
723
1232
  }; // TRG
724
- this.rules[19].opcodes[2] = {
1233
+ this.rules[35].opcodes[2] = {
725
1234
  type: 5,
726
1235
  min: 97,
727
1236
  max: 122
@@ -731,8 +1240,7 @@ export default function grammar() {
731
1240
  this.toString = function toString() {
732
1241
  let str = "";
733
1242
  str += "; Arazzo runtime expression ABNF syntax\n";
734
- str += "expression = ( \"$url\" / \"$method\" / \"$statusCode\" / \"$request.\" source / \"$response.\" source / \"$inputs.\" name / \"$outputs.\" name / \"$steps.\" name / \"$workflows.\" name / \"$sourceDescriptions.\" name / \"$components.\" name / \"$components.parameters.\" parameter-name)\n";
735
- str += "parameter-name = name ; Reuses 'name' rule for parameter names\n";
1243
+ str += "expression = ( \"$url\" / \"$method\" / \"$statusCode\" / \"$request.\" source / \"$response.\" source / \"$inputs.\" name / \"$outputs.\" name / \"$steps.\" name / \"$workflows.\" name / \"$sourceDescriptions.\" name / \"$components.\" name )\n";
736
1244
  str += "source = ( header-reference / query-reference / path-reference / body-reference )\n";
737
1245
  str += "header-reference = \"header.\" token\n";
738
1246
  str += "query-reference = \"query.\" name\n";
@@ -740,6 +1248,39 @@ export default function grammar() {
740
1248
  str += "body-reference = \"body\" [\"#\" json-pointer ]\n";
741
1249
  str += "name = *( CHAR )\n";
742
1250
  str += "\n";
1251
+ str += "; Grammar for parsing template strings with embedded expressions\n";
1252
+ str += "expression-string = *( literal-char / embedded-expression )\n";
1253
+ str += "embedded-expression = \"{\" expression \"}\"\n";
1254
+ str += "literal-char = %x00-7A / %x7C / %x7E-10FFFF ; anything except { (%x7B) and } (%x7D)\n";
1255
+ str += "\n";
1256
+ str += "; Secondary grammar for parsing $steps name part\n";
1257
+ str += "; Format: {stepId}.{field}.{subField}[#/{jsonPointer}]\n";
1258
+ str += "steps-name = steps-id \".\" steps-field \".\" steps-sub-field [\"#\" json-pointer]\n";
1259
+ str += "steps-id = 1*(ALPHA / DIGIT / \"_\" / \"-\")\n";
1260
+ str += "steps-field = \"outputs\"\n";
1261
+ str += "steps-sub-field = 1*(ALPHA / DIGIT / \".\" / \"-\" / \"_\")\n";
1262
+ str += "\n";
1263
+ str += "; Secondary grammar for parsing $workflows name part\n";
1264
+ str += "; Format: {workflowId}.{field}.{subField}[#/{jsonPointer}]\n";
1265
+ str += "workflows-name = workflows-id \".\" workflows-field \".\" workflows-sub-field [\"#\" json-pointer]\n";
1266
+ str += "workflows-id = 1*(ALPHA / DIGIT / \"_\" / \"-\")\n";
1267
+ str += "workflows-field = \"inputs\" / \"outputs\"\n";
1268
+ str += "workflows-sub-field = 1*(ALPHA / DIGIT / \".\" / \"-\" / \"_\")\n";
1269
+ str += "\n";
1270
+ str += "; Secondary grammar for parsing $sourceDescriptions name part\n";
1271
+ str += "; Format: {sourceName}.{reference}\n";
1272
+ str += "; reference can be operationId (unconstrained) or workflowId (constrained)\n";
1273
+ str += "source-descriptions-name = source-descriptions-source-name \".\" source-descriptions-reference\n";
1274
+ str += "source-descriptions-source-name = 1*(ALPHA / DIGIT / \"_\" / \"-\")\n";
1275
+ str += "source-descriptions-reference = 1*CHAR\n";
1276
+ str += "\n";
1277
+ str += "; Secondary grammar for parsing $components name part\n";
1278
+ str += "; Format: {field}.{subField}\n";
1279
+ str += "; Allowed fields: inputs, parameters, successActions, failureActions\n";
1280
+ str += "components-name = components-field \".\" components-sub-field\n";
1281
+ str += "components-field = \"inputs\" / \"parameters\" / \"successActions\" / \"failureActions\"\n";
1282
+ str += "components-sub-field = 1*(ALPHA / DIGIT / \".\" / \"-\" / \"_\")\n";
1283
+ str += "\n";
743
1284
  str += "; https://datatracker.ietf.org/doc/html/rfc6901#section-3\n";
744
1285
  str += "json-pointer = *( \"/\" reference-token )\n";
745
1286
  str += "reference-token = *( unescaped / escaped )\n";
@@ -768,7 +1309,8 @@ export default function grammar() {
768
1309
  str += " %x74 / ; t tab U+0009\n";
769
1310
  str += " %x75 4HEXDIG ) ; uXXXX U+XXXX\n";
770
1311
  str += "escape = %x5C ; \\\n";
771
- str += "unescape = %x20-21 / %x23-5B / %x5D-10FFFF\n";
1312
+ str += "unescape = %x20-21 / %x23-5B / %x5D-7A / %x7C / %x7E-10FFFF\n";
1313
+ str += " ; %x7B ('{') and %x7D ('}') are excluded from 'unescape'\n";
772
1314
  str += "\n";
773
1315
  str += "; https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1\n";
774
1316
  str += "HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n";