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