pickle-jar 1.1.0 → 1.2.0

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.
@@ -46,7 +46,7 @@ class GherkinParser extends Parser_1.Parser {
46
46
  this.state = 43;
47
47
  this._errHandler.sync(this);
48
48
  _la = this._input.LA(1);
49
- while (_la === GherkinParser.FEATURE) {
49
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.FEATURE) | (1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
50
50
  {
51
51
  {
52
52
  this.state = 40;
@@ -80,55 +80,68 @@ class GherkinParser extends Parser_1.Parser {
80
80
  this.enterRule(_localctx, 2, GherkinParser.RULE_feature);
81
81
  let _la;
82
82
  try {
83
+ let _alt;
83
84
  this.enterOuterAlt(_localctx, 1);
84
85
  {
85
- this.state = 46;
86
- this.match(GherkinParser.FEATURE);
87
86
  this.state = 47;
87
+ this._errHandler.sync(this);
88
+ _la = this._input.LA(1);
89
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
90
+ {
91
+ this.state = 46;
92
+ this.tags();
93
+ }
94
+ }
95
+ this.state = 49;
96
+ this.match(GherkinParser.FEATURE);
97
+ this.state = 50;
88
98
  this.contentText();
89
- this.state = 58;
99
+ this.state = 61;
90
100
  this._errHandler.sync(this);
91
- switch (this.interpreter.adaptivePredict(this._input, 4, this._ctx)) {
101
+ switch (this.interpreter.adaptivePredict(this._input, 5, this._ctx)) {
92
102
  case 1:
93
103
  {
94
- this.state = 49;
104
+ this.state = 52;
95
105
  this._errHandler.sync(this);
96
- _la = this._input.LA(1);
97
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.BACKGROUND) | (1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
98
- {
99
- this.state = 48;
100
- this.background();
101
- }
106
+ switch (this.interpreter.adaptivePredict(this._input, 2, this._ctx)) {
107
+ case 1:
108
+ {
109
+ this.state = 51;
110
+ this.background();
111
+ }
112
+ break;
102
113
  }
103
114
  }
104
115
  break;
105
116
  case 2:
106
117
  {
107
- this.state = 55;
118
+ this.state = 58;
108
119
  this._errHandler.sync(this);
109
- _la = this._input.LA(1);
110
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.SCENARIO) | (1 << GherkinParser.SCENARIO_OUTLINE) | (1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
111
- {
112
- this.state = 53;
113
- this._errHandler.sync(this);
114
- switch (this.interpreter.adaptivePredict(this._input, 2, this._ctx)) {
115
- case 1:
116
- {
117
- this.state = 51;
118
- this.scenario();
119
- }
120
- break;
121
- case 2:
122
- {
123
- this.state = 52;
124
- this.scenarioOutline();
125
- }
126
- break;
120
+ _alt = this.interpreter.adaptivePredict(this._input, 4, this._ctx);
121
+ while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
122
+ if (_alt === 1) {
123
+ {
124
+ this.state = 56;
125
+ this._errHandler.sync(this);
126
+ switch (this.interpreter.adaptivePredict(this._input, 3, this._ctx)) {
127
+ case 1:
128
+ {
129
+ this.state = 54;
130
+ this.scenario();
131
+ }
132
+ break;
133
+ case 2:
134
+ {
135
+ this.state = 55;
136
+ this.scenarioOutline();
137
+ }
138
+ break;
139
+ }
127
140
  }
128
141
  }
129
- this.state = 57;
142
+ this.state = 60;
130
143
  this._errHandler.sync(this);
131
- _la = this._input.LA(1);
144
+ _alt = this.interpreter.adaptivePredict(this._input, 4, this._ctx);
132
145
  }
133
146
  }
134
147
  break;
@@ -159,62 +172,64 @@ class GherkinParser extends Parser_1.Parser {
159
172
  let _alt;
160
173
  this.enterOuterAlt(_localctx, 1);
161
174
  {
162
- this.state = 61;
175
+ this.state = 64;
163
176
  this._errHandler.sync(this);
164
177
  _la = this._input.LA(1);
165
178
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
166
179
  {
167
- this.state = 60;
180
+ this.state = 63;
168
181
  this.tags();
169
182
  }
170
183
  }
171
- this.state = 63;
184
+ this.state = 66;
172
185
  this.match(GherkinParser.BACKGROUND);
173
- this.state = 64;
186
+ this.state = 67;
174
187
  this.contentText();
175
- this.state = 65;
188
+ this.state = 68;
176
189
  this.givenStep();
177
- this.state = 69;
190
+ this.state = 72;
178
191
  this._errHandler.sync(this);
179
- _alt = this.interpreter.adaptivePredict(this._input, 6, this._ctx);
192
+ _alt = this.interpreter.adaptivePredict(this._input, 7, this._ctx);
180
193
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
181
194
  if (_alt === 1) {
182
195
  {
183
196
  {
184
- this.state = 66;
197
+ this.state = 69;
185
198
  this.andGivenStep();
186
199
  }
187
200
  }
188
201
  }
189
- this.state = 71;
202
+ this.state = 74;
190
203
  this._errHandler.sync(this);
191
- _alt = this.interpreter.adaptivePredict(this._input, 6, this._ctx);
204
+ _alt = this.interpreter.adaptivePredict(this._input, 7, this._ctx);
192
205
  }
193
- this.state = 76;
206
+ this.state = 79;
194
207
  this._errHandler.sync(this);
195
- _la = this._input.LA(1);
196
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.SCENARIO) | (1 << GherkinParser.SCENARIO_OUTLINE) | (1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
197
- {
198
- this.state = 74;
199
- this._errHandler.sync(this);
200
- switch (this.interpreter.adaptivePredict(this._input, 7, this._ctx)) {
201
- case 1:
202
- {
203
- this.state = 72;
204
- this.scenario();
205
- }
206
- break;
207
- case 2:
208
- {
209
- this.state = 73;
210
- this.scenarioOutline();
211
- }
212
- break;
208
+ _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx);
209
+ while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
210
+ if (_alt === 1) {
211
+ {
212
+ this.state = 77;
213
+ this._errHandler.sync(this);
214
+ switch (this.interpreter.adaptivePredict(this._input, 8, this._ctx)) {
215
+ case 1:
216
+ {
217
+ this.state = 75;
218
+ this.scenario();
219
+ }
220
+ break;
221
+ case 2:
222
+ {
223
+ this.state = 76;
224
+ this.scenarioOutline();
225
+ }
226
+ break;
227
+ }
213
228
  }
214
229
  }
215
- this.state = 78;
230
+ this.state = 81;
216
231
  this._errHandler.sync(this);
217
- _la = this._input.LA(1);
232
+ _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx);
218
233
  }
219
234
  }
220
235
  }
@@ -241,20 +256,20 @@ class GherkinParser extends Parser_1.Parser {
241
256
  try {
242
257
  this.enterOuterAlt(_localctx, 1);
243
258
  {
244
- this.state = 80;
259
+ this.state = 83;
245
260
  this._errHandler.sync(this);
246
261
  _la = this._input.LA(1);
247
262
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
248
263
  {
249
- this.state = 79;
264
+ this.state = 82;
250
265
  this.tags();
251
266
  }
252
267
  }
253
- this.state = 82;
268
+ this.state = 85;
254
269
  this.match(GherkinParser.SCENARIO);
255
- this.state = 83;
270
+ this.state = 86;
256
271
  this.contentText();
257
- this.state = 84;
272
+ this.state = 87;
258
273
  this.step();
259
274
  }
260
275
  }
@@ -281,22 +296,22 @@ class GherkinParser extends Parser_1.Parser {
281
296
  try {
282
297
  this.enterOuterAlt(_localctx, 1);
283
298
  {
284
- this.state = 87;
299
+ this.state = 90;
285
300
  this._errHandler.sync(this);
286
301
  _la = this._input.LA(1);
287
302
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
288
303
  {
289
- this.state = 86;
304
+ this.state = 89;
290
305
  this.tags();
291
306
  }
292
307
  }
293
- this.state = 89;
308
+ this.state = 92;
294
309
  this.match(GherkinParser.SCENARIO_OUTLINE);
295
- this.state = 90;
310
+ this.state = 93;
296
311
  this.contentText();
297
- this.state = 91;
312
+ this.state = 94;
298
313
  this.step();
299
- this.state = 92;
314
+ this.state = 95;
300
315
  this.examplesBlock();
301
316
  }
302
317
  }
@@ -323,21 +338,21 @@ class GherkinParser extends Parser_1.Parser {
323
338
  try {
324
339
  this.enterOuterAlt(_localctx, 1);
325
340
  {
326
- this.state = 94;
341
+ this.state = 97;
327
342
  this.match(GherkinParser.EXAMPLES);
328
- this.state = 95;
343
+ this.state = 98;
329
344
  this.tableHeader();
330
- this.state = 97;
345
+ this.state = 100;
331
346
  this._errHandler.sync(this);
332
347
  _la = this._input.LA(1);
333
348
  do {
334
349
  {
335
350
  {
336
- this.state = 96;
351
+ this.state = 99;
337
352
  this.tableRow();
338
353
  }
339
354
  }
340
- this.state = 99;
355
+ this.state = 102;
341
356
  this._errHandler.sync(this);
342
357
  _la = this._input.LA(1);
343
358
  } while (_la === GherkinParser.PIPE);
@@ -365,7 +380,7 @@ class GherkinParser extends Parser_1.Parser {
365
380
  try {
366
381
  this.enterOuterAlt(_localctx, 1);
367
382
  {
368
- this.state = 101;
383
+ this.state = 104;
369
384
  this.tableRow();
370
385
  }
371
386
  }
@@ -393,53 +408,53 @@ class GherkinParser extends Parser_1.Parser {
393
408
  let _alt;
394
409
  this.enterOuterAlt(_localctx, 1);
395
410
  {
396
- this.state = 103;
411
+ this.state = 106;
397
412
  this.match(GherkinParser.PIPE);
398
- this.state = 105;
413
+ this.state = 108;
399
414
  this._errHandler.sync(this);
400
415
  _la = this._input.LA(1);
401
416
  do {
402
417
  {
403
418
  {
404
- this.state = 104;
419
+ this.state = 107;
405
420
  this.cell();
406
421
  }
407
422
  }
408
- this.state = 107;
423
+ this.state = 110;
409
424
  this._errHandler.sync(this);
410
425
  _la = this._input.LA(1);
411
426
  } while (_la === GherkinParser.TEXT_CHARACTER);
412
- this.state = 117;
427
+ this.state = 120;
413
428
  this._errHandler.sync(this);
414
- _alt = this.interpreter.adaptivePredict(this._input, 14, this._ctx);
429
+ _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx);
415
430
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
416
431
  if (_alt === 1) {
417
432
  {
418
433
  {
419
- this.state = 109;
434
+ this.state = 112;
420
435
  this.match(GherkinParser.PIPE);
421
- this.state = 111;
436
+ this.state = 114;
422
437
  this._errHandler.sync(this);
423
438
  _la = this._input.LA(1);
424
439
  do {
425
440
  {
426
441
  {
427
- this.state = 110;
442
+ this.state = 113;
428
443
  this.cell();
429
444
  }
430
445
  }
431
- this.state = 113;
446
+ this.state = 116;
432
447
  this._errHandler.sync(this);
433
448
  _la = this._input.LA(1);
434
449
  } while (_la === GherkinParser.TEXT_CHARACTER);
435
450
  }
436
451
  }
437
452
  }
438
- this.state = 119;
453
+ this.state = 122;
439
454
  this._errHandler.sync(this);
440
- _alt = this.interpreter.adaptivePredict(this._input, 14, this._ctx);
455
+ _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx);
441
456
  }
442
- this.state = 120;
457
+ this.state = 123;
443
458
  this.match(GherkinParser.PIPE);
444
459
  }
445
460
  }
@@ -465,7 +480,7 @@ class GherkinParser extends Parser_1.Parser {
465
480
  try {
466
481
  this.enterOuterAlt(_localctx, 1);
467
482
  {
468
- this.state = 122;
483
+ this.state = 125;
469
484
  this.contentText();
470
485
  }
471
486
  }
@@ -492,75 +507,75 @@ class GherkinParser extends Parser_1.Parser {
492
507
  let _alt;
493
508
  this.enterOuterAlt(_localctx, 1);
494
509
  {
495
- this.state = 124;
510
+ this.state = 127;
496
511
  this.givenStep();
497
- this.state = 128;
512
+ this.state = 131;
498
513
  this._errHandler.sync(this);
499
- _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx);
514
+ _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx);
500
515
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
501
516
  if (_alt === 1) {
502
517
  {
503
518
  {
504
- this.state = 125;
519
+ this.state = 128;
505
520
  this.andGivenStep();
506
521
  }
507
522
  }
508
523
  }
509
- this.state = 130;
524
+ this.state = 133;
510
525
  this._errHandler.sync(this);
511
- _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx);
526
+ _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx);
512
527
  }
513
- this.state = 131;
528
+ this.state = 134;
514
529
  this.whenStep();
515
- this.state = 135;
530
+ this.state = 138;
516
531
  this._errHandler.sync(this);
517
- _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx);
532
+ _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx);
518
533
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
519
534
  if (_alt === 1) {
520
535
  {
521
536
  {
522
- this.state = 132;
537
+ this.state = 135;
523
538
  this.andWhenStep();
524
539
  }
525
540
  }
526
541
  }
527
- this.state = 137;
542
+ this.state = 140;
528
543
  this._errHandler.sync(this);
529
- _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx);
544
+ _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx);
530
545
  }
531
- this.state = 138;
546
+ this.state = 141;
532
547
  this.thenStep();
533
- this.state = 142;
548
+ this.state = 145;
534
549
  this._errHandler.sync(this);
535
- _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx);
550
+ _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx);
536
551
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
537
552
  if (_alt === 1) {
538
553
  {
539
554
  {
540
- this.state = 139;
555
+ this.state = 142;
541
556
  this.andStep();
542
557
  }
543
558
  }
544
559
  }
545
- this.state = 144;
560
+ this.state = 147;
546
561
  this._errHandler.sync(this);
547
- _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx);
562
+ _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx);
548
563
  }
549
- this.state = 148;
564
+ this.state = 151;
550
565
  this._errHandler.sync(this);
551
- _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx);
566
+ _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx);
552
567
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
553
568
  if (_alt === 1) {
554
569
  {
555
570
  {
556
- this.state = 145;
571
+ this.state = 148;
557
572
  this.butStep();
558
573
  }
559
574
  }
560
575
  }
561
- this.state = 150;
576
+ this.state = 153;
562
577
  this._errHandler.sync(this);
563
- _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx);
578
+ _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx);
564
579
  }
565
580
  }
566
581
  }
@@ -587,25 +602,25 @@ class GherkinParser extends Parser_1.Parser {
587
602
  try {
588
603
  this.enterOuterAlt(_localctx, 1);
589
604
  {
590
- this.state = 152;
605
+ this.state = 155;
591
606
  this._errHandler.sync(this);
592
607
  _la = this._input.LA(1);
593
608
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
594
609
  {
595
- this.state = 151;
610
+ this.state = 154;
596
611
  this.tags();
597
612
  }
598
613
  }
599
- this.state = 154;
614
+ this.state = 157;
600
615
  this.match(GherkinParser.GIVEN);
601
- this.state = 155;
616
+ this.state = 158;
602
617
  this.contentText();
603
- this.state = 157;
618
+ this.state = 160;
604
619
  this._errHandler.sync(this);
605
620
  _la = this._input.LA(1);
606
621
  if (_la === GherkinParser.DOC_STRING) {
607
622
  {
608
- this.state = 156;
623
+ this.state = 159;
609
624
  this.docString();
610
625
  }
611
626
  }
@@ -634,25 +649,25 @@ class GherkinParser extends Parser_1.Parser {
634
649
  try {
635
650
  this.enterOuterAlt(_localctx, 1);
636
651
  {
637
- this.state = 160;
652
+ this.state = 163;
638
653
  this._errHandler.sync(this);
639
654
  _la = this._input.LA(1);
640
655
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
641
656
  {
642
- this.state = 159;
657
+ this.state = 162;
643
658
  this.tags();
644
659
  }
645
660
  }
646
- this.state = 162;
661
+ this.state = 165;
647
662
  this.match(GherkinParser.AND_GIVEN);
648
- this.state = 163;
663
+ this.state = 166;
649
664
  this.contentText();
650
- this.state = 165;
665
+ this.state = 168;
651
666
  this._errHandler.sync(this);
652
667
  _la = this._input.LA(1);
653
668
  if (_la === GherkinParser.DOC_STRING) {
654
669
  {
655
- this.state = 164;
670
+ this.state = 167;
656
671
  this.docString();
657
672
  }
658
673
  }
@@ -681,25 +696,25 @@ class GherkinParser extends Parser_1.Parser {
681
696
  try {
682
697
  this.enterOuterAlt(_localctx, 1);
683
698
  {
684
- this.state = 168;
699
+ this.state = 171;
685
700
  this._errHandler.sync(this);
686
701
  _la = this._input.LA(1);
687
702
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
688
703
  {
689
- this.state = 167;
704
+ this.state = 170;
690
705
  this.tags();
691
706
  }
692
707
  }
693
- this.state = 170;
708
+ this.state = 173;
694
709
  this.match(GherkinParser.WHEN);
695
- this.state = 171;
710
+ this.state = 174;
696
711
  this.contentText();
697
- this.state = 173;
712
+ this.state = 176;
698
713
  this._errHandler.sync(this);
699
714
  _la = this._input.LA(1);
700
715
  if (_la === GherkinParser.DOC_STRING) {
701
716
  {
702
- this.state = 172;
717
+ this.state = 175;
703
718
  this.docString();
704
719
  }
705
720
  }
@@ -728,25 +743,25 @@ class GherkinParser extends Parser_1.Parser {
728
743
  try {
729
744
  this.enterOuterAlt(_localctx, 1);
730
745
  {
731
- this.state = 176;
746
+ this.state = 179;
732
747
  this._errHandler.sync(this);
733
748
  _la = this._input.LA(1);
734
749
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
735
750
  {
736
- this.state = 175;
751
+ this.state = 178;
737
752
  this.tags();
738
753
  }
739
754
  }
740
- this.state = 178;
755
+ this.state = 181;
741
756
  this.match(GherkinParser.AND_WHEN);
742
- this.state = 179;
757
+ this.state = 182;
743
758
  this.contentText();
744
- this.state = 181;
759
+ this.state = 184;
745
760
  this._errHandler.sync(this);
746
761
  _la = this._input.LA(1);
747
762
  if (_la === GherkinParser.DOC_STRING) {
748
763
  {
749
- this.state = 180;
764
+ this.state = 183;
750
765
  this.docString();
751
766
  }
752
767
  }
@@ -775,25 +790,25 @@ class GherkinParser extends Parser_1.Parser {
775
790
  try {
776
791
  this.enterOuterAlt(_localctx, 1);
777
792
  {
778
- this.state = 184;
793
+ this.state = 187;
779
794
  this._errHandler.sync(this);
780
795
  _la = this._input.LA(1);
781
796
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
782
797
  {
783
- this.state = 183;
798
+ this.state = 186;
784
799
  this.tags();
785
800
  }
786
801
  }
787
- this.state = 186;
802
+ this.state = 189;
788
803
  this.match(GherkinParser.THEN);
789
- this.state = 187;
804
+ this.state = 190;
790
805
  this.contentText();
791
- this.state = 189;
806
+ this.state = 192;
792
807
  this._errHandler.sync(this);
793
808
  _la = this._input.LA(1);
794
809
  if (_la === GherkinParser.DOC_STRING) {
795
810
  {
796
- this.state = 188;
811
+ this.state = 191;
797
812
  this.docString();
798
813
  }
799
814
  }
@@ -822,25 +837,25 @@ class GherkinParser extends Parser_1.Parser {
822
837
  try {
823
838
  this.enterOuterAlt(_localctx, 1);
824
839
  {
825
- this.state = 192;
840
+ this.state = 195;
826
841
  this._errHandler.sync(this);
827
842
  _la = this._input.LA(1);
828
843
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
829
844
  {
830
- this.state = 191;
845
+ this.state = 194;
831
846
  this.tags();
832
847
  }
833
848
  }
834
- this.state = 194;
849
+ this.state = 197;
835
850
  this.match(GherkinParser.AND);
836
- this.state = 195;
851
+ this.state = 198;
837
852
  this.contentText();
838
- this.state = 197;
853
+ this.state = 200;
839
854
  this._errHandler.sync(this);
840
855
  _la = this._input.LA(1);
841
856
  if (_la === GherkinParser.DOC_STRING) {
842
857
  {
843
- this.state = 196;
858
+ this.state = 199;
844
859
  this.docString();
845
860
  }
846
861
  }
@@ -869,25 +884,25 @@ class GherkinParser extends Parser_1.Parser {
869
884
  try {
870
885
  this.enterOuterAlt(_localctx, 1);
871
886
  {
872
- this.state = 200;
887
+ this.state = 203;
873
888
  this._errHandler.sync(this);
874
889
  _la = this._input.LA(1);
875
890
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0)) {
876
891
  {
877
- this.state = 199;
892
+ this.state = 202;
878
893
  this.tags();
879
894
  }
880
895
  }
881
- this.state = 202;
896
+ this.state = 205;
882
897
  this.match(GherkinParser.BUT);
883
- this.state = 203;
898
+ this.state = 206;
884
899
  this.contentText();
885
- this.state = 205;
900
+ this.state = 208;
886
901
  this._errHandler.sync(this);
887
902
  _la = this._input.LA(1);
888
903
  if (_la === GherkinParser.DOC_STRING) {
889
904
  {
890
- this.state = 204;
905
+ this.state = 207;
891
906
  this.docString();
892
907
  }
893
908
  }
@@ -915,7 +930,7 @@ class GherkinParser extends Parser_1.Parser {
915
930
  try {
916
931
  this.enterOuterAlt(_localctx, 1);
917
932
  {
918
- this.state = 207;
933
+ this.state = 210;
919
934
  this.match(GherkinParser.DOC_STRING);
920
935
  }
921
936
  }
@@ -942,13 +957,13 @@ class GherkinParser extends Parser_1.Parser {
942
957
  try {
943
958
  this.enterOuterAlt(_localctx, 1);
944
959
  {
945
- this.state = 210;
960
+ this.state = 213;
946
961
  this._errHandler.sync(this);
947
962
  _la = this._input.LA(1);
948
963
  do {
949
964
  {
950
965
  {
951
- this.state = 209;
966
+ this.state = 212;
952
967
  _la = this._input.LA(1);
953
968
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0))) {
954
969
  this._errHandler.recoverInline(this);
@@ -962,7 +977,7 @@ class GherkinParser extends Parser_1.Parser {
962
977
  }
963
978
  }
964
979
  }
965
- this.state = 212;
980
+ this.state = 215;
966
981
  this._errHandler.sync(this);
967
982
  _la = this._input.LA(1);
968
983
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << GherkinParser.ONLY_TAG) | (1 << GherkinParser.SKIP_TAG) | (1 << GherkinParser.TAG))) !== 0));
@@ -991,7 +1006,7 @@ class GherkinParser extends Parser_1.Parser {
991
1006
  let _alt;
992
1007
  this.enterOuterAlt(_localctx, 1);
993
1008
  {
994
- this.state = 215;
1009
+ this.state = 218;
995
1010
  this._errHandler.sync(this);
996
1011
  _alt = 1;
997
1012
  do {
@@ -999,7 +1014,7 @@ class GherkinParser extends Parser_1.Parser {
999
1014
  case 1:
1000
1015
  {
1001
1016
  {
1002
- this.state = 214;
1017
+ this.state = 217;
1003
1018
  this.match(GherkinParser.TEXT_CHARACTER);
1004
1019
  }
1005
1020
  }
@@ -1007,9 +1022,9 @@ class GherkinParser extends Parser_1.Parser {
1007
1022
  default:
1008
1023
  throw new NoViableAltException_1.NoViableAltException(this);
1009
1024
  }
1010
- this.state = 217;
1025
+ this.state = 220;
1011
1026
  this._errHandler.sync(this);
1012
- _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx);
1027
+ _alt = this.interpreter.adaptivePredict(this._input, 35, this._ctx);
1013
1028
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
1014
1029
  }
1015
1030
  }
@@ -1096,102 +1111,104 @@ GherkinParser._SYMBOLIC_NAMES = [
1096
1111
  "DOC_STRING",
1097
1112
  ];
1098
1113
  GherkinParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(GherkinParser._LITERAL_NAMES, GherkinParser._SYMBOLIC_NAMES, []);
1099
- GherkinParser._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x17\xDE\x04\x02" +
1114
+ GherkinParser._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x17\xE1\x04\x02" +
1100
1115
  "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" +
1101
1116
  "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" +
1102
1117
  "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" +
1103
1118
  "\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x03\x02\x07\x02,\n\x02\f\x02\x0E" +
1104
- "\x02/\v\x02\x03\x03\x03\x03\x03\x03\x05\x034\n\x03\x03\x03\x03\x03\x07" +
1105
- "\x038\n\x03\f\x03\x0E\x03;\v\x03\x05\x03=\n\x03\x03\x04\x05\x04@\n\x04" +
1106
- "\x03\x04\x03\x04\x03\x04\x03\x04\x07\x04F\n\x04\f\x04\x0E\x04I\v\x04\x03" +
1107
- "\x04\x03\x04\x07\x04M\n\x04\f\x04\x0E\x04P\v\x04\x03\x05\x05\x05S\n\x05" +
1108
- "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x05\x06Z\n\x06\x03\x06\x03\x06" +
1109
- "\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x06\x07d\n\x07\r\x07" +
1110
- "\x0E\x07e\x03\b\x03\b\x03\t\x03\t\x06\tl\n\t\r\t\x0E\tm\x03\t\x03\t\x06" +
1111
- "\tr\n\t\r\t\x0E\ts\x07\tv\n\t\f\t\x0E\ty\v\t\x03\t\x03\t\x03\n\x03\n\x03" +
1112
- "\v\x03\v\x07\v\x81\n\v\f\v\x0E\v\x84\v\v\x03\v\x03\v\x07\v\x88\n\v\f\v" +
1113
- "\x0E\v\x8B\v\v\x03\v\x03\v\x07\v\x8F\n\v\f\v\x0E\v\x92\v\v\x03\v\x07\v" +
1114
- "\x95\n\v\f\v\x0E\v\x98\v\v\x03\f\x05\f\x9B\n\f\x03\f\x03\f\x03\f\x05\f" +
1115
- "\xA0\n\f\x03\r\x05\r\xA3\n\r\x03\r\x03\r\x03\r\x05\r\xA8\n\r\x03\x0E\x05" +
1116
- "\x0E\xAB\n\x0E\x03\x0E\x03\x0E\x03\x0E\x05\x0E\xB0\n\x0E\x03\x0F\x05\x0F" +
1117
- "\xB3\n\x0F\x03\x0F\x03\x0F\x03\x0F\x05\x0F\xB8\n\x0F\x03\x10\x05\x10\xBB" +
1118
- "\n\x10\x03\x10\x03\x10\x03\x10\x05\x10\xC0\n\x10\x03\x11\x05\x11\xC3\n" +
1119
- "\x11\x03\x11\x03\x11\x03\x11\x05\x11\xC8\n\x11\x03\x12\x05\x12\xCB\n\x12" +
1120
- "\x03\x12\x03\x12\x03\x12\x05\x12\xD0\n\x12\x03\x13\x03\x13\x03\x14\x06" +
1121
- "\x14\xD5\n\x14\r\x14\x0E\x14\xD6\x03\x15\x06\x15\xDA\n\x15\r\x15\x0E\x15" +
1122
- "\xDB\x03\x15\x02\x02\x02\x16\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02" +
1123
- "\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02" +
1124
- " \x02\"\x02$\x02&\x02(\x02\x02\x03\x03\x02\x10\x12\x02\xEC\x02-\x03\x02" +
1125
- "\x02\x02\x040\x03\x02\x02\x02\x06?\x03\x02\x02\x02\bR\x03\x02\x02\x02" +
1126
- "\nY\x03\x02\x02\x02\f`\x03\x02\x02\x02\x0Eg\x03\x02\x02\x02\x10i\x03\x02" +
1127
- "\x02\x02\x12|\x03\x02\x02\x02\x14~\x03\x02\x02\x02\x16\x9A\x03\x02\x02" +
1128
- "\x02\x18\xA2\x03\x02\x02\x02\x1A\xAA\x03\x02\x02\x02\x1C\xB2\x03\x02\x02" +
1129
- "\x02\x1E\xBA\x03\x02\x02\x02 \xC2\x03\x02\x02\x02\"\xCA\x03\x02\x02\x02" +
1130
- "$\xD1\x03\x02\x02\x02&\xD4\x03\x02\x02\x02(\xD9\x03\x02\x02\x02*,\x05" +
1131
- "\x04\x03\x02+*\x03\x02\x02\x02,/\x03\x02\x02\x02-+\x03\x02\x02\x02-.\x03" +
1132
- "\x02\x02\x02.\x03\x03\x02\x02\x02/-\x03\x02\x02\x0201\x07\x03\x02\x02" +
1133
- "1<\x05(\x15\x0224\x05\x06\x04\x0232\x03\x02\x02\x0234\x03\x02\x02\x02" +
1134
- "4=\x03\x02\x02\x0258\x05\b\x05\x0268\x05\n\x06\x0275\x03\x02\x02\x027" +
1135
- "6\x03\x02\x02\x028;\x03\x02\x02\x0297\x03\x02\x02\x029:\x03\x02\x02\x02" +
1136
- ":=\x03\x02\x02\x02;9\x03\x02\x02\x02<3\x03\x02\x02\x02<9\x03\x02\x02\x02" +
1137
- "=\x05\x03\x02\x02\x02>@\x05&\x14\x02?>\x03\x02\x02\x02?@\x03\x02\x02\x02" +
1138
- "@A\x03\x02\x02\x02AB\x07\x0E\x02\x02BC\x05(\x15\x02CG\x05\x16\f\x02DF" +
1139
- "\x05\x18\r\x02ED\x03\x02\x02\x02FI\x03\x02\x02\x02GE\x03\x02\x02\x02G" +
1140
- "H\x03\x02\x02\x02HN\x03\x02\x02\x02IG\x03\x02\x02\x02JM\x05\b\x05\x02" +
1141
- "KM\x05\n\x06\x02LJ\x03\x02\x02\x02LK\x03\x02\x02\x02MP\x03\x02\x02\x02" +
1142
- "NL\x03\x02\x02\x02NO\x03\x02\x02\x02O\x07\x03\x02\x02\x02PN\x03\x02\x02" +
1143
- "\x02QS\x05&\x14\x02RQ\x03\x02\x02\x02RS\x03\x02\x02\x02ST\x03\x02\x02" +
1144
- "\x02TU\x07\x04\x02\x02UV\x05(\x15\x02VW\x05\x14\v\x02W\t\x03\x02\x02\x02" +
1145
- "XZ\x05&\x14\x02YX\x03\x02\x02\x02YZ\x03\x02\x02\x02Z[\x03\x02\x02\x02" +
1146
- "[\\\x07\x05\x02\x02\\]\x05(\x15\x02]^\x05\x14\v\x02^_\x05\f\x07\x02_\v" +
1147
- "\x03\x02\x02\x02`a\x07\r\x02\x02ac\x05\x0E\b\x02bd\x05\x10\t\x02cb\x03" +
1148
- "\x02\x02\x02de\x03\x02\x02\x02ec\x03\x02\x02\x02ef\x03\x02\x02\x02f\r" +
1149
- "\x03\x02\x02\x02gh\x05\x10\t\x02h\x0F\x03\x02\x02\x02ik\x07\x0F\x02\x02" +
1150
- "jl\x05\x12\n\x02kj\x03\x02\x02\x02lm\x03\x02\x02\x02mk\x03\x02\x02\x02" +
1151
- "mn\x03\x02\x02\x02nw\x03\x02\x02\x02oq\x07\x0F\x02\x02pr\x05\x12\n\x02" +
1152
- "qp\x03\x02\x02\x02rs\x03\x02\x02\x02sq\x03\x02\x02\x02st\x03\x02\x02\x02" +
1153
- "tv\x03\x02\x02\x02uo\x03\x02\x02\x02vy\x03\x02\x02\x02wu\x03\x02\x02\x02" +
1154
- "wx\x03\x02\x02\x02xz\x03\x02\x02\x02yw\x03\x02\x02\x02z{\x07\x0F\x02\x02" +
1155
- "{\x11\x03\x02\x02\x02|}\x05(\x15\x02}\x13\x03\x02\x02\x02~\x82\x05\x16" +
1156
- "\f\x02\x7F\x81\x05\x18\r\x02\x80\x7F\x03\x02\x02\x02\x81\x84\x03\x02\x02" +
1157
- "\x02\x82\x80\x03\x02\x02\x02\x82\x83\x03\x02\x02\x02\x83\x85\x03\x02\x02" +
1158
- "\x02\x84\x82\x03\x02\x02\x02\x85\x89\x05\x1A\x0E\x02\x86\x88\x05\x1C\x0F" +
1159
- "\x02\x87\x86\x03\x02\x02\x02\x88\x8B\x03\x02\x02\x02\x89\x87\x03\x02\x02" +
1160
- "\x02\x89\x8A\x03\x02\x02\x02\x8A\x8C\x03\x02\x02\x02\x8B\x89\x03\x02\x02" +
1161
- "\x02\x8C\x90\x05\x1E\x10\x02\x8D\x8F\x05 \x11\x02\x8E\x8D\x03\x02\x02" +
1162
- "\x02\x8F\x92\x03\x02\x02\x02\x90\x8E\x03\x02\x02\x02\x90\x91\x03\x02\x02" +
1163
- "\x02\x91\x96\x03\x02\x02\x02\x92\x90\x03\x02\x02\x02\x93\x95\x05\"\x12" +
1164
- "\x02\x94\x93\x03\x02\x02\x02\x95\x98\x03\x02\x02\x02\x96\x94\x03\x02\x02" +
1165
- "\x02\x96\x97\x03\x02\x02\x02\x97\x15\x03\x02\x02\x02\x98\x96\x03\x02\x02" +
1166
- "\x02\x99\x9B\x05&\x14\x02\x9A\x99\x03\x02\x02\x02\x9A\x9B\x03\x02\x02" +
1167
- "\x02\x9B\x9C\x03\x02\x02\x02\x9C\x9D\x07\x06\x02\x02\x9D\x9F\x05(\x15" +
1168
- "\x02\x9E\xA0\x05$\x13\x02\x9F\x9E\x03\x02\x02\x02\x9F\xA0\x03\x02\x02" +
1169
- "\x02\xA0\x17\x03\x02\x02\x02\xA1\xA3\x05&\x14\x02\xA2\xA1\x03\x02\x02" +
1170
- "\x02\xA2\xA3\x03\x02\x02\x02\xA3\xA4\x03\x02\x02\x02\xA4\xA5\x07\x07\x02" +
1171
- "\x02\xA5\xA7\x05(\x15\x02\xA6\xA8\x05$\x13\x02\xA7\xA6\x03\x02\x02\x02" +
1172
- "\xA7\xA8\x03\x02\x02\x02\xA8\x19\x03\x02\x02\x02\xA9\xAB\x05&\x14\x02" +
1173
- "\xAA\xA9\x03\x02\x02\x02\xAA\xAB\x03\x02\x02\x02\xAB\xAC\x03\x02\x02\x02" +
1174
- "\xAC\xAD\x07\b\x02\x02\xAD\xAF\x05(\x15\x02\xAE\xB0\x05$\x13\x02\xAF\xAE" +
1175
- "\x03\x02\x02\x02\xAF\xB0\x03\x02\x02\x02\xB0\x1B\x03\x02\x02\x02\xB1\xB3" +
1176
- "\x05&\x14\x02\xB2\xB1\x03\x02\x02\x02\xB2\xB3\x03\x02\x02\x02\xB3\xB4" +
1177
- "\x03\x02\x02\x02\xB4\xB5\x07\t\x02\x02\xB5\xB7\x05(\x15\x02\xB6\xB8\x05" +
1178
- "$\x13\x02\xB7\xB6\x03\x02\x02\x02\xB7\xB8\x03\x02\x02\x02\xB8\x1D\x03" +
1179
- "\x02\x02\x02\xB9\xBB\x05&\x14\x02\xBA\xB9\x03\x02\x02\x02\xBA\xBB\x03" +
1180
- "\x02\x02\x02\xBB\xBC\x03\x02\x02\x02\xBC\xBD\x07\n\x02\x02\xBD\xBF\x05" +
1181
- "(\x15\x02\xBE\xC0\x05$\x13\x02\xBF\xBE\x03\x02\x02\x02\xBF\xC0\x03\x02" +
1182
- "\x02\x02\xC0\x1F\x03\x02\x02\x02\xC1\xC3\x05&\x14\x02\xC2\xC1\x03\x02" +
1183
- "\x02\x02\xC2\xC3\x03\x02\x02\x02\xC3\xC4\x03\x02\x02\x02\xC4\xC5\x07\v" +
1184
- "\x02\x02\xC5\xC7\x05(\x15\x02\xC6\xC8\x05$\x13\x02\xC7\xC6\x03\x02\x02" +
1185
- "\x02\xC7\xC8\x03\x02\x02\x02\xC8!\x03\x02\x02\x02\xC9\xCB\x05&\x14\x02" +
1186
- "\xCA\xC9\x03\x02\x02\x02\xCA\xCB\x03\x02\x02\x02\xCB\xCC\x03\x02\x02\x02" +
1187
- "\xCC\xCD\x07\f\x02\x02\xCD\xCF\x05(\x15\x02\xCE\xD0\x05$\x13\x02\xCF\xCE" +
1188
- "\x03\x02\x02\x02\xCF\xD0\x03\x02\x02\x02\xD0#\x03\x02\x02\x02\xD1\xD2" +
1189
- "\x07\x17\x02\x02\xD2%\x03\x02\x02\x02\xD3\xD5\t\x02\x02\x02\xD4\xD3\x03" +
1190
- "\x02\x02\x02\xD5\xD6\x03\x02\x02\x02\xD6\xD4\x03\x02\x02\x02\xD6\xD7\x03" +
1191
- "\x02\x02\x02\xD7\'\x03\x02\x02\x02\xD8\xDA\x07\x14\x02\x02\xD9\xD8\x03" +
1192
- "\x02\x02\x02\xDA\xDB\x03\x02\x02\x02\xDB\xD9\x03\x02\x02\x02\xDB\xDC\x03" +
1193
- "\x02\x02\x02\xDC)\x03\x02\x02\x02%-379<?GLNRYemsw\x82\x89\x90\x96\x9A" +
1194
- "\x9F\xA2\xA7\xAA\xAF\xB2\xB7\xBA\xBF\xC2\xC7\xCA\xCF\xD6\xDB";
1119
+ "\x02/\v\x02\x03\x03\x05\x032\n\x03\x03\x03\x03\x03\x03\x03\x05\x037\n" +
1120
+ "\x03\x03\x03\x03\x03\x07\x03;\n\x03\f\x03\x0E\x03>\v\x03\x05\x03@\n\x03" +
1121
+ "\x03\x04\x05\x04C\n\x04\x03\x04\x03\x04\x03\x04\x03\x04\x07\x04I\n\x04" +
1122
+ "\f\x04\x0E\x04L\v\x04\x03\x04\x03\x04\x07\x04P\n\x04\f\x04\x0E\x04S\v" +
1123
+ "\x04\x03\x05\x05\x05V\n\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x05" +
1124
+ "\x06]\n\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03" +
1125
+ "\x07\x06\x07g\n\x07\r\x07\x0E\x07h\x03\b\x03\b\x03\t\x03\t\x06\to\n\t" +
1126
+ "\r\t\x0E\tp\x03\t\x03\t\x06\tu\n\t\r\t\x0E\tv\x07\ty\n\t\f\t\x0E\t|\v" +
1127
+ "\t\x03\t\x03\t\x03\n\x03\n\x03\v\x03\v\x07\v\x84\n\v\f\v\x0E\v\x87\v\v" +
1128
+ "\x03\v\x03\v\x07\v\x8B\n\v\f\v\x0E\v\x8E\v\v\x03\v\x03\v\x07\v\x92\n\v" +
1129
+ "\f\v\x0E\v\x95\v\v\x03\v\x07\v\x98\n\v\f\v\x0E\v\x9B\v\v\x03\f\x05\f\x9E" +
1130
+ "\n\f\x03\f\x03\f\x03\f\x05\f\xA3\n\f\x03\r\x05\r\xA6\n\r\x03\r\x03\r\x03" +
1131
+ "\r\x05\r\xAB\n\r\x03\x0E\x05\x0E\xAE\n\x0E\x03\x0E\x03\x0E\x03\x0E\x05" +
1132
+ "\x0E\xB3\n\x0E\x03\x0F\x05\x0F\xB6\n\x0F\x03\x0F\x03\x0F\x03\x0F\x05\x0F" +
1133
+ "\xBB\n\x0F\x03\x10\x05\x10\xBE\n\x10\x03\x10\x03\x10\x03\x10\x05\x10\xC3" +
1134
+ "\n\x10\x03\x11\x05\x11\xC6\n\x11\x03\x11\x03\x11\x03\x11\x05\x11\xCB\n" +
1135
+ "\x11\x03\x12\x05\x12\xCE\n\x12\x03\x12\x03\x12\x03\x12\x05\x12\xD3\n\x12" +
1136
+ "\x03\x13\x03\x13\x03\x14\x06\x14\xD8\n\x14\r\x14\x0E\x14\xD9\x03\x15\x06" +
1137
+ "\x15\xDD\n\x15\r\x15\x0E\x15\xDE\x03\x15\x02\x02\x02\x16\x02\x02\x04\x02" +
1138
+ "\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18" +
1139
+ "\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02(\x02\x02\x03\x03\x02" +
1140
+ "\x10\x12\x02\xF0\x02-\x03\x02\x02\x02\x041\x03\x02\x02\x02\x06B\x03\x02" +
1141
+ "\x02\x02\bU\x03\x02\x02\x02\n\\\x03\x02\x02\x02\fc\x03\x02\x02\x02\x0E" +
1142
+ "j\x03\x02\x02\x02\x10l\x03\x02\x02\x02\x12\x7F\x03\x02\x02\x02\x14\x81" +
1143
+ "\x03\x02\x02\x02\x16\x9D\x03\x02\x02\x02\x18\xA5\x03\x02\x02\x02\x1A\xAD" +
1144
+ "\x03\x02\x02\x02\x1C\xB5\x03\x02\x02\x02\x1E\xBD\x03\x02\x02\x02 \xC5" +
1145
+ "\x03\x02\x02\x02\"\xCD\x03\x02\x02\x02$\xD4\x03\x02\x02\x02&\xD7\x03\x02" +
1146
+ "\x02\x02(\xDC\x03\x02\x02\x02*,\x05\x04\x03\x02+*\x03\x02\x02\x02,/\x03" +
1147
+ "\x02\x02\x02-+\x03\x02\x02\x02-.\x03\x02\x02\x02.\x03\x03\x02\x02\x02" +
1148
+ "/-\x03\x02\x02\x0202\x05&\x14\x0210\x03\x02\x02\x0212\x03\x02\x02\x02" +
1149
+ "23\x03\x02\x02\x0234\x07\x03\x02\x024?\x05(\x15\x0257\x05\x06\x04\x02" +
1150
+ "65\x03\x02\x02\x0267\x03\x02\x02\x027@\x03\x02\x02\x028;\x05\b\x05\x02" +
1151
+ "9;\x05\n\x06\x02:8\x03\x02\x02\x02:9\x03\x02\x02\x02;>\x03\x02\x02\x02" +
1152
+ "<:\x03\x02\x02\x02<=\x03\x02\x02\x02=@\x03\x02\x02\x02><\x03\x02\x02\x02" +
1153
+ "?6\x03\x02\x02\x02?<\x03\x02\x02\x02@\x05\x03\x02\x02\x02AC\x05&\x14\x02" +
1154
+ "BA\x03\x02\x02\x02BC\x03\x02\x02\x02CD\x03\x02\x02\x02DE\x07\x0E\x02\x02" +
1155
+ "EF\x05(\x15\x02FJ\x05\x16\f\x02GI\x05\x18\r\x02HG\x03\x02\x02\x02IL\x03" +
1156
+ "\x02\x02\x02JH\x03\x02\x02\x02JK\x03\x02\x02\x02KQ\x03\x02\x02\x02LJ\x03" +
1157
+ "\x02\x02\x02MP\x05\b\x05\x02NP\x05\n\x06\x02OM\x03\x02\x02\x02ON\x03\x02" +
1158
+ "\x02\x02PS\x03\x02\x02\x02QO\x03\x02\x02\x02QR\x03\x02\x02\x02R\x07\x03" +
1159
+ "\x02\x02\x02SQ\x03\x02\x02\x02TV\x05&\x14\x02UT\x03\x02\x02\x02UV\x03" +
1160
+ "\x02\x02\x02VW\x03\x02\x02\x02WX\x07\x04\x02\x02XY\x05(\x15\x02YZ\x05" +
1161
+ "\x14\v\x02Z\t\x03\x02\x02\x02[]\x05&\x14\x02\\[\x03\x02\x02\x02\\]\x03" +
1162
+ "\x02\x02\x02]^\x03\x02\x02\x02^_\x07\x05\x02\x02_`\x05(\x15\x02`a\x05" +
1163
+ "\x14\v\x02ab\x05\f\x07\x02b\v\x03\x02\x02\x02cd\x07\r\x02\x02df\x05\x0E" +
1164
+ "\b\x02eg\x05\x10\t\x02fe\x03\x02\x02\x02gh\x03\x02\x02\x02hf\x03\x02\x02" +
1165
+ "\x02hi\x03\x02\x02\x02i\r\x03\x02\x02\x02jk\x05\x10\t\x02k\x0F\x03\x02" +
1166
+ "\x02\x02ln\x07\x0F\x02\x02mo\x05\x12\n\x02nm\x03\x02\x02\x02op\x03\x02" +
1167
+ "\x02\x02pn\x03\x02\x02\x02pq\x03\x02\x02\x02qz\x03\x02\x02\x02rt\x07\x0F" +
1168
+ "\x02\x02su\x05\x12\n\x02ts\x03\x02\x02\x02uv\x03\x02\x02\x02vt\x03\x02" +
1169
+ "\x02\x02vw\x03\x02\x02\x02wy\x03\x02\x02\x02xr\x03\x02\x02\x02y|\x03\x02" +
1170
+ "\x02\x02zx\x03\x02\x02\x02z{\x03\x02\x02\x02{}\x03\x02\x02\x02|z\x03\x02" +
1171
+ "\x02\x02}~\x07\x0F\x02\x02~\x11\x03\x02\x02\x02\x7F\x80\x05(\x15\x02\x80" +
1172
+ "\x13\x03\x02\x02\x02\x81\x85\x05\x16\f\x02\x82\x84\x05\x18\r\x02\x83\x82" +
1173
+ "\x03\x02\x02\x02\x84\x87\x03\x02\x02\x02\x85\x83\x03\x02\x02\x02\x85\x86" +
1174
+ "\x03\x02\x02\x02\x86\x88\x03\x02\x02\x02\x87\x85\x03\x02\x02\x02\x88\x8C" +
1175
+ "\x05\x1A\x0E\x02\x89\x8B\x05\x1C\x0F\x02\x8A\x89\x03\x02\x02\x02\x8B\x8E" +
1176
+ "\x03\x02\x02\x02\x8C\x8A\x03\x02\x02\x02\x8C\x8D\x03\x02\x02\x02\x8D\x8F" +
1177
+ "\x03\x02\x02\x02\x8E\x8C\x03\x02\x02\x02\x8F\x93\x05\x1E\x10\x02\x90\x92" +
1178
+ "\x05 \x11\x02\x91\x90\x03\x02\x02\x02\x92\x95\x03\x02\x02\x02\x93\x91" +
1179
+ "\x03\x02\x02\x02\x93\x94\x03\x02\x02\x02\x94\x99\x03\x02\x02\x02\x95\x93" +
1180
+ "\x03\x02\x02\x02\x96\x98\x05\"\x12\x02\x97\x96\x03\x02\x02\x02\x98\x9B" +
1181
+ "\x03\x02\x02\x02\x99\x97\x03\x02\x02\x02\x99\x9A\x03\x02\x02\x02\x9A\x15" +
1182
+ "\x03\x02\x02\x02\x9B\x99\x03\x02\x02\x02\x9C\x9E\x05&\x14\x02\x9D\x9C" +
1183
+ "\x03\x02\x02\x02\x9D\x9E\x03\x02\x02\x02\x9E\x9F\x03\x02\x02\x02\x9F\xA0" +
1184
+ "\x07\x06\x02\x02\xA0\xA2\x05(\x15\x02\xA1\xA3\x05$\x13\x02\xA2\xA1\x03" +
1185
+ "\x02\x02\x02\xA2\xA3\x03\x02\x02\x02\xA3\x17\x03\x02\x02\x02\xA4\xA6\x05" +
1186
+ "&\x14\x02\xA5\xA4\x03\x02\x02\x02\xA5\xA6\x03\x02\x02\x02\xA6\xA7\x03" +
1187
+ "\x02\x02\x02\xA7\xA8\x07\x07\x02\x02\xA8\xAA\x05(\x15\x02\xA9\xAB\x05" +
1188
+ "$\x13\x02\xAA\xA9\x03\x02\x02\x02\xAA\xAB\x03\x02\x02\x02\xAB\x19\x03" +
1189
+ "\x02\x02\x02\xAC\xAE\x05&\x14\x02\xAD\xAC\x03\x02\x02\x02\xAD\xAE\x03" +
1190
+ "\x02\x02\x02\xAE\xAF\x03\x02\x02\x02\xAF\xB0\x07\b\x02\x02\xB0\xB2\x05" +
1191
+ "(\x15\x02\xB1\xB3\x05$\x13\x02\xB2\xB1\x03\x02\x02\x02\xB2\xB3\x03\x02" +
1192
+ "\x02\x02\xB3\x1B\x03\x02\x02\x02\xB4\xB6\x05&\x14\x02\xB5\xB4\x03\x02" +
1193
+ "\x02\x02\xB5\xB6\x03\x02\x02\x02\xB6\xB7\x03\x02\x02\x02\xB7\xB8\x07\t" +
1194
+ "\x02\x02\xB8\xBA\x05(\x15\x02\xB9\xBB\x05$\x13\x02\xBA\xB9\x03\x02\x02" +
1195
+ "\x02\xBA\xBB\x03\x02\x02\x02\xBB\x1D\x03\x02\x02\x02\xBC\xBE\x05&\x14" +
1196
+ "\x02\xBD\xBC\x03\x02\x02\x02\xBD\xBE\x03\x02\x02\x02\xBE\xBF\x03\x02\x02" +
1197
+ "\x02\xBF\xC0\x07\n\x02\x02\xC0\xC2\x05(\x15\x02\xC1\xC3\x05$\x13\x02\xC2" +
1198
+ "\xC1\x03\x02\x02\x02\xC2\xC3\x03\x02\x02\x02\xC3\x1F\x03\x02\x02\x02\xC4" +
1199
+ "\xC6\x05&\x14\x02\xC5\xC4\x03\x02\x02\x02\xC5\xC6\x03\x02\x02\x02\xC6" +
1200
+ "\xC7\x03\x02\x02\x02\xC7\xC8\x07\v\x02\x02\xC8\xCA\x05(\x15\x02\xC9\xCB" +
1201
+ "\x05$\x13\x02\xCA\xC9\x03\x02\x02\x02\xCA\xCB\x03\x02\x02\x02\xCB!\x03" +
1202
+ "\x02\x02\x02\xCC\xCE\x05&\x14\x02\xCD\xCC\x03\x02\x02\x02\xCD\xCE\x03" +
1203
+ "\x02\x02\x02\xCE\xCF\x03\x02\x02\x02\xCF\xD0\x07\f\x02\x02\xD0\xD2\x05" +
1204
+ "(\x15\x02\xD1\xD3\x05$\x13\x02\xD2\xD1\x03\x02\x02\x02\xD2\xD3\x03\x02" +
1205
+ "\x02\x02\xD3#\x03\x02\x02\x02\xD4\xD5\x07\x17\x02\x02\xD5%\x03\x02\x02" +
1206
+ "\x02\xD6\xD8\t\x02\x02\x02\xD7\xD6\x03\x02\x02\x02\xD8\xD9\x03\x02\x02" +
1207
+ "\x02\xD9\xD7\x03\x02\x02\x02\xD9\xDA\x03\x02\x02\x02\xDA\'\x03\x02\x02" +
1208
+ "\x02\xDB\xDD\x07\x14\x02\x02\xDC\xDB\x03\x02\x02\x02\xDD\xDE\x03\x02\x02" +
1209
+ "\x02\xDE\xDC\x03\x02\x02\x02\xDE\xDF\x03\x02\x02\x02\xDF)\x03\x02\x02" +
1210
+ "\x02&-16:<?BJOQU\\hpvz\x85\x8C\x93\x99\x9D\xA2\xA5\xAA\xAD\xB2\xB5\xBA" +
1211
+ "\xBD\xC2\xC5\xCA\xCD\xD2\xD9\xDE";
1195
1212
  class FeatureFileContext extends ParserRuleContext_1.ParserRuleContext {
1196
1213
  feature(i) {
1197
1214
  if (i === undefined) {
@@ -1222,6 +1239,9 @@ class FeatureContext extends ParserRuleContext_1.ParserRuleContext {
1222
1239
  contentText() {
1223
1240
  return this.getRuleContext(0, ContentTextContext);
1224
1241
  }
1242
+ tags() {
1243
+ return this.tryGetRuleContext(0, TagsContext);
1244
+ }
1225
1245
  background() {
1226
1246
  return this.tryGetRuleContext(0, BackgroundContext);
1227
1247
  }