@swaggerexpert/arazzo-runtime-expression 1.0.0 → 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 +164 -80
  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} +773 -227
  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} +773 -227
  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: 'json-pointer',
74
- lower: 'json-pointer',
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: 'reference-token',
80
- lower: 'reference-token',
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: 'unescaped',
86
- lower: 'unescaped',
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: 'escaped',
92
- lower: 'escaped',
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: 'name',
98
- lower: 'name',
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: 11
303
+ index: 6
208
304
  }; // RNM(name)
209
305
  this.rules[0].opcodes[13] = {
210
306
  type: 2,
@@ -216,7 +312,7 @@ export default function grammar() {
216
312
  }; // TLS
217
313
  this.rules[0].opcodes[15] = {
218
314
  type: 4,
219
- index: 11
315
+ index: 6
220
316
  }; // RNM(name)
221
317
  this.rules[0].opcodes[16] = {
222
318
  type: 2,
@@ -228,7 +324,7 @@ export default function grammar() {
228
324
  }; // TLS
229
325
  this.rules[0].opcodes[18] = {
230
326
  type: 4,
231
- index: 11
327
+ index: 6
232
328
  }; // RNM(name)
233
329
  this.rules[0].opcodes[19] = {
234
330
  type: 2,
@@ -240,7 +336,7 @@ export default function grammar() {
240
336
  }; // TLS
241
337
  this.rules[0].opcodes[21] = {
242
338
  type: 4,
243
- index: 11
339
+ index: 6
244
340
  }; // RNM(name)
245
341
  this.rules[0].opcodes[22] = {
246
342
  type: 2,
@@ -252,7 +348,7 @@ export default function grammar() {
252
348
  }; // TLS
253
349
  this.rules[0].opcodes[24] = {
254
350
  type: 4,
255
- index: 11
351
+ index: 6
256
352
  }; // RNM(name)
257
353
  this.rules[0].opcodes[25] = {
258
354
  type: 2,
@@ -264,125 +360,118 @@ export default function grammar() {
264
360
  }; // TLS
265
361
  this.rules[0].opcodes[27] = {
266
362
  type: 4,
267
- index: 11
363
+ index: 6
268
364
  }; // RNM(name)
269
- this.rules[0].opcodes[28] = {
270
- type: 2,
271
- children: [29, 30]
272
- }; // CAT
273
- this.rules[0].opcodes[29] = {
274
- 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]
276
- }; // TLS
277
- this.rules[0].opcodes[30] = {
278
- type: 4,
279
- index: 1
280
- }; // RNM(parameter-name)
281
365
 
282
- /* parameter-name */
366
+ /* source */
283
367
  this.rules[1].opcodes = [];
284
368
  this.rules[1].opcodes[0] = {
285
- type: 4,
286
- index: 11
287
- }; // RNM(name)
288
-
289
- /* source */
290
- this.rules[2].opcodes = [];
291
- this.rules[2].opcodes[0] = {
292
369
  type: 1,
293
370
  children: [1, 2, 3, 4]
294
371
  }; // ALT
295
- this.rules[2].opcodes[1] = {
372
+ this.rules[1].opcodes[1] = {
296
373
  type: 4,
297
- index: 3
374
+ index: 2
298
375
  }; // RNM(header-reference)
299
- this.rules[2].opcodes[2] = {
376
+ this.rules[1].opcodes[2] = {
300
377
  type: 4,
301
- index: 4
378
+ index: 3
302
379
  }; // RNM(query-reference)
303
- this.rules[2].opcodes[3] = {
380
+ this.rules[1].opcodes[3] = {
304
381
  type: 4,
305
- index: 5
382
+ index: 4
306
383
  }; // RNM(path-reference)
307
- this.rules[2].opcodes[4] = {
384
+ this.rules[1].opcodes[4] = {
308
385
  type: 4,
309
- index: 6
386
+ index: 5
310
387
  }; // RNM(body-reference)
311
388
 
312
389
  /* header-reference */
313
- this.rules[3].opcodes = [];
314
- this.rules[3].opcodes[0] = {
390
+ this.rules[2].opcodes = [];
391
+ this.rules[2].opcodes[0] = {
315
392
  type: 2,
316
393
  children: [1, 2]
317
394
  }; // CAT
318
- this.rules[3].opcodes[1] = {
395
+ this.rules[2].opcodes[1] = {
319
396
  type: 7,
320
397
  string: [104, 101, 97, 100, 101, 114, 46]
321
398
  }; // TLS
322
- this.rules[3].opcodes[2] = {
399
+ this.rules[2].opcodes[2] = {
323
400
  type: 4,
324
- index: 12
401
+ index: 28
325
402
  }; // RNM(token)
326
403
 
327
404
  /* query-reference */
328
- this.rules[4].opcodes = [];
329
- this.rules[4].opcodes[0] = {
405
+ this.rules[3].opcodes = [];
406
+ this.rules[3].opcodes[0] = {
330
407
  type: 2,
331
408
  children: [1, 2]
332
409
  }; // CAT
333
- this.rules[4].opcodes[1] = {
410
+ this.rules[3].opcodes[1] = {
334
411
  type: 7,
335
412
  string: [113, 117, 101, 114, 121, 46]
336
413
  }; // TLS
337
- this.rules[4].opcodes[2] = {
414
+ this.rules[3].opcodes[2] = {
338
415
  type: 4,
339
- index: 11
416
+ index: 6
340
417
  }; // RNM(name)
341
418
 
342
419
  /* path-reference */
343
- this.rules[5].opcodes = [];
344
- this.rules[5].opcodes[0] = {
420
+ this.rules[4].opcodes = [];
421
+ this.rules[4].opcodes[0] = {
345
422
  type: 2,
346
423
  children: [1, 2]
347
424
  }; // CAT
348
- this.rules[5].opcodes[1] = {
425
+ this.rules[4].opcodes[1] = {
349
426
  type: 7,
350
427
  string: [112, 97, 116, 104, 46]
351
428
  }; // TLS
352
- this.rules[5].opcodes[2] = {
429
+ this.rules[4].opcodes[2] = {
353
430
  type: 4,
354
- index: 11
431
+ index: 6
355
432
  }; // RNM(name)
356
433
 
357
434
  /* body-reference */
358
- this.rules[6].opcodes = [];
359
- this.rules[6].opcodes[0] = {
435
+ this.rules[5].opcodes = [];
436
+ this.rules[5].opcodes[0] = {
360
437
  type: 2,
361
438
  children: [1, 2]
362
439
  }; // CAT
363
- this.rules[6].opcodes[1] = {
440
+ this.rules[5].opcodes[1] = {
364
441
  type: 7,
365
442
  string: [98, 111, 100, 121]
366
443
  }; // TLS
367
- this.rules[6].opcodes[2] = {
444
+ this.rules[5].opcodes[2] = {
368
445
  type: 3,
369
446
  min: 0,
370
447
  max: 1
371
448
  }; // REP
372
- this.rules[6].opcodes[3] = {
449
+ this.rules[5].opcodes[3] = {
373
450
  type: 2,
374
451
  children: [4, 5]
375
452
  }; // CAT
376
- this.rules[6].opcodes[4] = {
453
+ this.rules[5].opcodes[4] = {
377
454
  type: 7,
378
455
  string: [35]
379
456
  }; // TLS
380
- this.rules[6].opcodes[5] = {
457
+ this.rules[5].opcodes[5] = {
381
458
  type: 4,
382
- index: 7
459
+ index: 24
383
460
  }; // RNM(json-pointer)
384
461
 
385
- /* json-pointer */
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 */
386
475
  this.rules[7].opcodes = [];
387
476
  this.rules[7].opcodes[0] = {
388
477
  type: 3,
@@ -390,39 +479,38 @@ export default function grammar() {
390
479
  max: Infinity
391
480
  }; // REP
392
481
  this.rules[7].opcodes[1] = {
393
- type: 2,
482
+ type: 1,
394
483
  children: [2, 3]
395
- }; // CAT
484
+ }; // ALT
396
485
  this.rules[7].opcodes[2] = {
397
- type: 7,
398
- string: [47]
399
- }; // TLS
486
+ type: 4,
487
+ index: 9
488
+ }; // RNM(literal-char)
400
489
  this.rules[7].opcodes[3] = {
401
490
  type: 4,
402
491
  index: 8
403
- }; // RNM(reference-token)
492
+ }; // RNM(embedded-expression)
404
493
 
405
- /* reference-token */
494
+ /* embedded-expression */
406
495
  this.rules[8].opcodes = [];
407
496
  this.rules[8].opcodes[0] = {
408
- type: 3,
409
- min: 0,
410
- max: Infinity
411
- }; // REP
497
+ type: 2,
498
+ children: [1, 2, 3]
499
+ }; // CAT
412
500
  this.rules[8].opcodes[1] = {
413
- type: 1,
414
- children: [2, 3]
415
- }; // ALT
501
+ type: 7,
502
+ string: [123]
503
+ }; // TLS
416
504
  this.rules[8].opcodes[2] = {
417
505
  type: 4,
418
- index: 9
419
- }; // RNM(unescaped)
506
+ index: 0
507
+ }; // RNM(expression)
420
508
  this.rules[8].opcodes[3] = {
421
- type: 4,
422
- index: 10
423
- }; // RNM(escaped)
509
+ type: 7,
510
+ string: [125]
511
+ }; // TLS
424
512
 
425
- /* unescaped */
513
+ /* literal-char */
426
514
  this.rules[9].opcodes = [];
427
515
  this.rules[9].opcodes[0] = {
428
516
  type: 1,
@@ -431,297 +519,718 @@ export default function grammar() {
431
519
  this.rules[9].opcodes[1] = {
432
520
  type: 5,
433
521
  min: 0,
434
- max: 46
522
+ max: 122
435
523
  }; // TRG
436
524
  this.rules[9].opcodes[2] = {
437
- type: 5,
438
- min: 48,
439
- max: 125
440
- }; // TRG
525
+ type: 6,
526
+ string: [124]
527
+ }; // TBS
441
528
  this.rules[9].opcodes[3] = {
442
529
  type: 5,
443
- min: 127,
530
+ min: 126,
444
531
  max: 1114111
445
532
  }; // TRG
446
533
 
447
- /* escaped */
534
+ /* steps-name */
448
535
  this.rules[10].opcodes = [];
449
536
  this.rules[10].opcodes[0] = {
450
537
  type: 2,
451
- children: [1, 2]
538
+ children: [1, 2, 3, 4, 5, 6]
452
539
  }; // CAT
453
540
  this.rules[10].opcodes[1] = {
454
- type: 7,
455
- string: [126]
456
- }; // TLS
541
+ type: 4,
542
+ index: 11
543
+ }; // RNM(steps-id)
457
544
  this.rules[10].opcodes[2] = {
458
- type: 1,
459
- children: [3, 4]
460
- }; // ALT
461
- this.rules[10].opcodes[3] = {
462
545
  type: 7,
463
- string: [48]
546
+ string: [46]
464
547
  }; // TLS
548
+ this.rules[10].opcodes[3] = {
549
+ type: 4,
550
+ index: 12
551
+ }; // RNM(steps-field)
465
552
  this.rules[10].opcodes[4] = {
466
553
  type: 7,
467
- string: [49]
554
+ string: [46]
468
555
  }; // TLS
469
-
470
- /* name */
471
- this.rules[11].opcodes = [];
472
- this.rules[11].opcodes[0] = {
556
+ this.rules[10].opcodes[5] = {
557
+ type: 4,
558
+ index: 13
559
+ }; // RNM(steps-sub-field)
560
+ this.rules[10].opcodes[6] = {
473
561
  type: 3,
474
562
  min: 0,
475
- max: Infinity
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
476
584
  }; // REP
477
585
  this.rules[11].opcodes[1] = {
586
+ type: 1,
587
+ children: [2, 3, 4, 5]
588
+ }; // ALT
589
+ this.rules[11].opcodes[2] = {
478
590
  type: 4,
479
- index: 14
480
- }; // RNM(CHAR)
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
481
605
 
482
- /* token */
606
+ /* steps-field */
483
607
  this.rules[12].opcodes = [];
484
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] = {
485
616
  type: 3,
486
617
  min: 1,
487
618
  max: Infinity
488
619
  }; // REP
489
- this.rules[12].opcodes[1] = {
620
+ this.rules[13].opcodes[1] = {
621
+ type: 1,
622
+ children: [2, 3, 4, 5, 6]
623
+ }; // ALT
624
+ this.rules[13].opcodes[2] = {
490
625
  type: 4,
491
- index: 13
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] = {
752
+ type: 7,
753
+ string: [46]
754
+ }; // TLS
755
+ this.rules[17].opcodes[5] = {
756
+ type: 7,
757
+ string: [45]
758
+ }; // TLS
759
+ this.rules[17].opcodes[6] = {
760
+ type: 7,
761
+ string: [95]
762
+ }; // TLS
763
+
764
+ /* source-descriptions-name */
765
+ this.rules[18].opcodes = [];
766
+ this.rules[18].opcodes[0] = {
767
+ type: 2,
768
+ children: [1, 2, 3]
769
+ }; // CAT
770
+ this.rules[18].opcodes[1] = {
771
+ type: 4,
772
+ index: 19
773
+ }; // RNM(source-descriptions-source-name)
774
+ this.rules[18].opcodes[2] = {
775
+ type: 7,
776
+ string: [46]
777
+ }; // TLS
778
+ this.rules[18].opcodes[3] = {
779
+ type: 4,
780
+ index: 20
781
+ }; // RNM(source-descriptions-reference)
782
+
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] = {
791
+ type: 1,
792
+ children: [2, 3, 4, 5]
793
+ }; // ALT
794
+ this.rules[19].opcodes[2] = {
795
+ type: 4,
796
+ index: 35
797
+ }; // RNM(ALPHA)
798
+ this.rules[19].opcodes[3] = {
799
+ type: 4,
800
+ index: 34
801
+ }; // RNM(DIGIT)
802
+ this.rules[19].opcodes[4] = {
803
+ type: 7,
804
+ string: [95]
805
+ }; // TLS
806
+ this.rules[19].opcodes[5] = {
807
+ type: 7,
808
+ string: [45]
809
+ }; // TLS
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] = {
819
+ type: 4,
820
+ index: 30
821
+ }; // RNM(CHAR)
822
+
823
+ /* components-name */
824
+ this.rules[21].opcodes = [];
825
+ this.rules[21].opcodes[0] = {
826
+ type: 2,
827
+ children: [1, 2, 3]
828
+ }; // CAT
829
+ this.rules[21].opcodes[1] = {
830
+ type: 4,
831
+ index: 22
832
+ }; // RNM(components-field)
833
+ this.rules[21].opcodes[2] = {
834
+ type: 7,
835
+ string: [46]
836
+ }; // TLS
837
+ this.rules[21].opcodes[3] = {
838
+ type: 4,
839
+ index: 23
840
+ }; // RNM(components-sub-field)
841
+
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] = {
849
+ type: 7,
850
+ string: [105, 110, 112, 117, 116, 115]
851
+ }; // TLS
852
+ this.rules[22].opcodes[2] = {
853
+ type: 7,
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]
863
+ }; // TLS
864
+
865
+ /* components-sub-field */
866
+ this.rules[23].opcodes = [];
867
+ this.rules[23].opcodes[0] = {
868
+ type: 3,
869
+ min: 1,
870
+ max: Infinity
871
+ }; // REP
872
+ this.rules[23].opcodes[1] = {
873
+ type: 1,
874
+ children: [2, 3, 4, 5, 6]
875
+ }; // ALT
876
+ this.rules[23].opcodes[2] = {
877
+ type: 4,
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
896
+
897
+ /* json-pointer */
898
+ this.rules[24].opcodes = [];
899
+ this.rules[24].opcodes[0] = {
900
+ type: 3,
901
+ min: 0,
902
+ max: Infinity
903
+ }; // REP
904
+ this.rules[24].opcodes[1] = {
905
+ type: 2,
906
+ children: [2, 3]
907
+ }; // CAT
908
+ this.rules[24].opcodes[2] = {
909
+ type: 7,
910
+ string: [47]
911
+ }; // TLS
912
+ this.rules[24].opcodes[3] = {
913
+ type: 4,
914
+ index: 25
915
+ }; // RNM(reference-token)
916
+
917
+ /* reference-token */
918
+ this.rules[25].opcodes = [];
919
+ this.rules[25].opcodes[0] = {
920
+ type: 3,
921
+ min: 0,
922
+ max: Infinity
923
+ }; // REP
924
+ this.rules[25].opcodes[1] = {
925
+ type: 1,
926
+ children: [2, 3]
927
+ }; // ALT
928
+ this.rules[25].opcodes[2] = {
929
+ type: 4,
930
+ index: 26
931
+ }; // RNM(unescaped)
932
+ this.rules[25].opcodes[3] = {
933
+ type: 4,
934
+ index: 27
935
+ }; // RNM(escaped)
936
+
937
+ /* unescaped */
938
+ this.rules[26].opcodes = [];
939
+ this.rules[26].opcodes[0] = {
940
+ type: 1,
941
+ children: [1, 2, 3]
942
+ }; // ALT
943
+ this.rules[26].opcodes[1] = {
944
+ type: 5,
945
+ min: 0,
946
+ max: 46
947
+ }; // TRG
948
+ this.rules[26].opcodes[2] = {
949
+ type: 5,
950
+ min: 48,
951
+ max: 125
952
+ }; // TRG
953
+ this.rules[26].opcodes[3] = {
954
+ type: 5,
955
+ min: 127,
956
+ max: 1114111
957
+ }; // TRG
958
+
959
+ /* escaped */
960
+ this.rules[27].opcodes = [];
961
+ this.rules[27].opcodes[0] = {
962
+ type: 2,
963
+ children: [1, 2]
964
+ }; // CAT
965
+ this.rules[27].opcodes[1] = {
966
+ type: 7,
967
+ string: [126]
968
+ }; // TLS
969
+ this.rules[27].opcodes[2] = {
970
+ type: 1,
971
+ children: [3, 4]
972
+ }; // ALT
973
+ this.rules[27].opcodes[3] = {
974
+ type: 7,
975
+ string: [48]
976
+ }; // TLS
977
+ this.rules[27].opcodes[4] = {
978
+ type: 7,
979
+ string: [49]
980
+ }; // TLS
981
+
982
+ /* token */
983
+ this.rules[28].opcodes = [];
984
+ this.rules[28].opcodes[0] = {
985
+ type: 3,
986
+ min: 1,
987
+ max: Infinity
988
+ }; // REP
989
+ this.rules[28].opcodes[1] = {
990
+ type: 4,
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,13 +1240,46 @@ 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";
739
1247
  str += "path-reference = \"path.\" name\n";
740
1248
  str += "body-reference = \"body\" [\"#\" json-pointer ]\n";
1249
+ str += "name = *( CHAR )\n";
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";
741
1283
  str += "\n";
742
1284
  str += "; https://datatracker.ietf.org/doc/html/rfc6901#section-3\n";
743
1285
  str += "json-pointer = *( \"/\" reference-token )\n";
@@ -746,10 +1288,13 @@ export default function grammar() {
746
1288
  str += " ; %x2F ('/') and %x7E ('~') are excluded from 'unescaped'\n";
747
1289
  str += "escaped = \"~\" ( \"0\" / \"1\" )\n";
748
1290
  str += " ; representing '~' and '/', respectively\n";
749
- str += "name = *( CHAR )\n";
750
- str += "token = 1*tchar\n";
751
- str += "tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\" / \"+\" / \"-\" / \".\"\n";
752
- str += " / \"^\" /\"_\" / \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n";
1291
+ str += "\n";
1292
+ str += "; https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6\n";
1293
+ str += "token = 1*tchar\n";
1294
+ str += "tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n";
1295
+ str += " / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n";
1296
+ str += " / DIGIT / ALPHA\n";
1297
+ str += " ; any VCHAR, except delimiters\n";
753
1298
  str += "\n";
754
1299
  str += "; https://www.rfc-editor.org/rfc/rfc7159#section-7\n";
755
1300
  str += "CHAR = unescape /\n";
@@ -764,7 +1309,8 @@ export default function grammar() {
764
1309
  str += " %x74 / ; t tab U+0009\n";
765
1310
  str += " %x75 4HEXDIG ) ; uXXXX U+XXXX\n";
766
1311
  str += "escape = %x5C ; \\\n";
767
- 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";
768
1314
  str += "\n";
769
1315
  str += "; https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1\n";
770
1316
  str += "HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n";