File Coverage

blib/lib/Gherkin/Generated/Parser.pm
Criterion Covered Total %
statement 161 3052 5.2
branch 59 1168 5.0
condition 4 25 16.0
subroutine 37 85 43.5
pod 0 68 0.0
total 261 4398 5.9


line stmt bran cond sub pod time code
1             package Gherkin::Generated::Parser;
2             $Gherkin::Generated::Parser::VERSION = '25.0.1';
3             # This file is generated. Do not edit! Edit gherkin-perl.razor instead.
4 1     1   7 use strict;
  1         2  
  1         28  
5 1     1   5 use warnings;
  1         2  
  1         26  
6              
7 1     1   4 use base 'Gherkin::ParserBase';
  1         2  
  1         463  
8              
9             our @RULE_TYPES = [
10             'None',
11             '_EOF', # #EOF
12             '_Empty', # #Empty
13             '_Comment', # #Comment
14             '_TagLine', # #TagLine
15             '_FeatureLine', # #FeatureLine
16             '_RuleLine', # #RuleLine
17             '_BackgroundLine', # #BackgroundLine
18             '_ScenarioLine', # #ScenarioLine
19             '_ExamplesLine', # #ExamplesLine
20             '_StepLine', # #StepLine
21             '_DocStringSeparator', # #DocStringSeparator
22             '_TableRow', # #TableRow
23             '_Language', # #Language
24             '_Other', # #Other
25             'GherkinDocument', # GherkinDocument! := Feature?
26             'Feature', # Feature! := FeatureHeader Background? ScenarioDefinition* Rule*
27             'FeatureHeader', # FeatureHeader! := #Language? Tags? #FeatureLine DescriptionHelper
28             'Rule', # Rule! := RuleHeader Background? ScenarioDefinition*
29             'RuleHeader', # RuleHeader! := Tags? #RuleLine DescriptionHelper
30             'Background', # Background! := #BackgroundLine DescriptionHelper Step*
31             'ScenarioDefinition', # ScenarioDefinition! [#Empty|#Comment|#TagLine->#ScenarioLine] := Tags? Scenario
32             'Scenario', # Scenario! := #ScenarioLine DescriptionHelper Step* ExamplesDefinition*
33             'ExamplesDefinition', # ExamplesDefinition! [#Empty|#Comment|#TagLine->#ExamplesLine] := Tags? Examples
34             'Examples', # Examples! := #ExamplesLine DescriptionHelper ExamplesTable?
35             'ExamplesTable', # ExamplesTable! := #TableRow #TableRow*
36             'Step', # Step! := #StepLine StepArg?
37             'StepArg', # StepArg := (DataTable | DocString)
38             'DataTable', # DataTable! := #TableRow+
39             'DocString', # DocString! := #DocStringSeparator #Other* #DocStringSeparator
40             'Tags', # Tags! := #TagLine+
41             'DescriptionHelper', # DescriptionHelper := #Empty* Description? #Comment*
42             'Description', # Description! := #Other+
43             ];
44              
45             our %states_to_match_names = (
46             0 => "match_token_at_0",
47             1 => "match_token_at_1",
48             2 => "match_token_at_2",
49             3 => "match_token_at_3",
50             4 => "match_token_at_4",
51             5 => "match_token_at_5",
52             6 => "match_token_at_6",
53             7 => "match_token_at_7",
54             8 => "match_token_at_8",
55             9 => "match_token_at_9",
56             10 => "match_token_at_10",
57             11 => "match_token_at_11",
58             12 => "match_token_at_12",
59             13 => "match_token_at_13",
60             14 => "match_token_at_14",
61             15 => "match_token_at_15",
62             16 => "match_token_at_16",
63             17 => "match_token_at_17",
64             18 => "match_token_at_18",
65             19 => "match_token_at_19",
66             20 => "match_token_at_20",
67             21 => "match_token_at_21",
68             22 => "match_token_at_22",
69             23 => "match_token_at_23",
70             24 => "match_token_at_24",
71             25 => "match_token_at_25",
72             26 => "match_token_at_26",
73             27 => "match_token_at_27",
74             28 => "match_token_at_28",
75             29 => "match_token_at_29",
76             30 => "match_token_at_30",
77             31 => "match_token_at_31",
78             32 => "match_token_at_32",
79             33 => "match_token_at_33",
80             34 => "match_token_at_34",
81             35 => "match_token_at_35",
82             36 => "match_token_at_36",
83             37 => "match_token_at_37",
84             38 => "match_token_at_38",
85             39 => "match_token_at_39",
86             40 => "match_token_at_40",
87             41 => "match_token_at_41",
88             43 => "match_token_at_43",
89             44 => "match_token_at_44",
90             45 => "match_token_at_45",
91             46 => "match_token_at_46",
92             47 => "match_token_at_47",
93             48 => "match_token_at_48",
94             49 => "match_token_at_49",
95             50 => "match_token_at_50",
96             );
97              
98             sub parse {
99 3     3 0 9 my ( $self, $token_scanner, $uri ) = @_;
100              
101 3 100 100     23 $token_scanner = Gherkin::TokenScanner->new($token_scanner)
102             unless ref $token_scanner && (ref $token_scanner ne 'SCALAR');
103              
104 3         24 $self->ast_builder->reset($uri);
105 3         17 $self->token_matcher->reset();
106              
107 3         52 my $context = Gherkin::ParserContext->new(
108             {
109             token_scanner => $token_scanner,
110             token_matcher => $self->token_matcher,
111             }
112             );
113              
114 3         16 $self->_start_rule( $context, 'GherkinDocument' );
115              
116 3         6 my $state = 0;
117 3         4 my $token;
118              
119 3         5 while (1) {
120 36         89 $token = $context->read_token($context);
121 36         94 $state = $self->match_token( $state, $token, $context );
122              
123 36 100       93 last if $token->is_eof();
124             }
125              
126 3         12 $self->_end_rule( $context, 'GherkinDocument' );
127              
128 3 50       11 if ( my @errors = $context->errors ) {
129 0         0 Gherkin::Exceptions::CompositeParser->throw(@errors);
130             }
131              
132 3         11 return $self->get_result();
133             }
134              
135             sub match_token {
136 36     36 0 78 my ( $self, $state, $token, $context ) = @_;
137 36   50     122 my $method_name = $states_to_match_names{ $state } ||
138             die "Unknown state: $state";
139 36         127 $self->$method_name( $token, $context );
140             }
141              
142              
143             sub match_EOF {
144 36     36 0 63 my ($self, $context, $token) = @_;
145             return $self->handle_external_error(
146             $context,
147             0, # Default return value
148 36     36   132 sub { $context->token_matcher->match_EOF
149             ( $token ) }
150 36         167 );
151             }
152              
153             sub match_Empty {
154 24     24 0 46 my ($self, $context, $token) = @_;
155 24 50       49 return if $token->is_eof;
156             return $self->handle_external_error(
157             $context,
158             0, # Default return value
159 24     24   62 sub { $context->token_matcher->match_Empty
160             ( $token ) }
161 24         86 );
162             }
163              
164             sub match_Comment {
165 21     21 0 39 my ($self, $context, $token) = @_;
166 21 50       43 return if $token->is_eof;
167             return $self->handle_external_error(
168             $context,
169             0, # Default return value
170 21     21   54 sub { $context->token_matcher->match_Comment
171             ( $token ) }
172 21         77 );
173             }
174              
175             sub match_TagLine {
176 39     39 0 72 my ($self, $context, $token) = @_;
177 39 50       78 return if $token->is_eof;
178             return $self->handle_external_error(
179             $context,
180             0, # Default return value
181 39     39   95 sub { $context->token_matcher->match_TagLine
182             ( $token ) }
183 39         151 );
184             }
185              
186             sub match_FeatureLine {
187 3     3 0 8 my ($self, $context, $token) = @_;
188 3 50       7 return if $token->is_eof;
189             return $self->handle_external_error(
190             $context,
191             0, # Default return value
192 3     3   13 sub { $context->token_matcher->match_FeatureLine
193             ( $token ) }
194 3         15 );
195             }
196              
197             sub match_RuleLine {
198 9     9 0 25 my ($self, $context, $token) = @_;
199 9 50       25 return if $token->is_eof;
200             return $self->handle_external_error(
201             $context,
202             0, # Default return value
203 9     9   25 sub { $context->token_matcher->match_RuleLine
204             ( $token ) }
205 9         39 );
206             }
207              
208             sub match_BackgroundLine {
209 3     3 0 8 my ($self, $context, $token) = @_;
210 3 50       8 return if $token->is_eof;
211             return $self->handle_external_error(
212             $context,
213             0, # Default return value
214 3     3   11 sub { $context->token_matcher->match_BackgroundLine
215             ( $token ) }
216 3         12 );
217             }
218              
219             sub match_ScenarioLine {
220 15     15 0 30 my ($self, $context, $token) = @_;
221 15 50       29 return if $token->is_eof;
222             return $self->handle_external_error(
223             $context,
224             0, # Default return value
225 15     15   37 sub { $context->token_matcher->match_ScenarioLine
226             ( $token ) }
227 15         61 );
228             }
229              
230             sub match_ExamplesLine {
231 6     6 0 12 my ($self, $context, $token) = @_;
232 6 50       14 return if $token->is_eof;
233             return $self->handle_external_error(
234             $context,
235             0, # Default return value
236 6     6   27 sub { $context->token_matcher->match_ExamplesLine
237             ( $token ) }
238 6         25 );
239             }
240              
241             sub match_StepLine {
242 24     24 0 61 my ($self, $context, $token) = @_;
243 24 50       54 return if $token->is_eof;
244             return $self->handle_external_error(
245             $context,
246             0, # Default return value
247 24     24   64 sub { $context->token_matcher->match_StepLine
248             ( $token ) }
249 24         108 );
250             }
251              
252             sub match_DocStringSeparator {
253 15     15 0 32 my ($self, $context, $token) = @_;
254 15 50       38 return if $token->is_eof;
255             return $self->handle_external_error(
256             $context,
257             0, # Default return value
258 15     15   43 sub { $context->token_matcher->match_DocStringSeparator
259             ( $token ) }
260 15         77 );
261             }
262              
263             sub match_TableRow {
264 15     15 0 28 my ($self, $context, $token) = @_;
265 15 50       44 return if $token->is_eof;
266             return $self->handle_external_error(
267             $context,
268             0, # Default return value
269 15     15   44 sub { $context->token_matcher->match_TableRow
270             ( $token ) }
271 15         58 );
272             }
273              
274             sub match_Language {
275 3     3 0 9 my ($self, $context, $token) = @_;
276 3 50       9 return if $token->is_eof;
277             return $self->handle_external_error(
278             $context,
279             0, # Default return value
280 3     3   28 sub { $context->token_matcher->match_Language
281             ( $token ) }
282 3         16 );
283             }
284              
285             sub match_Other {
286 0     0 0 0 my ($self, $context, $token) = @_;
287 0 0       0 return if $token->is_eof;
288             return $self->handle_external_error(
289             $context,
290             0, # Default return value
291 0     0   0 sub { $context->token_matcher->match_Other
292             ( $token ) }
293 0         0 );
294             }
295              
296              
297             # Start
298             sub match_token_at_0 {
299 3     3 0 8 my ( $self, $token, $context ) = @_;
300 3 50       11 if ($self->match_EOF($context, $token)) {
301 0         0 $self->_build($context, $token);
302 0         0 return 42;
303             }
304 3 50       29 if ($self->match_Language($context, $token)) {
305 0         0 $self->_start_rule($context, 'Feature');
306 0         0 $self->_start_rule($context, 'FeatureHeader');
307 0         0 $self->_build($context, $token);
308 0         0 return 1;
309             }
310 3 50       17 if ($self->match_TagLine($context, $token)) {
311 0         0 $self->_start_rule($context, 'Feature');
312 0         0 $self->_start_rule($context, 'FeatureHeader');
313 0         0 $self->_start_rule($context, 'Tags');
314 0         0 $self->_build($context, $token);
315 0         0 return 2;
316             }
317 3 50       16 if ($self->match_FeatureLine($context, $token)) {
318 3         13 $self->_start_rule($context, 'Feature');
319 3         13 $self->_start_rule($context, 'FeatureHeader');
320 3         22 $self->_build($context, $token);
321 3         12 return 3;
322             }
323 0 0       0 if ($self->match_Comment($context, $token)) {
324 0         0 $self->_build($context, $token);
325 0         0 return 0;
326             }
327 0 0       0 if ($self->match_Empty($context, $token)) {
328 0         0 $self->_build($context, $token);
329 0         0 return 0;
330             }
331              
332 0         0 $token->detach;
333              
334             # Create the appropriate error
335 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
336             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
337              
338 0         0 my @args = (
339             $token,
340             ["#EOF", "#Language", "#TagLine", "#FeatureLine", "#Comment", "#Empty"], #"
341             "State: 0 - Start",
342             );
343              
344 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
345              
346 0         0 eval {$error_class->throw( @args )};
  0         0  
347 0         0 $self->add_error( $context, $@ );
348              
349 0         0 return 0;
350             }
351              
352             # GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0
353             sub match_token_at_1 {
354 0     0 0 0 my ( $self, $token, $context ) = @_;
355 0 0       0 if ($self->match_TagLine($context, $token)) {
356 0         0 $self->_start_rule($context, 'Tags');
357 0         0 $self->_build($context, $token);
358 0         0 return 2;
359             }
360 0 0       0 if ($self->match_FeatureLine($context, $token)) {
361 0         0 $self->_build($context, $token);
362 0         0 return 3;
363             }
364 0 0       0 if ($self->match_Comment($context, $token)) {
365 0         0 $self->_build($context, $token);
366 0         0 return 1;
367             }
368 0 0       0 if ($self->match_Empty($context, $token)) {
369 0         0 $self->_build($context, $token);
370 0         0 return 1;
371             }
372              
373 0         0 $token->detach;
374              
375             # Create the appropriate error
376 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
377             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
378              
379 0         0 my @args = (
380             $token,
381             ["#TagLine", "#FeatureLine", "#Comment", "#Empty"], #"
382             "State: 1 - GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0",
383             );
384              
385 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
386              
387 0         0 eval {$error_class->throw( @args )};
  0         0  
388 0         0 $self->add_error( $context, $@ );
389              
390 0         0 return 1;
391             }
392              
393             # GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0
394             sub match_token_at_2 {
395 0     0 0 0 my ( $self, $token, $context ) = @_;
396 0 0       0 if ($self->match_TagLine($context, $token)) {
397 0         0 $self->_build($context, $token);
398 0         0 return 2;
399             }
400 0 0       0 if ($self->match_FeatureLine($context, $token)) {
401 0         0 $self->_end_rule($context, 'Tags');
402 0         0 $self->_build($context, $token);
403 0         0 return 3;
404             }
405 0 0       0 if ($self->match_Comment($context, $token)) {
406 0         0 $self->_build($context, $token);
407 0         0 return 2;
408             }
409 0 0       0 if ($self->match_Empty($context, $token)) {
410 0         0 $self->_build($context, $token);
411 0         0 return 2;
412             }
413              
414 0         0 $token->detach;
415              
416             # Create the appropriate error
417 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
418             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
419              
420 0         0 my @args = (
421             $token,
422             ["#TagLine", "#FeatureLine", "#Comment", "#Empty"], #"
423             "State: 2 - GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0",
424             );
425              
426 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
427              
428 0         0 eval {$error_class->throw( @args )};
  0         0  
429 0         0 $self->add_error( $context, $@ );
430              
431 0         0 return 2;
432             }
433              
434             # GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0
435             sub match_token_at_3 {
436 6     6 0 10 my ( $self, $token, $context ) = @_;
437 6 50       12 if ($self->match_EOF($context, $token)) {
438 0         0 $self->_end_rule($context, 'FeatureHeader');
439 0         0 $self->_end_rule($context, 'Feature');
440 0         0 $self->_build($context, $token);
441 0         0 return 42;
442             }
443 6 100       26 if ($self->match_Empty($context, $token)) {
444 3         10 $self->_build($context, $token);
445 3         12 return 3;
446             }
447 3 50       17 if ($self->match_Comment($context, $token)) {
448 0         0 $self->_build($context, $token);
449 0         0 return 5;
450             }
451 3 50       23 if ($self->match_BackgroundLine($context, $token)) {
452 3         17 $self->_end_rule($context, 'FeatureHeader');
453 3         15 $self->_start_rule($context, 'Background');
454 3         10 $self->_build($context, $token);
455 3         15 return 6;
456             }
457 0 0       0 if ($self->match_TagLine($context, $token)) {
458 0 0       0 if ($self->lookahead_0($context, $token)) {
459 0         0 $self->_end_rule($context, 'FeatureHeader');
460 0         0 $self->_start_rule($context, 'ScenarioDefinition');
461 0         0 $self->_start_rule($context, 'Tags');
462 0         0 $self->_build($context, $token);
463 0         0 return 11;
464             }
465             }
466 0 0       0 if ($self->match_TagLine($context, $token)) {
467 0         0 $self->_end_rule($context, 'FeatureHeader');
468 0         0 $self->_start_rule($context, 'Rule');
469 0         0 $self->_start_rule($context, 'RuleHeader');
470 0         0 $self->_start_rule($context, 'Tags');
471 0         0 $self->_build($context, $token);
472 0         0 return 22;
473             }
474 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
475 0         0 $self->_end_rule($context, 'FeatureHeader');
476 0         0 $self->_start_rule($context, 'ScenarioDefinition');
477 0         0 $self->_start_rule($context, 'Scenario');
478 0         0 $self->_build($context, $token);
479 0         0 return 12;
480             }
481 0 0       0 if ($self->match_RuleLine($context, $token)) {
482 0         0 $self->_end_rule($context, 'FeatureHeader');
483 0         0 $self->_start_rule($context, 'Rule');
484 0         0 $self->_start_rule($context, 'RuleHeader');
485 0         0 $self->_build($context, $token);
486 0         0 return 23;
487             }
488 0 0       0 if ($self->match_Other($context, $token)) {
489 0         0 $self->_start_rule($context, 'Description');
490 0         0 $self->_build($context, $token);
491 0         0 return 4;
492             }
493              
494 0         0 $token->detach;
495              
496             # Create the appropriate error
497 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
498             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
499              
500 0         0 my @args = (
501             $token,
502             ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
503             "State: 3 - GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0",
504             );
505              
506 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
507              
508 0         0 eval {$error_class->throw( @args )};
  0         0  
509 0         0 $self->add_error( $context, $@ );
510              
511 0         0 return 3;
512             }
513              
514             # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0
515             sub match_token_at_4 {
516 0     0 0 0 my ( $self, $token, $context ) = @_;
517 0 0       0 if ($self->match_EOF($context, $token)) {
518 0         0 $self->_end_rule($context, 'Description');
519 0         0 $self->_end_rule($context, 'FeatureHeader');
520 0         0 $self->_end_rule($context, 'Feature');
521 0         0 $self->_build($context, $token);
522 0         0 return 42;
523             }
524 0 0       0 if ($self->match_Comment($context, $token)) {
525 0         0 $self->_end_rule($context, 'Description');
526 0         0 $self->_build($context, $token);
527 0         0 return 5;
528             }
529 0 0       0 if ($self->match_BackgroundLine($context, $token)) {
530 0         0 $self->_end_rule($context, 'Description');
531 0         0 $self->_end_rule($context, 'FeatureHeader');
532 0         0 $self->_start_rule($context, 'Background');
533 0         0 $self->_build($context, $token);
534 0         0 return 6;
535             }
536 0 0       0 if ($self->match_TagLine($context, $token)) {
537 0 0       0 if ($self->lookahead_0($context, $token)) {
538 0         0 $self->_end_rule($context, 'Description');
539 0         0 $self->_end_rule($context, 'FeatureHeader');
540 0         0 $self->_start_rule($context, 'ScenarioDefinition');
541 0         0 $self->_start_rule($context, 'Tags');
542 0         0 $self->_build($context, $token);
543 0         0 return 11;
544             }
545             }
546 0 0       0 if ($self->match_TagLine($context, $token)) {
547 0         0 $self->_end_rule($context, 'Description');
548 0         0 $self->_end_rule($context, 'FeatureHeader');
549 0         0 $self->_start_rule($context, 'Rule');
550 0         0 $self->_start_rule($context, 'RuleHeader');
551 0         0 $self->_start_rule($context, 'Tags');
552 0         0 $self->_build($context, $token);
553 0         0 return 22;
554             }
555 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
556 0         0 $self->_end_rule($context, 'Description');
557 0         0 $self->_end_rule($context, 'FeatureHeader');
558 0         0 $self->_start_rule($context, 'ScenarioDefinition');
559 0         0 $self->_start_rule($context, 'Scenario');
560 0         0 $self->_build($context, $token);
561 0         0 return 12;
562             }
563 0 0       0 if ($self->match_RuleLine($context, $token)) {
564 0         0 $self->_end_rule($context, 'Description');
565 0         0 $self->_end_rule($context, 'FeatureHeader');
566 0         0 $self->_start_rule($context, 'Rule');
567 0         0 $self->_start_rule($context, 'RuleHeader');
568 0         0 $self->_build($context, $token);
569 0         0 return 23;
570             }
571 0 0       0 if ($self->match_Other($context, $token)) {
572 0         0 $self->_build($context, $token);
573 0         0 return 4;
574             }
575              
576 0         0 $token->detach;
577              
578             # Create the appropriate error
579 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
580             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
581              
582 0         0 my @args = (
583             $token,
584             ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
585             "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0",
586             );
587              
588 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
589              
590 0         0 eval {$error_class->throw( @args )};
  0         0  
591 0         0 $self->add_error( $context, $@ );
592              
593 0         0 return 4;
594             }
595              
596             # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0
597             sub match_token_at_5 {
598 0     0 0 0 my ( $self, $token, $context ) = @_;
599 0 0       0 if ($self->match_EOF($context, $token)) {
600 0         0 $self->_end_rule($context, 'FeatureHeader');
601 0         0 $self->_end_rule($context, 'Feature');
602 0         0 $self->_build($context, $token);
603 0         0 return 42;
604             }
605 0 0       0 if ($self->match_Comment($context, $token)) {
606 0         0 $self->_build($context, $token);
607 0         0 return 5;
608             }
609 0 0       0 if ($self->match_BackgroundLine($context, $token)) {
610 0         0 $self->_end_rule($context, 'FeatureHeader');
611 0         0 $self->_start_rule($context, 'Background');
612 0         0 $self->_build($context, $token);
613 0         0 return 6;
614             }
615 0 0       0 if ($self->match_TagLine($context, $token)) {
616 0 0       0 if ($self->lookahead_0($context, $token)) {
617 0         0 $self->_end_rule($context, 'FeatureHeader');
618 0         0 $self->_start_rule($context, 'ScenarioDefinition');
619 0         0 $self->_start_rule($context, 'Tags');
620 0         0 $self->_build($context, $token);
621 0         0 return 11;
622             }
623             }
624 0 0       0 if ($self->match_TagLine($context, $token)) {
625 0         0 $self->_end_rule($context, 'FeatureHeader');
626 0         0 $self->_start_rule($context, 'Rule');
627 0         0 $self->_start_rule($context, 'RuleHeader');
628 0         0 $self->_start_rule($context, 'Tags');
629 0         0 $self->_build($context, $token);
630 0         0 return 22;
631             }
632 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
633 0         0 $self->_end_rule($context, 'FeatureHeader');
634 0         0 $self->_start_rule($context, 'ScenarioDefinition');
635 0         0 $self->_start_rule($context, 'Scenario');
636 0         0 $self->_build($context, $token);
637 0         0 return 12;
638             }
639 0 0       0 if ($self->match_RuleLine($context, $token)) {
640 0         0 $self->_end_rule($context, 'FeatureHeader');
641 0         0 $self->_start_rule($context, 'Rule');
642 0         0 $self->_start_rule($context, 'RuleHeader');
643 0         0 $self->_build($context, $token);
644 0         0 return 23;
645             }
646 0 0       0 if ($self->match_Empty($context, $token)) {
647 0         0 $self->_build($context, $token);
648 0         0 return 5;
649             }
650              
651 0         0 $token->detach;
652              
653             # Create the appropriate error
654 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
655             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
656              
657 0         0 my @args = (
658             $token,
659             ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
660             "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0",
661             );
662              
663 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
664              
665 0         0 eval {$error_class->throw( @args )};
  0         0  
666 0         0 $self->add_error( $context, $@ );
667              
668 0         0 return 5;
669             }
670              
671             # GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0
672             sub match_token_at_6 {
673 3     3 0 7 my ( $self, $token, $context ) = @_;
674 3 50       8 if ($self->match_EOF($context, $token)) {
675 0         0 $self->_end_rule($context, 'Background');
676 0         0 $self->_end_rule($context, 'Feature');
677 0         0 $self->_build($context, $token);
678 0         0 return 42;
679             }
680 3 50       15 if ($self->match_Empty($context, $token)) {
681 0         0 $self->_build($context, $token);
682 0         0 return 6;
683             }
684 3 50       13 if ($self->match_Comment($context, $token)) {
685 0         0 $self->_build($context, $token);
686 0         0 return 8;
687             }
688 3 50       30 if ($self->match_StepLine($context, $token)) {
689 3         10 $self->_start_rule($context, 'Step');
690 3         9 $self->_build($context, $token);
691 3         11 return 9;
692             }
693 0 0       0 if ($self->match_TagLine($context, $token)) {
694 0 0       0 if ($self->lookahead_0($context, $token)) {
695 0         0 $self->_end_rule($context, 'Background');
696 0         0 $self->_start_rule($context, 'ScenarioDefinition');
697 0         0 $self->_start_rule($context, 'Tags');
698 0         0 $self->_build($context, $token);
699 0         0 return 11;
700             }
701             }
702 0 0       0 if ($self->match_TagLine($context, $token)) {
703 0         0 $self->_end_rule($context, 'Background');
704 0         0 $self->_start_rule($context, 'Rule');
705 0         0 $self->_start_rule($context, 'RuleHeader');
706 0         0 $self->_start_rule($context, 'Tags');
707 0         0 $self->_build($context, $token);
708 0         0 return 22;
709             }
710 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
711 0         0 $self->_end_rule($context, 'Background');
712 0         0 $self->_start_rule($context, 'ScenarioDefinition');
713 0         0 $self->_start_rule($context, 'Scenario');
714 0         0 $self->_build($context, $token);
715 0         0 return 12;
716             }
717 0 0       0 if ($self->match_RuleLine($context, $token)) {
718 0         0 $self->_end_rule($context, 'Background');
719 0         0 $self->_start_rule($context, 'Rule');
720 0         0 $self->_start_rule($context, 'RuleHeader');
721 0         0 $self->_build($context, $token);
722 0         0 return 23;
723             }
724 0 0       0 if ($self->match_Other($context, $token)) {
725 0         0 $self->_start_rule($context, 'Description');
726 0         0 $self->_build($context, $token);
727 0         0 return 7;
728             }
729              
730 0         0 $token->detach;
731              
732             # Create the appropriate error
733 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
734             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
735              
736 0         0 my @args = (
737             $token,
738             ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
739             "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0",
740             );
741              
742 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
743              
744 0         0 eval {$error_class->throw( @args )};
  0         0  
745 0         0 $self->add_error( $context, $@ );
746              
747 0         0 return 6;
748             }
749              
750             # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0
751             sub match_token_at_7 {
752 0     0 0 0 my ( $self, $token, $context ) = @_;
753 0 0       0 if ($self->match_EOF($context, $token)) {
754 0         0 $self->_end_rule($context, 'Description');
755 0         0 $self->_end_rule($context, 'Background');
756 0         0 $self->_end_rule($context, 'Feature');
757 0         0 $self->_build($context, $token);
758 0         0 return 42;
759             }
760 0 0       0 if ($self->match_Comment($context, $token)) {
761 0         0 $self->_end_rule($context, 'Description');
762 0         0 $self->_build($context, $token);
763 0         0 return 8;
764             }
765 0 0       0 if ($self->match_StepLine($context, $token)) {
766 0         0 $self->_end_rule($context, 'Description');
767 0         0 $self->_start_rule($context, 'Step');
768 0         0 $self->_build($context, $token);
769 0         0 return 9;
770             }
771 0 0       0 if ($self->match_TagLine($context, $token)) {
772 0 0       0 if ($self->lookahead_0($context, $token)) {
773 0         0 $self->_end_rule($context, 'Description');
774 0         0 $self->_end_rule($context, 'Background');
775 0         0 $self->_start_rule($context, 'ScenarioDefinition');
776 0         0 $self->_start_rule($context, 'Tags');
777 0         0 $self->_build($context, $token);
778 0         0 return 11;
779             }
780             }
781 0 0       0 if ($self->match_TagLine($context, $token)) {
782 0         0 $self->_end_rule($context, 'Description');
783 0         0 $self->_end_rule($context, 'Background');
784 0         0 $self->_start_rule($context, 'Rule');
785 0         0 $self->_start_rule($context, 'RuleHeader');
786 0         0 $self->_start_rule($context, 'Tags');
787 0         0 $self->_build($context, $token);
788 0         0 return 22;
789             }
790 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
791 0         0 $self->_end_rule($context, 'Description');
792 0         0 $self->_end_rule($context, 'Background');
793 0         0 $self->_start_rule($context, 'ScenarioDefinition');
794 0         0 $self->_start_rule($context, 'Scenario');
795 0         0 $self->_build($context, $token);
796 0         0 return 12;
797             }
798 0 0       0 if ($self->match_RuleLine($context, $token)) {
799 0         0 $self->_end_rule($context, 'Description');
800 0         0 $self->_end_rule($context, 'Background');
801 0         0 $self->_start_rule($context, 'Rule');
802 0         0 $self->_start_rule($context, 'RuleHeader');
803 0         0 $self->_build($context, $token);
804 0         0 return 23;
805             }
806 0 0       0 if ($self->match_Other($context, $token)) {
807 0         0 $self->_build($context, $token);
808 0         0 return 7;
809             }
810              
811 0         0 $token->detach;
812              
813             # Create the appropriate error
814 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
815             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
816              
817 0         0 my @args = (
818             $token,
819             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
820             "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0",
821             );
822              
823 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
824              
825 0         0 eval {$error_class->throw( @args )};
  0         0  
826 0         0 $self->add_error( $context, $@ );
827              
828 0         0 return 7;
829             }
830              
831             # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0
832             sub match_token_at_8 {
833 0     0 0 0 my ( $self, $token, $context ) = @_;
834 0 0       0 if ($self->match_EOF($context, $token)) {
835 0         0 $self->_end_rule($context, 'Background');
836 0         0 $self->_end_rule($context, 'Feature');
837 0         0 $self->_build($context, $token);
838 0         0 return 42;
839             }
840 0 0       0 if ($self->match_Comment($context, $token)) {
841 0         0 $self->_build($context, $token);
842 0         0 return 8;
843             }
844 0 0       0 if ($self->match_StepLine($context, $token)) {
845 0         0 $self->_start_rule($context, 'Step');
846 0         0 $self->_build($context, $token);
847 0         0 return 9;
848             }
849 0 0       0 if ($self->match_TagLine($context, $token)) {
850 0 0       0 if ($self->lookahead_0($context, $token)) {
851 0         0 $self->_end_rule($context, 'Background');
852 0         0 $self->_start_rule($context, 'ScenarioDefinition');
853 0         0 $self->_start_rule($context, 'Tags');
854 0         0 $self->_build($context, $token);
855 0         0 return 11;
856             }
857             }
858 0 0       0 if ($self->match_TagLine($context, $token)) {
859 0         0 $self->_end_rule($context, 'Background');
860 0         0 $self->_start_rule($context, 'Rule');
861 0         0 $self->_start_rule($context, 'RuleHeader');
862 0         0 $self->_start_rule($context, 'Tags');
863 0         0 $self->_build($context, $token);
864 0         0 return 22;
865             }
866 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
867 0         0 $self->_end_rule($context, 'Background');
868 0         0 $self->_start_rule($context, 'ScenarioDefinition');
869 0         0 $self->_start_rule($context, 'Scenario');
870 0         0 $self->_build($context, $token);
871 0         0 return 12;
872             }
873 0 0       0 if ($self->match_RuleLine($context, $token)) {
874 0         0 $self->_end_rule($context, 'Background');
875 0         0 $self->_start_rule($context, 'Rule');
876 0         0 $self->_start_rule($context, 'RuleHeader');
877 0         0 $self->_build($context, $token);
878 0         0 return 23;
879             }
880 0 0       0 if ($self->match_Empty($context, $token)) {
881 0         0 $self->_build($context, $token);
882 0         0 return 8;
883             }
884              
885 0         0 $token->detach;
886              
887             # Create the appropriate error
888 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
889             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
890              
891 0         0 my @args = (
892             $token,
893             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
894             "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0",
895             );
896              
897 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
898              
899 0         0 eval {$error_class->throw( @args )};
  0         0  
900 0         0 $self->add_error( $context, $@ );
901              
902 0         0 return 8;
903             }
904              
905             # GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0
906             sub match_token_at_9 {
907 9     9 0 18 my ( $self, $token, $context ) = @_;
908 9 50       17 if ($self->match_EOF($context, $token)) {
909 0         0 $self->_end_rule($context, 'Step');
910 0         0 $self->_end_rule($context, 'Background');
911 0         0 $self->_end_rule($context, 'Feature');
912 0         0 $self->_build($context, $token);
913 0         0 return 42;
914             }
915 9 50       40 if ($self->match_TableRow($context, $token)) {
916 0         0 $self->_start_rule($context, 'DataTable');
917 0         0 $self->_build($context, $token);
918 0         0 return 10;
919             }
920 9 50       28 if ($self->match_DocStringSeparator($context, $token)) {
921 0         0 $self->_start_rule($context, 'DocString');
922 0         0 $self->_build($context, $token);
923 0         0 return 49;
924             }
925 9 50       31 if ($self->match_StepLine($context, $token)) {
926 0         0 $self->_end_rule($context, 'Step');
927 0         0 $self->_start_rule($context, 'Step');
928 0         0 $self->_build($context, $token);
929 0         0 return 9;
930             }
931 9 50       30 if ($self->match_TagLine($context, $token)) {
932 0 0       0 if ($self->lookahead_0($context, $token)) {
933 0         0 $self->_end_rule($context, 'Step');
934 0         0 $self->_end_rule($context, 'Background');
935 0         0 $self->_start_rule($context, 'ScenarioDefinition');
936 0         0 $self->_start_rule($context, 'Tags');
937 0         0 $self->_build($context, $token);
938 0         0 return 11;
939             }
940             }
941 9 50       27 if ($self->match_TagLine($context, $token)) {
942 0         0 $self->_end_rule($context, 'Step');
943 0         0 $self->_end_rule($context, 'Background');
944 0         0 $self->_start_rule($context, 'Rule');
945 0         0 $self->_start_rule($context, 'RuleHeader');
946 0         0 $self->_start_rule($context, 'Tags');
947 0         0 $self->_build($context, $token);
948 0         0 return 22;
949             }
950 9 100       38 if ($self->match_ScenarioLine($context, $token)) {
951 3         11 $self->_end_rule($context, 'Step');
952 3         11 $self->_end_rule($context, 'Background');
953 3         12 $self->_start_rule($context, 'ScenarioDefinition');
954 3         11 $self->_start_rule($context, 'Scenario');
955 3         16 $self->_build($context, $token);
956 3         11 return 12;
957             }
958 6 50       36 if ($self->match_RuleLine($context, $token)) {
959 0         0 $self->_end_rule($context, 'Step');
960 0         0 $self->_end_rule($context, 'Background');
961 0         0 $self->_start_rule($context, 'Rule');
962 0         0 $self->_start_rule($context, 'RuleHeader');
963 0         0 $self->_build($context, $token);
964 0         0 return 23;
965             }
966 6 50       22 if ($self->match_Comment($context, $token)) {
967 0         0 $self->_build($context, $token);
968 0         0 return 9;
969             }
970 6 50       18 if ($self->match_Empty($context, $token)) {
971 6         16 $self->_build($context, $token);
972 6         22 return 9;
973             }
974              
975 0         0 $token->detach;
976              
977             # Create the appropriate error
978 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
979             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
980              
981 0         0 my @args = (
982             $token,
983             ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
984             "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0",
985             );
986              
987 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
988              
989 0         0 eval {$error_class->throw( @args )};
  0         0  
990 0         0 $self->add_error( $context, $@ );
991              
992 0         0 return 9;
993             }
994              
995             # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
996             sub match_token_at_10 {
997 0     0 0 0 my ( $self, $token, $context ) = @_;
998 0 0       0 if ($self->match_EOF($context, $token)) {
999 0         0 $self->_end_rule($context, 'DataTable');
1000 0         0 $self->_end_rule($context, 'Step');
1001 0         0 $self->_end_rule($context, 'Background');
1002 0         0 $self->_end_rule($context, 'Feature');
1003 0         0 $self->_build($context, $token);
1004 0         0 return 42;
1005             }
1006 0 0       0 if ($self->match_TableRow($context, $token)) {
1007 0         0 $self->_build($context, $token);
1008 0         0 return 10;
1009             }
1010 0 0       0 if ($self->match_StepLine($context, $token)) {
1011 0         0 $self->_end_rule($context, 'DataTable');
1012 0         0 $self->_end_rule($context, 'Step');
1013 0         0 $self->_start_rule($context, 'Step');
1014 0         0 $self->_build($context, $token);
1015 0         0 return 9;
1016             }
1017 0 0       0 if ($self->match_TagLine($context, $token)) {
1018 0 0       0 if ($self->lookahead_0($context, $token)) {
1019 0         0 $self->_end_rule($context, 'DataTable');
1020 0         0 $self->_end_rule($context, 'Step');
1021 0         0 $self->_end_rule($context, 'Background');
1022 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1023 0         0 $self->_start_rule($context, 'Tags');
1024 0         0 $self->_build($context, $token);
1025 0         0 return 11;
1026             }
1027             }
1028 0 0       0 if ($self->match_TagLine($context, $token)) {
1029 0         0 $self->_end_rule($context, 'DataTable');
1030 0         0 $self->_end_rule($context, 'Step');
1031 0         0 $self->_end_rule($context, 'Background');
1032 0         0 $self->_start_rule($context, 'Rule');
1033 0         0 $self->_start_rule($context, 'RuleHeader');
1034 0         0 $self->_start_rule($context, 'Tags');
1035 0         0 $self->_build($context, $token);
1036 0         0 return 22;
1037             }
1038 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
1039 0         0 $self->_end_rule($context, 'DataTable');
1040 0         0 $self->_end_rule($context, 'Step');
1041 0         0 $self->_end_rule($context, 'Background');
1042 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1043 0         0 $self->_start_rule($context, 'Scenario');
1044 0         0 $self->_build($context, $token);
1045 0         0 return 12;
1046             }
1047 0 0       0 if ($self->match_RuleLine($context, $token)) {
1048 0         0 $self->_end_rule($context, 'DataTable');
1049 0         0 $self->_end_rule($context, 'Step');
1050 0         0 $self->_end_rule($context, 'Background');
1051 0         0 $self->_start_rule($context, 'Rule');
1052 0         0 $self->_start_rule($context, 'RuleHeader');
1053 0         0 $self->_build($context, $token);
1054 0         0 return 23;
1055             }
1056 0 0       0 if ($self->match_Comment($context, $token)) {
1057 0         0 $self->_build($context, $token);
1058 0         0 return 10;
1059             }
1060 0 0       0 if ($self->match_Empty($context, $token)) {
1061 0         0 $self->_build($context, $token);
1062 0         0 return 10;
1063             }
1064              
1065 0         0 $token->detach;
1066              
1067             # Create the appropriate error
1068 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
1069             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1070              
1071 0         0 my @args = (
1072             $token,
1073             ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
1074             "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0",
1075             );
1076              
1077 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
1078              
1079 0         0 eval {$error_class->throw( @args )};
  0         0  
1080 0         0 $self->add_error( $context, $@ );
1081              
1082 0         0 return 10;
1083             }
1084              
1085             # GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0
1086             sub match_token_at_11 {
1087 0     0 0 0 my ( $self, $token, $context ) = @_;
1088 0 0       0 if ($self->match_TagLine($context, $token)) {
1089 0         0 $self->_build($context, $token);
1090 0         0 return 11;
1091             }
1092 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
1093 0         0 $self->_end_rule($context, 'Tags');
1094 0         0 $self->_start_rule($context, 'Scenario');
1095 0         0 $self->_build($context, $token);
1096 0         0 return 12;
1097             }
1098 0 0       0 if ($self->match_Comment($context, $token)) {
1099 0         0 $self->_build($context, $token);
1100 0         0 return 11;
1101             }
1102 0 0       0 if ($self->match_Empty($context, $token)) {
1103 0         0 $self->_build($context, $token);
1104 0         0 return 11;
1105             }
1106              
1107 0         0 $token->detach;
1108              
1109             # Create the appropriate error
1110 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
1111             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1112              
1113 0         0 my @args = (
1114             $token,
1115             ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], #"
1116             "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0",
1117             );
1118              
1119 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
1120              
1121 0         0 eval {$error_class->throw( @args )};
  0         0  
1122 0         0 $self->add_error( $context, $@ );
1123              
1124 0         0 return 11;
1125             }
1126              
1127             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0
1128             sub match_token_at_12 {
1129 6     6 0 14 my ( $self, $token, $context ) = @_;
1130 6 50       15 if ($self->match_EOF($context, $token)) {
1131 0         0 $self->_end_rule($context, 'Scenario');
1132 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1133 0         0 $self->_end_rule($context, 'Feature');
1134 0         0 $self->_build($context, $token);
1135 0         0 return 42;
1136             }
1137 6 50       22 if ($self->match_Empty($context, $token)) {
1138 0         0 $self->_build($context, $token);
1139 0         0 return 12;
1140             }
1141 6 50       22 if ($self->match_Comment($context, $token)) {
1142 0         0 $self->_build($context, $token);
1143 0         0 return 14;
1144             }
1145 6 50       22 if ($self->match_StepLine($context, $token)) {
1146 6         19 $self->_start_rule($context, 'Step');
1147 6         21 $self->_build($context, $token);
1148 6         25 return 15;
1149             }
1150 0 0       0 if ($self->match_TagLine($context, $token)) {
1151 0 0       0 if ($self->lookahead_1($context, $token)) {
1152 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1153 0         0 $self->_start_rule($context, 'Tags');
1154 0         0 $self->_build($context, $token);
1155 0         0 return 17;
1156             }
1157             }
1158 0 0       0 if ($self->match_TagLine($context, $token)) {
1159 0 0       0 if ($self->lookahead_0($context, $token)) {
1160 0         0 $self->_end_rule($context, 'Scenario');
1161 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1162 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1163 0         0 $self->_start_rule($context, 'Tags');
1164 0         0 $self->_build($context, $token);
1165 0         0 return 11;
1166             }
1167             }
1168 0 0       0 if ($self->match_TagLine($context, $token)) {
1169 0         0 $self->_end_rule($context, 'Scenario');
1170 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1171 0         0 $self->_start_rule($context, 'Rule');
1172 0         0 $self->_start_rule($context, 'RuleHeader');
1173 0         0 $self->_start_rule($context, 'Tags');
1174 0         0 $self->_build($context, $token);
1175 0         0 return 22;
1176             }
1177 0 0       0 if ($self->match_ExamplesLine($context, $token)) {
1178 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1179 0         0 $self->_start_rule($context, 'Examples');
1180 0         0 $self->_build($context, $token);
1181 0         0 return 18;
1182             }
1183 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
1184 0         0 $self->_end_rule($context, 'Scenario');
1185 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1186 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1187 0         0 $self->_start_rule($context, 'Scenario');
1188 0         0 $self->_build($context, $token);
1189 0         0 return 12;
1190             }
1191 0 0       0 if ($self->match_RuleLine($context, $token)) {
1192 0         0 $self->_end_rule($context, 'Scenario');
1193 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1194 0         0 $self->_start_rule($context, 'Rule');
1195 0         0 $self->_start_rule($context, 'RuleHeader');
1196 0         0 $self->_build($context, $token);
1197 0         0 return 23;
1198             }
1199 0 0       0 if ($self->match_Other($context, $token)) {
1200 0         0 $self->_start_rule($context, 'Description');
1201 0         0 $self->_build($context, $token);
1202 0         0 return 13;
1203             }
1204              
1205 0         0 $token->detach;
1206              
1207             # Create the appropriate error
1208 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
1209             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1210              
1211 0         0 my @args = (
1212             $token,
1213             ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
1214             "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0",
1215             );
1216              
1217 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
1218              
1219 0         0 eval {$error_class->throw( @args )};
  0         0  
1220 0         0 $self->add_error( $context, $@ );
1221              
1222 0         0 return 12;
1223             }
1224              
1225             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0
1226             sub match_token_at_13 {
1227 0     0 0 0 my ( $self, $token, $context ) = @_;
1228 0 0       0 if ($self->match_EOF($context, $token)) {
1229 0         0 $self->_end_rule($context, 'Description');
1230 0         0 $self->_end_rule($context, 'Scenario');
1231 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1232 0         0 $self->_end_rule($context, 'Feature');
1233 0         0 $self->_build($context, $token);
1234 0         0 return 42;
1235             }
1236 0 0       0 if ($self->match_Comment($context, $token)) {
1237 0         0 $self->_end_rule($context, 'Description');
1238 0         0 $self->_build($context, $token);
1239 0         0 return 14;
1240             }
1241 0 0       0 if ($self->match_StepLine($context, $token)) {
1242 0         0 $self->_end_rule($context, 'Description');
1243 0         0 $self->_start_rule($context, 'Step');
1244 0         0 $self->_build($context, $token);
1245 0         0 return 15;
1246             }
1247 0 0       0 if ($self->match_TagLine($context, $token)) {
1248 0 0       0 if ($self->lookahead_1($context, $token)) {
1249 0         0 $self->_end_rule($context, 'Description');
1250 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1251 0         0 $self->_start_rule($context, 'Tags');
1252 0         0 $self->_build($context, $token);
1253 0         0 return 17;
1254             }
1255             }
1256 0 0       0 if ($self->match_TagLine($context, $token)) {
1257 0 0       0 if ($self->lookahead_0($context, $token)) {
1258 0         0 $self->_end_rule($context, 'Description');
1259 0         0 $self->_end_rule($context, 'Scenario');
1260 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1261 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1262 0         0 $self->_start_rule($context, 'Tags');
1263 0         0 $self->_build($context, $token);
1264 0         0 return 11;
1265             }
1266             }
1267 0 0       0 if ($self->match_TagLine($context, $token)) {
1268 0         0 $self->_end_rule($context, 'Description');
1269 0         0 $self->_end_rule($context, 'Scenario');
1270 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1271 0         0 $self->_start_rule($context, 'Rule');
1272 0         0 $self->_start_rule($context, 'RuleHeader');
1273 0         0 $self->_start_rule($context, 'Tags');
1274 0         0 $self->_build($context, $token);
1275 0         0 return 22;
1276             }
1277 0 0       0 if ($self->match_ExamplesLine($context, $token)) {
1278 0         0 $self->_end_rule($context, 'Description');
1279 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1280 0         0 $self->_start_rule($context, 'Examples');
1281 0         0 $self->_build($context, $token);
1282 0         0 return 18;
1283             }
1284 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
1285 0         0 $self->_end_rule($context, 'Description');
1286 0         0 $self->_end_rule($context, 'Scenario');
1287 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1288 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1289 0         0 $self->_start_rule($context, 'Scenario');
1290 0         0 $self->_build($context, $token);
1291 0         0 return 12;
1292             }
1293 0 0       0 if ($self->match_RuleLine($context, $token)) {
1294 0         0 $self->_end_rule($context, 'Description');
1295 0         0 $self->_end_rule($context, 'Scenario');
1296 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1297 0         0 $self->_start_rule($context, 'Rule');
1298 0         0 $self->_start_rule($context, 'RuleHeader');
1299 0         0 $self->_build($context, $token);
1300 0         0 return 23;
1301             }
1302 0 0       0 if ($self->match_Other($context, $token)) {
1303 0         0 $self->_build($context, $token);
1304 0         0 return 13;
1305             }
1306              
1307 0         0 $token->detach;
1308              
1309             # Create the appropriate error
1310 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
1311             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1312              
1313 0         0 my @args = (
1314             $token,
1315             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
1316             "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0",
1317             );
1318              
1319 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
1320              
1321 0         0 eval {$error_class->throw( @args )};
  0         0  
1322 0         0 $self->add_error( $context, $@ );
1323              
1324 0         0 return 13;
1325             }
1326              
1327             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0
1328             sub match_token_at_14 {
1329 0     0 0 0 my ( $self, $token, $context ) = @_;
1330 0 0       0 if ($self->match_EOF($context, $token)) {
1331 0         0 $self->_end_rule($context, 'Scenario');
1332 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1333 0         0 $self->_end_rule($context, 'Feature');
1334 0         0 $self->_build($context, $token);
1335 0         0 return 42;
1336             }
1337 0 0       0 if ($self->match_Comment($context, $token)) {
1338 0         0 $self->_build($context, $token);
1339 0         0 return 14;
1340             }
1341 0 0       0 if ($self->match_StepLine($context, $token)) {
1342 0         0 $self->_start_rule($context, 'Step');
1343 0         0 $self->_build($context, $token);
1344 0         0 return 15;
1345             }
1346 0 0       0 if ($self->match_TagLine($context, $token)) {
1347 0 0       0 if ($self->lookahead_1($context, $token)) {
1348 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1349 0         0 $self->_start_rule($context, 'Tags');
1350 0         0 $self->_build($context, $token);
1351 0         0 return 17;
1352             }
1353             }
1354 0 0       0 if ($self->match_TagLine($context, $token)) {
1355 0 0       0 if ($self->lookahead_0($context, $token)) {
1356 0         0 $self->_end_rule($context, 'Scenario');
1357 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1358 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1359 0         0 $self->_start_rule($context, 'Tags');
1360 0         0 $self->_build($context, $token);
1361 0         0 return 11;
1362             }
1363             }
1364 0 0       0 if ($self->match_TagLine($context, $token)) {
1365 0         0 $self->_end_rule($context, 'Scenario');
1366 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1367 0         0 $self->_start_rule($context, 'Rule');
1368 0         0 $self->_start_rule($context, 'RuleHeader');
1369 0         0 $self->_start_rule($context, 'Tags');
1370 0         0 $self->_build($context, $token);
1371 0         0 return 22;
1372             }
1373 0 0       0 if ($self->match_ExamplesLine($context, $token)) {
1374 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1375 0         0 $self->_start_rule($context, 'Examples');
1376 0         0 $self->_build($context, $token);
1377 0         0 return 18;
1378             }
1379 0 0       0 if ($self->match_ScenarioLine($context, $token)) {
1380 0         0 $self->_end_rule($context, 'Scenario');
1381 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1382 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1383 0         0 $self->_start_rule($context, 'Scenario');
1384 0         0 $self->_build($context, $token);
1385 0         0 return 12;
1386             }
1387 0 0       0 if ($self->match_RuleLine($context, $token)) {
1388 0         0 $self->_end_rule($context, 'Scenario');
1389 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1390 0         0 $self->_start_rule($context, 'Rule');
1391 0         0 $self->_start_rule($context, 'RuleHeader');
1392 0         0 $self->_build($context, $token);
1393 0         0 return 23;
1394             }
1395 0 0       0 if ($self->match_Empty($context, $token)) {
1396 0         0 $self->_build($context, $token);
1397 0         0 return 14;
1398             }
1399              
1400 0         0 $token->detach;
1401              
1402             # Create the appropriate error
1403 0 0       0 my $error_class = "Gherkin::Exceptions::" . (
1404             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1405              
1406 0         0 my @args = (
1407             $token,
1408             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
1409             "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0",
1410             );
1411              
1412 0 0       0 $error_class->throw( @args ) if $self->stop_at_first_error;
1413              
1414 0         0 eval {$error_class->throw( @args )};
  0         0  
1415 0         0 $self->add_error( $context, $@ );
1416              
1417 0         0 return 14;
1418             }
1419              
1420             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0
1421             sub match_token_at_15 {
1422 9     9 0 26 my ( $self, $token, $context ) = @_;
1423 9 100       22 if ($self->match_EOF($context, $token)) {
1424 3         10 $self->_end_rule($context, 'Step');
1425 3         13 $self->_end_rule($context, 'Scenario');
1426 3         11 $self->_end_rule($context, 'ScenarioDefinition');
1427 3         12 $self->_end_rule($context, 'Feature');
1428 3         11 $self->_build($context, $token);
1429 3         12 return 42;
1430             }
1431 6 50       22 if ($self->match_TableRow($context, $token)) {
1432 0         0 $self->_start_rule($context, 'DataTable');
1433 0         0 $self->_build($context, $token);
1434 0         0 return 16;
1435             }
1436 6 50       46 if ($self->match_DocStringSeparator($context, $token)) {
1437 0         0 $self->_start_rule($context, 'DocString');
1438 0         0 $self->_build($context, $token);
1439 0         0 return 47;
1440             }
1441 6 50       21 if ($self->match_StepLine($context, $token)) {
1442 0         0 $self->_end_rule($context, 'Step');
1443 0         0 $self->_start_rule($context, 'Step');
1444 0         0 $self->_build($context, $token);
1445 0         0 return 15;
1446             }
1447 6 50       22 if ($self->match_TagLine($context, $token)) {
1448 0 0       0 if ($self->lookahead_1($context, $token)) {
1449 0         0 $self->_end_rule($context, 'Step');
1450 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1451 0         0 $self->_start_rule($context, 'Tags');
1452 0         0 $self->_build($context, $token);
1453 0         0 return 17;
1454             }
1455             }
1456 6 50       19 if ($self->match_TagLine($context, $token)) {
1457 0 0       0 if ($self->lookahead_0($context, $token)) {
1458 0         0 $self->_end_rule($context, 'Step');
1459 0         0 $self->_end_rule($context, 'Scenario');
1460 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1461 0         0 $self->_start_rule($context, 'ScenarioDefinition');
1462 0         0 $self->_start_rule($context, 'Tags');
1463 0         0 $self->_build($context, $token);
1464 0         0 return 11;
1465             }
1466             }
1467 6 50       18 if ($self->match_TagLine($context, $token)) {
1468 0         0 $self->_end_rule($context, 'Step');
1469 0         0 $self->_end_rule($context, 'Scenario');
1470 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1471 0         0 $self->_start_rule($context, 'Rule');
1472 0         0 $self->_start_rule($context, 'RuleHeader');
1473 0         0 $self->_start_rule($context, 'Tags');
1474 0         0 $self->_build($context, $token);
1475 0         0 return 22;
1476             }
1477 6 50       23 if ($self->match_ExamplesLine($context, $token)) {
1478 0         0 $self->_end_rule($context, 'Step');
1479 0         0 $self->_start_rule($context, 'ExamplesDefinition');
1480 0         0 $self->_start_rule($context, 'Examples');
1481 0         0 $self->_build($context, $token);
1482 0         0 return 18;
1483             }
1484 6 100       26 if ($self->match_ScenarioLine($context, $token)) {
1485 3         14 $self->_end_rule($context, 'Step');
1486 3         17 $self->_end_rule($context, 'Scenario');
1487 3         11 $self->_end_rule($context, 'ScenarioDefinition');
1488 3         12 $self->_start_rule($context, 'ScenarioDefinition');
1489 3         10 $self->_start_rule($context, 'Scenario');
1490 3         9 $self->_build($context, $token);
1491 3         13 return 12;
1492             }
1493 3 50       18 if ($self->match_RuleLine($context, $token)) {
1494 0         0 $self->_end_rule($context, 'Step');
1495 0         0 $self->_end_rule($context, 'Scenario');
1496 0         0 $self->_end_rule($context, 'ScenarioDefinition');
1497 0         0 $self->_start_rule($context, 'Rule');
1498 0         0 $self->_start_rule($context, 'RuleHeader');
1499 0         0 $self->_build($context, $token);
1500 0         0 return 23;
1501             }
1502 3 50       12 if ($self->match_Comment($context, $token)) {
1503 0         0 $self->_build($context, $token);
1504 0         0 return 15;
1505             }
1506 3 50       16 if ($self->match_Empty($context, $token)) {
1507 3         16 $self->_build($context, $token);
1508 3         11 return 15;
1509             }
1510              
1511 0           $token->detach;
1512              
1513             # Create the appropriate error
1514 0 0         my $error_class = "Gherkin::Exceptions::" . (
1515             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1516              
1517 0           my @args = (
1518             $token,
1519             ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
1520             "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0",
1521             );
1522              
1523 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
1524              
1525 0           eval {$error_class->throw( @args )};
  0            
1526 0           $self->add_error( $context, $@ );
1527              
1528 0           return 15;
1529             }
1530              
1531             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
1532             sub match_token_at_16 {
1533 0     0 0   my ( $self, $token, $context ) = @_;
1534 0 0         if ($self->match_EOF($context, $token)) {
1535 0           $self->_end_rule($context, 'DataTable');
1536 0           $self->_end_rule($context, 'Step');
1537 0           $self->_end_rule($context, 'Scenario');
1538 0           $self->_end_rule($context, 'ScenarioDefinition');
1539 0           $self->_end_rule($context, 'Feature');
1540 0           $self->_build($context, $token);
1541 0           return 42;
1542             }
1543 0 0         if ($self->match_TableRow($context, $token)) {
1544 0           $self->_build($context, $token);
1545 0           return 16;
1546             }
1547 0 0         if ($self->match_StepLine($context, $token)) {
1548 0           $self->_end_rule($context, 'DataTable');
1549 0           $self->_end_rule($context, 'Step');
1550 0           $self->_start_rule($context, 'Step');
1551 0           $self->_build($context, $token);
1552 0           return 15;
1553             }
1554 0 0         if ($self->match_TagLine($context, $token)) {
1555 0 0         if ($self->lookahead_1($context, $token)) {
1556 0           $self->_end_rule($context, 'DataTable');
1557 0           $self->_end_rule($context, 'Step');
1558 0           $self->_start_rule($context, 'ExamplesDefinition');
1559 0           $self->_start_rule($context, 'Tags');
1560 0           $self->_build($context, $token);
1561 0           return 17;
1562             }
1563             }
1564 0 0         if ($self->match_TagLine($context, $token)) {
1565 0 0         if ($self->lookahead_0($context, $token)) {
1566 0           $self->_end_rule($context, 'DataTable');
1567 0           $self->_end_rule($context, 'Step');
1568 0           $self->_end_rule($context, 'Scenario');
1569 0           $self->_end_rule($context, 'ScenarioDefinition');
1570 0           $self->_start_rule($context, 'ScenarioDefinition');
1571 0           $self->_start_rule($context, 'Tags');
1572 0           $self->_build($context, $token);
1573 0           return 11;
1574             }
1575             }
1576 0 0         if ($self->match_TagLine($context, $token)) {
1577 0           $self->_end_rule($context, 'DataTable');
1578 0           $self->_end_rule($context, 'Step');
1579 0           $self->_end_rule($context, 'Scenario');
1580 0           $self->_end_rule($context, 'ScenarioDefinition');
1581 0           $self->_start_rule($context, 'Rule');
1582 0           $self->_start_rule($context, 'RuleHeader');
1583 0           $self->_start_rule($context, 'Tags');
1584 0           $self->_build($context, $token);
1585 0           return 22;
1586             }
1587 0 0         if ($self->match_ExamplesLine($context, $token)) {
1588 0           $self->_end_rule($context, 'DataTable');
1589 0           $self->_end_rule($context, 'Step');
1590 0           $self->_start_rule($context, 'ExamplesDefinition');
1591 0           $self->_start_rule($context, 'Examples');
1592 0           $self->_build($context, $token);
1593 0           return 18;
1594             }
1595 0 0         if ($self->match_ScenarioLine($context, $token)) {
1596 0           $self->_end_rule($context, 'DataTable');
1597 0           $self->_end_rule($context, 'Step');
1598 0           $self->_end_rule($context, 'Scenario');
1599 0           $self->_end_rule($context, 'ScenarioDefinition');
1600 0           $self->_start_rule($context, 'ScenarioDefinition');
1601 0           $self->_start_rule($context, 'Scenario');
1602 0           $self->_build($context, $token);
1603 0           return 12;
1604             }
1605 0 0         if ($self->match_RuleLine($context, $token)) {
1606 0           $self->_end_rule($context, 'DataTable');
1607 0           $self->_end_rule($context, 'Step');
1608 0           $self->_end_rule($context, 'Scenario');
1609 0           $self->_end_rule($context, 'ScenarioDefinition');
1610 0           $self->_start_rule($context, 'Rule');
1611 0           $self->_start_rule($context, 'RuleHeader');
1612 0           $self->_build($context, $token);
1613 0           return 23;
1614             }
1615 0 0         if ($self->match_Comment($context, $token)) {
1616 0           $self->_build($context, $token);
1617 0           return 16;
1618             }
1619 0 0         if ($self->match_Empty($context, $token)) {
1620 0           $self->_build($context, $token);
1621 0           return 16;
1622             }
1623              
1624 0           $token->detach;
1625              
1626             # Create the appropriate error
1627 0 0         my $error_class = "Gherkin::Exceptions::" . (
1628             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1629              
1630 0           my @args = (
1631             $token,
1632             ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
1633             "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0",
1634             );
1635              
1636 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
1637              
1638 0           eval {$error_class->throw( @args )};
  0            
1639 0           $self->add_error( $context, $@ );
1640              
1641 0           return 16;
1642             }
1643              
1644             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0
1645             sub match_token_at_17 {
1646 0     0 0   my ( $self, $token, $context ) = @_;
1647 0 0         if ($self->match_TagLine($context, $token)) {
1648 0           $self->_build($context, $token);
1649 0           return 17;
1650             }
1651 0 0         if ($self->match_ExamplesLine($context, $token)) {
1652 0           $self->_end_rule($context, 'Tags');
1653 0           $self->_start_rule($context, 'Examples');
1654 0           $self->_build($context, $token);
1655 0           return 18;
1656             }
1657 0 0         if ($self->match_Comment($context, $token)) {
1658 0           $self->_build($context, $token);
1659 0           return 17;
1660             }
1661 0 0         if ($self->match_Empty($context, $token)) {
1662 0           $self->_build($context, $token);
1663 0           return 17;
1664             }
1665              
1666 0           $token->detach;
1667              
1668             # Create the appropriate error
1669 0 0         my $error_class = "Gherkin::Exceptions::" . (
1670             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1671              
1672 0           my @args = (
1673             $token,
1674             ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"], #"
1675             "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0",
1676             );
1677              
1678 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
1679              
1680 0           eval {$error_class->throw( @args )};
  0            
1681 0           $self->add_error( $context, $@ );
1682              
1683 0           return 17;
1684             }
1685              
1686             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0
1687             sub match_token_at_18 {
1688 0     0 0   my ( $self, $token, $context ) = @_;
1689 0 0         if ($self->match_EOF($context, $token)) {
1690 0           $self->_end_rule($context, 'Examples');
1691 0           $self->_end_rule($context, 'ExamplesDefinition');
1692 0           $self->_end_rule($context, 'Scenario');
1693 0           $self->_end_rule($context, 'ScenarioDefinition');
1694 0           $self->_end_rule($context, 'Feature');
1695 0           $self->_build($context, $token);
1696 0           return 42;
1697             }
1698 0 0         if ($self->match_Empty($context, $token)) {
1699 0           $self->_build($context, $token);
1700 0           return 18;
1701             }
1702 0 0         if ($self->match_Comment($context, $token)) {
1703 0           $self->_build($context, $token);
1704 0           return 20;
1705             }
1706 0 0         if ($self->match_TableRow($context, $token)) {
1707 0           $self->_start_rule($context, 'ExamplesTable');
1708 0           $self->_build($context, $token);
1709 0           return 21;
1710             }
1711 0 0         if ($self->match_TagLine($context, $token)) {
1712 0 0         if ($self->lookahead_1($context, $token)) {
1713 0           $self->_end_rule($context, 'Examples');
1714 0           $self->_end_rule($context, 'ExamplesDefinition');
1715 0           $self->_start_rule($context, 'ExamplesDefinition');
1716 0           $self->_start_rule($context, 'Tags');
1717 0           $self->_build($context, $token);
1718 0           return 17;
1719             }
1720             }
1721 0 0         if ($self->match_TagLine($context, $token)) {
1722 0 0         if ($self->lookahead_0($context, $token)) {
1723 0           $self->_end_rule($context, 'Examples');
1724 0           $self->_end_rule($context, 'ExamplesDefinition');
1725 0           $self->_end_rule($context, 'Scenario');
1726 0           $self->_end_rule($context, 'ScenarioDefinition');
1727 0           $self->_start_rule($context, 'ScenarioDefinition');
1728 0           $self->_start_rule($context, 'Tags');
1729 0           $self->_build($context, $token);
1730 0           return 11;
1731             }
1732             }
1733 0 0         if ($self->match_TagLine($context, $token)) {
1734 0           $self->_end_rule($context, 'Examples');
1735 0           $self->_end_rule($context, 'ExamplesDefinition');
1736 0           $self->_end_rule($context, 'Scenario');
1737 0           $self->_end_rule($context, 'ScenarioDefinition');
1738 0           $self->_start_rule($context, 'Rule');
1739 0           $self->_start_rule($context, 'RuleHeader');
1740 0           $self->_start_rule($context, 'Tags');
1741 0           $self->_build($context, $token);
1742 0           return 22;
1743             }
1744 0 0         if ($self->match_ExamplesLine($context, $token)) {
1745 0           $self->_end_rule($context, 'Examples');
1746 0           $self->_end_rule($context, 'ExamplesDefinition');
1747 0           $self->_start_rule($context, 'ExamplesDefinition');
1748 0           $self->_start_rule($context, 'Examples');
1749 0           $self->_build($context, $token);
1750 0           return 18;
1751             }
1752 0 0         if ($self->match_ScenarioLine($context, $token)) {
1753 0           $self->_end_rule($context, 'Examples');
1754 0           $self->_end_rule($context, 'ExamplesDefinition');
1755 0           $self->_end_rule($context, 'Scenario');
1756 0           $self->_end_rule($context, 'ScenarioDefinition');
1757 0           $self->_start_rule($context, 'ScenarioDefinition');
1758 0           $self->_start_rule($context, 'Scenario');
1759 0           $self->_build($context, $token);
1760 0           return 12;
1761             }
1762 0 0         if ($self->match_RuleLine($context, $token)) {
1763 0           $self->_end_rule($context, 'Examples');
1764 0           $self->_end_rule($context, 'ExamplesDefinition');
1765 0           $self->_end_rule($context, 'Scenario');
1766 0           $self->_end_rule($context, 'ScenarioDefinition');
1767 0           $self->_start_rule($context, 'Rule');
1768 0           $self->_start_rule($context, 'RuleHeader');
1769 0           $self->_build($context, $token);
1770 0           return 23;
1771             }
1772 0 0         if ($self->match_Other($context, $token)) {
1773 0           $self->_start_rule($context, 'Description');
1774 0           $self->_build($context, $token);
1775 0           return 19;
1776             }
1777              
1778 0           $token->detach;
1779              
1780             # Create the appropriate error
1781 0 0         my $error_class = "Gherkin::Exceptions::" . (
1782             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1783              
1784 0           my @args = (
1785             $token,
1786             ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
1787             "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0",
1788             );
1789              
1790 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
1791              
1792 0           eval {$error_class->throw( @args )};
  0            
1793 0           $self->add_error( $context, $@ );
1794              
1795 0           return 18;
1796             }
1797              
1798             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0
1799             sub match_token_at_19 {
1800 0     0 0   my ( $self, $token, $context ) = @_;
1801 0 0         if ($self->match_EOF($context, $token)) {
1802 0           $self->_end_rule($context, 'Description');
1803 0           $self->_end_rule($context, 'Examples');
1804 0           $self->_end_rule($context, 'ExamplesDefinition');
1805 0           $self->_end_rule($context, 'Scenario');
1806 0           $self->_end_rule($context, 'ScenarioDefinition');
1807 0           $self->_end_rule($context, 'Feature');
1808 0           $self->_build($context, $token);
1809 0           return 42;
1810             }
1811 0 0         if ($self->match_Comment($context, $token)) {
1812 0           $self->_end_rule($context, 'Description');
1813 0           $self->_build($context, $token);
1814 0           return 20;
1815             }
1816 0 0         if ($self->match_TableRow($context, $token)) {
1817 0           $self->_end_rule($context, 'Description');
1818 0           $self->_start_rule($context, 'ExamplesTable');
1819 0           $self->_build($context, $token);
1820 0           return 21;
1821             }
1822 0 0         if ($self->match_TagLine($context, $token)) {
1823 0 0         if ($self->lookahead_1($context, $token)) {
1824 0           $self->_end_rule($context, 'Description');
1825 0           $self->_end_rule($context, 'Examples');
1826 0           $self->_end_rule($context, 'ExamplesDefinition');
1827 0           $self->_start_rule($context, 'ExamplesDefinition');
1828 0           $self->_start_rule($context, 'Tags');
1829 0           $self->_build($context, $token);
1830 0           return 17;
1831             }
1832             }
1833 0 0         if ($self->match_TagLine($context, $token)) {
1834 0 0         if ($self->lookahead_0($context, $token)) {
1835 0           $self->_end_rule($context, 'Description');
1836 0           $self->_end_rule($context, 'Examples');
1837 0           $self->_end_rule($context, 'ExamplesDefinition');
1838 0           $self->_end_rule($context, 'Scenario');
1839 0           $self->_end_rule($context, 'ScenarioDefinition');
1840 0           $self->_start_rule($context, 'ScenarioDefinition');
1841 0           $self->_start_rule($context, 'Tags');
1842 0           $self->_build($context, $token);
1843 0           return 11;
1844             }
1845             }
1846 0 0         if ($self->match_TagLine($context, $token)) {
1847 0           $self->_end_rule($context, 'Description');
1848 0           $self->_end_rule($context, 'Examples');
1849 0           $self->_end_rule($context, 'ExamplesDefinition');
1850 0           $self->_end_rule($context, 'Scenario');
1851 0           $self->_end_rule($context, 'ScenarioDefinition');
1852 0           $self->_start_rule($context, 'Rule');
1853 0           $self->_start_rule($context, 'RuleHeader');
1854 0           $self->_start_rule($context, 'Tags');
1855 0           $self->_build($context, $token);
1856 0           return 22;
1857             }
1858 0 0         if ($self->match_ExamplesLine($context, $token)) {
1859 0           $self->_end_rule($context, 'Description');
1860 0           $self->_end_rule($context, 'Examples');
1861 0           $self->_end_rule($context, 'ExamplesDefinition');
1862 0           $self->_start_rule($context, 'ExamplesDefinition');
1863 0           $self->_start_rule($context, 'Examples');
1864 0           $self->_build($context, $token);
1865 0           return 18;
1866             }
1867 0 0         if ($self->match_ScenarioLine($context, $token)) {
1868 0           $self->_end_rule($context, 'Description');
1869 0           $self->_end_rule($context, 'Examples');
1870 0           $self->_end_rule($context, 'ExamplesDefinition');
1871 0           $self->_end_rule($context, 'Scenario');
1872 0           $self->_end_rule($context, 'ScenarioDefinition');
1873 0           $self->_start_rule($context, 'ScenarioDefinition');
1874 0           $self->_start_rule($context, 'Scenario');
1875 0           $self->_build($context, $token);
1876 0           return 12;
1877             }
1878 0 0         if ($self->match_RuleLine($context, $token)) {
1879 0           $self->_end_rule($context, 'Description');
1880 0           $self->_end_rule($context, 'Examples');
1881 0           $self->_end_rule($context, 'ExamplesDefinition');
1882 0           $self->_end_rule($context, 'Scenario');
1883 0           $self->_end_rule($context, 'ScenarioDefinition');
1884 0           $self->_start_rule($context, 'Rule');
1885 0           $self->_start_rule($context, 'RuleHeader');
1886 0           $self->_build($context, $token);
1887 0           return 23;
1888             }
1889 0 0         if ($self->match_Other($context, $token)) {
1890 0           $self->_build($context, $token);
1891 0           return 19;
1892             }
1893              
1894 0           $token->detach;
1895              
1896             # Create the appropriate error
1897 0 0         my $error_class = "Gherkin::Exceptions::" . (
1898             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
1899              
1900 0           my @args = (
1901             $token,
1902             ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
1903             "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0",
1904             );
1905              
1906 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
1907              
1908 0           eval {$error_class->throw( @args )};
  0            
1909 0           $self->add_error( $context, $@ );
1910              
1911 0           return 19;
1912             }
1913              
1914             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0
1915             sub match_token_at_20 {
1916 0     0 0   my ( $self, $token, $context ) = @_;
1917 0 0         if ($self->match_EOF($context, $token)) {
1918 0           $self->_end_rule($context, 'Examples');
1919 0           $self->_end_rule($context, 'ExamplesDefinition');
1920 0           $self->_end_rule($context, 'Scenario');
1921 0           $self->_end_rule($context, 'ScenarioDefinition');
1922 0           $self->_end_rule($context, 'Feature');
1923 0           $self->_build($context, $token);
1924 0           return 42;
1925             }
1926 0 0         if ($self->match_Comment($context, $token)) {
1927 0           $self->_build($context, $token);
1928 0           return 20;
1929             }
1930 0 0         if ($self->match_TableRow($context, $token)) {
1931 0           $self->_start_rule($context, 'ExamplesTable');
1932 0           $self->_build($context, $token);
1933 0           return 21;
1934             }
1935 0 0         if ($self->match_TagLine($context, $token)) {
1936 0 0         if ($self->lookahead_1($context, $token)) {
1937 0           $self->_end_rule($context, 'Examples');
1938 0           $self->_end_rule($context, 'ExamplesDefinition');
1939 0           $self->_start_rule($context, 'ExamplesDefinition');
1940 0           $self->_start_rule($context, 'Tags');
1941 0           $self->_build($context, $token);
1942 0           return 17;
1943             }
1944             }
1945 0 0         if ($self->match_TagLine($context, $token)) {
1946 0 0         if ($self->lookahead_0($context, $token)) {
1947 0           $self->_end_rule($context, 'Examples');
1948 0           $self->_end_rule($context, 'ExamplesDefinition');
1949 0           $self->_end_rule($context, 'Scenario');
1950 0           $self->_end_rule($context, 'ScenarioDefinition');
1951 0           $self->_start_rule($context, 'ScenarioDefinition');
1952 0           $self->_start_rule($context, 'Tags');
1953 0           $self->_build($context, $token);
1954 0           return 11;
1955             }
1956             }
1957 0 0         if ($self->match_TagLine($context, $token)) {
1958 0           $self->_end_rule($context, 'Examples');
1959 0           $self->_end_rule($context, 'ExamplesDefinition');
1960 0           $self->_end_rule($context, 'Scenario');
1961 0           $self->_end_rule($context, 'ScenarioDefinition');
1962 0           $self->_start_rule($context, 'Rule');
1963 0           $self->_start_rule($context, 'RuleHeader');
1964 0           $self->_start_rule($context, 'Tags');
1965 0           $self->_build($context, $token);
1966 0           return 22;
1967             }
1968 0 0         if ($self->match_ExamplesLine($context, $token)) {
1969 0           $self->_end_rule($context, 'Examples');
1970 0           $self->_end_rule($context, 'ExamplesDefinition');
1971 0           $self->_start_rule($context, 'ExamplesDefinition');
1972 0           $self->_start_rule($context, 'Examples');
1973 0           $self->_build($context, $token);
1974 0           return 18;
1975             }
1976 0 0         if ($self->match_ScenarioLine($context, $token)) {
1977 0           $self->_end_rule($context, 'Examples');
1978 0           $self->_end_rule($context, 'ExamplesDefinition');
1979 0           $self->_end_rule($context, 'Scenario');
1980 0           $self->_end_rule($context, 'ScenarioDefinition');
1981 0           $self->_start_rule($context, 'ScenarioDefinition');
1982 0           $self->_start_rule($context, 'Scenario');
1983 0           $self->_build($context, $token);
1984 0           return 12;
1985             }
1986 0 0         if ($self->match_RuleLine($context, $token)) {
1987 0           $self->_end_rule($context, 'Examples');
1988 0           $self->_end_rule($context, 'ExamplesDefinition');
1989 0           $self->_end_rule($context, 'Scenario');
1990 0           $self->_end_rule($context, 'ScenarioDefinition');
1991 0           $self->_start_rule($context, 'Rule');
1992 0           $self->_start_rule($context, 'RuleHeader');
1993 0           $self->_build($context, $token);
1994 0           return 23;
1995             }
1996 0 0         if ($self->match_Empty($context, $token)) {
1997 0           $self->_build($context, $token);
1998 0           return 20;
1999             }
2000              
2001 0           $token->detach;
2002              
2003             # Create the appropriate error
2004 0 0         my $error_class = "Gherkin::Exceptions::" . (
2005             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2006              
2007 0           my @args = (
2008             $token,
2009             ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
2010             "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0",
2011             );
2012              
2013 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2014              
2015 0           eval {$error_class->throw( @args )};
  0            
2016 0           $self->add_error( $context, $@ );
2017              
2018 0           return 20;
2019             }
2020              
2021             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0
2022             sub match_token_at_21 {
2023 0     0 0   my ( $self, $token, $context ) = @_;
2024 0 0         if ($self->match_EOF($context, $token)) {
2025 0           $self->_end_rule($context, 'ExamplesTable');
2026 0           $self->_end_rule($context, 'Examples');
2027 0           $self->_end_rule($context, 'ExamplesDefinition');
2028 0           $self->_end_rule($context, 'Scenario');
2029 0           $self->_end_rule($context, 'ScenarioDefinition');
2030 0           $self->_end_rule($context, 'Feature');
2031 0           $self->_build($context, $token);
2032 0           return 42;
2033             }
2034 0 0         if ($self->match_TableRow($context, $token)) {
2035 0           $self->_build($context, $token);
2036 0           return 21;
2037             }
2038 0 0         if ($self->match_TagLine($context, $token)) {
2039 0 0         if ($self->lookahead_1($context, $token)) {
2040 0           $self->_end_rule($context, 'ExamplesTable');
2041 0           $self->_end_rule($context, 'Examples');
2042 0           $self->_end_rule($context, 'ExamplesDefinition');
2043 0           $self->_start_rule($context, 'ExamplesDefinition');
2044 0           $self->_start_rule($context, 'Tags');
2045 0           $self->_build($context, $token);
2046 0           return 17;
2047             }
2048             }
2049 0 0         if ($self->match_TagLine($context, $token)) {
2050 0 0         if ($self->lookahead_0($context, $token)) {
2051 0           $self->_end_rule($context, 'ExamplesTable');
2052 0           $self->_end_rule($context, 'Examples');
2053 0           $self->_end_rule($context, 'ExamplesDefinition');
2054 0           $self->_end_rule($context, 'Scenario');
2055 0           $self->_end_rule($context, 'ScenarioDefinition');
2056 0           $self->_start_rule($context, 'ScenarioDefinition');
2057 0           $self->_start_rule($context, 'Tags');
2058 0           $self->_build($context, $token);
2059 0           return 11;
2060             }
2061             }
2062 0 0         if ($self->match_TagLine($context, $token)) {
2063 0           $self->_end_rule($context, 'ExamplesTable');
2064 0           $self->_end_rule($context, 'Examples');
2065 0           $self->_end_rule($context, 'ExamplesDefinition');
2066 0           $self->_end_rule($context, 'Scenario');
2067 0           $self->_end_rule($context, 'ScenarioDefinition');
2068 0           $self->_start_rule($context, 'Rule');
2069 0           $self->_start_rule($context, 'RuleHeader');
2070 0           $self->_start_rule($context, 'Tags');
2071 0           $self->_build($context, $token);
2072 0           return 22;
2073             }
2074 0 0         if ($self->match_ExamplesLine($context, $token)) {
2075 0           $self->_end_rule($context, 'ExamplesTable');
2076 0           $self->_end_rule($context, 'Examples');
2077 0           $self->_end_rule($context, 'ExamplesDefinition');
2078 0           $self->_start_rule($context, 'ExamplesDefinition');
2079 0           $self->_start_rule($context, 'Examples');
2080 0           $self->_build($context, $token);
2081 0           return 18;
2082             }
2083 0 0         if ($self->match_ScenarioLine($context, $token)) {
2084 0           $self->_end_rule($context, 'ExamplesTable');
2085 0           $self->_end_rule($context, 'Examples');
2086 0           $self->_end_rule($context, 'ExamplesDefinition');
2087 0           $self->_end_rule($context, 'Scenario');
2088 0           $self->_end_rule($context, 'ScenarioDefinition');
2089 0           $self->_start_rule($context, 'ScenarioDefinition');
2090 0           $self->_start_rule($context, 'Scenario');
2091 0           $self->_build($context, $token);
2092 0           return 12;
2093             }
2094 0 0         if ($self->match_RuleLine($context, $token)) {
2095 0           $self->_end_rule($context, 'ExamplesTable');
2096 0           $self->_end_rule($context, 'Examples');
2097 0           $self->_end_rule($context, 'ExamplesDefinition');
2098 0           $self->_end_rule($context, 'Scenario');
2099 0           $self->_end_rule($context, 'ScenarioDefinition');
2100 0           $self->_start_rule($context, 'Rule');
2101 0           $self->_start_rule($context, 'RuleHeader');
2102 0           $self->_build($context, $token);
2103 0           return 23;
2104             }
2105 0 0         if ($self->match_Comment($context, $token)) {
2106 0           $self->_build($context, $token);
2107 0           return 21;
2108             }
2109 0 0         if ($self->match_Empty($context, $token)) {
2110 0           $self->_build($context, $token);
2111 0           return 21;
2112             }
2113              
2114 0           $token->detach;
2115              
2116             # Create the appropriate error
2117 0 0         my $error_class = "Gherkin::Exceptions::" . (
2118             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2119              
2120 0           my @args = (
2121             $token,
2122             ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
2123             "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0",
2124             );
2125              
2126 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2127              
2128 0           eval {$error_class->throw( @args )};
  0            
2129 0           $self->add_error( $context, $@ );
2130              
2131 0           return 21;
2132             }
2133              
2134             # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0
2135             sub match_token_at_22 {
2136 0     0 0   my ( $self, $token, $context ) = @_;
2137 0 0         if ($self->match_TagLine($context, $token)) {
2138 0           $self->_build($context, $token);
2139 0           return 22;
2140             }
2141 0 0         if ($self->match_RuleLine($context, $token)) {
2142 0           $self->_end_rule($context, 'Tags');
2143 0           $self->_build($context, $token);
2144 0           return 23;
2145             }
2146 0 0         if ($self->match_Comment($context, $token)) {
2147 0           $self->_build($context, $token);
2148 0           return 22;
2149             }
2150 0 0         if ($self->match_Empty($context, $token)) {
2151 0           $self->_build($context, $token);
2152 0           return 22;
2153             }
2154              
2155 0           $token->detach;
2156              
2157             # Create the appropriate error
2158 0 0         my $error_class = "Gherkin::Exceptions::" . (
2159             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2160              
2161 0           my @args = (
2162             $token,
2163             ["#TagLine", "#RuleLine", "#Comment", "#Empty"], #"
2164             "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0",
2165             );
2166              
2167 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2168              
2169 0           eval {$error_class->throw( @args )};
  0            
2170 0           $self->add_error( $context, $@ );
2171              
2172 0           return 22;
2173             }
2174              
2175             # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0
2176             sub match_token_at_23 {
2177 0     0 0   my ( $self, $token, $context ) = @_;
2178 0 0         if ($self->match_EOF($context, $token)) {
2179 0           $self->_end_rule($context, 'RuleHeader');
2180 0           $self->_end_rule($context, 'Rule');
2181 0           $self->_end_rule($context, 'Feature');
2182 0           $self->_build($context, $token);
2183 0           return 42;
2184             }
2185 0 0         if ($self->match_Empty($context, $token)) {
2186 0           $self->_build($context, $token);
2187 0           return 23;
2188             }
2189 0 0         if ($self->match_Comment($context, $token)) {
2190 0           $self->_build($context, $token);
2191 0           return 25;
2192             }
2193 0 0         if ($self->match_BackgroundLine($context, $token)) {
2194 0           $self->_end_rule($context, 'RuleHeader');
2195 0           $self->_start_rule($context, 'Background');
2196 0           $self->_build($context, $token);
2197 0           return 26;
2198             }
2199 0 0         if ($self->match_TagLine($context, $token)) {
2200 0 0         if ($self->lookahead_0($context, $token)) {
2201 0           $self->_end_rule($context, 'RuleHeader');
2202 0           $self->_start_rule($context, 'ScenarioDefinition');
2203 0           $self->_start_rule($context, 'Tags');
2204 0           $self->_build($context, $token);
2205 0           return 31;
2206             }
2207             }
2208 0 0         if ($self->match_TagLine($context, $token)) {
2209 0           $self->_end_rule($context, 'RuleHeader');
2210 0           $self->_end_rule($context, 'Rule');
2211 0           $self->_start_rule($context, 'Rule');
2212 0           $self->_start_rule($context, 'RuleHeader');
2213 0           $self->_start_rule($context, 'Tags');
2214 0           $self->_build($context, $token);
2215 0           return 22;
2216             }
2217 0 0         if ($self->match_ScenarioLine($context, $token)) {
2218 0           $self->_end_rule($context, 'RuleHeader');
2219 0           $self->_start_rule($context, 'ScenarioDefinition');
2220 0           $self->_start_rule($context, 'Scenario');
2221 0           $self->_build($context, $token);
2222 0           return 32;
2223             }
2224 0 0         if ($self->match_RuleLine($context, $token)) {
2225 0           $self->_end_rule($context, 'RuleHeader');
2226 0           $self->_end_rule($context, 'Rule');
2227 0           $self->_start_rule($context, 'Rule');
2228 0           $self->_start_rule($context, 'RuleHeader');
2229 0           $self->_build($context, $token);
2230 0           return 23;
2231             }
2232 0 0         if ($self->match_Other($context, $token)) {
2233 0           $self->_start_rule($context, 'Description');
2234 0           $self->_build($context, $token);
2235 0           return 24;
2236             }
2237              
2238 0           $token->detach;
2239              
2240             # Create the appropriate error
2241 0 0         my $error_class = "Gherkin::Exceptions::" . (
2242             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2243              
2244 0           my @args = (
2245             $token,
2246             ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
2247             "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0",
2248             );
2249              
2250 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2251              
2252 0           eval {$error_class->throw( @args )};
  0            
2253 0           $self->add_error( $context, $@ );
2254              
2255 0           return 23;
2256             }
2257              
2258             # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0
2259             sub match_token_at_24 {
2260 0     0 0   my ( $self, $token, $context ) = @_;
2261 0 0         if ($self->match_EOF($context, $token)) {
2262 0           $self->_end_rule($context, 'Description');
2263 0           $self->_end_rule($context, 'RuleHeader');
2264 0           $self->_end_rule($context, 'Rule');
2265 0           $self->_end_rule($context, 'Feature');
2266 0           $self->_build($context, $token);
2267 0           return 42;
2268             }
2269 0 0         if ($self->match_Comment($context, $token)) {
2270 0           $self->_end_rule($context, 'Description');
2271 0           $self->_build($context, $token);
2272 0           return 25;
2273             }
2274 0 0         if ($self->match_BackgroundLine($context, $token)) {
2275 0           $self->_end_rule($context, 'Description');
2276 0           $self->_end_rule($context, 'RuleHeader');
2277 0           $self->_start_rule($context, 'Background');
2278 0           $self->_build($context, $token);
2279 0           return 26;
2280             }
2281 0 0         if ($self->match_TagLine($context, $token)) {
2282 0 0         if ($self->lookahead_0($context, $token)) {
2283 0           $self->_end_rule($context, 'Description');
2284 0           $self->_end_rule($context, 'RuleHeader');
2285 0           $self->_start_rule($context, 'ScenarioDefinition');
2286 0           $self->_start_rule($context, 'Tags');
2287 0           $self->_build($context, $token);
2288 0           return 31;
2289             }
2290             }
2291 0 0         if ($self->match_TagLine($context, $token)) {
2292 0           $self->_end_rule($context, 'Description');
2293 0           $self->_end_rule($context, 'RuleHeader');
2294 0           $self->_end_rule($context, 'Rule');
2295 0           $self->_start_rule($context, 'Rule');
2296 0           $self->_start_rule($context, 'RuleHeader');
2297 0           $self->_start_rule($context, 'Tags');
2298 0           $self->_build($context, $token);
2299 0           return 22;
2300             }
2301 0 0         if ($self->match_ScenarioLine($context, $token)) {
2302 0           $self->_end_rule($context, 'Description');
2303 0           $self->_end_rule($context, 'RuleHeader');
2304 0           $self->_start_rule($context, 'ScenarioDefinition');
2305 0           $self->_start_rule($context, 'Scenario');
2306 0           $self->_build($context, $token);
2307 0           return 32;
2308             }
2309 0 0         if ($self->match_RuleLine($context, $token)) {
2310 0           $self->_end_rule($context, 'Description');
2311 0           $self->_end_rule($context, 'RuleHeader');
2312 0           $self->_end_rule($context, 'Rule');
2313 0           $self->_start_rule($context, 'Rule');
2314 0           $self->_start_rule($context, 'RuleHeader');
2315 0           $self->_build($context, $token);
2316 0           return 23;
2317             }
2318 0 0         if ($self->match_Other($context, $token)) {
2319 0           $self->_build($context, $token);
2320 0           return 24;
2321             }
2322              
2323 0           $token->detach;
2324              
2325             # Create the appropriate error
2326 0 0         my $error_class = "Gherkin::Exceptions::" . (
2327             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2328              
2329 0           my @args = (
2330             $token,
2331             ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
2332             "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0",
2333             );
2334              
2335 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2336              
2337 0           eval {$error_class->throw( @args )};
  0            
2338 0           $self->add_error( $context, $@ );
2339              
2340 0           return 24;
2341             }
2342              
2343             # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0
2344             sub match_token_at_25 {
2345 0     0 0   my ( $self, $token, $context ) = @_;
2346 0 0         if ($self->match_EOF($context, $token)) {
2347 0           $self->_end_rule($context, 'RuleHeader');
2348 0           $self->_end_rule($context, 'Rule');
2349 0           $self->_end_rule($context, 'Feature');
2350 0           $self->_build($context, $token);
2351 0           return 42;
2352             }
2353 0 0         if ($self->match_Comment($context, $token)) {
2354 0           $self->_build($context, $token);
2355 0           return 25;
2356             }
2357 0 0         if ($self->match_BackgroundLine($context, $token)) {
2358 0           $self->_end_rule($context, 'RuleHeader');
2359 0           $self->_start_rule($context, 'Background');
2360 0           $self->_build($context, $token);
2361 0           return 26;
2362             }
2363 0 0         if ($self->match_TagLine($context, $token)) {
2364 0 0         if ($self->lookahead_0($context, $token)) {
2365 0           $self->_end_rule($context, 'RuleHeader');
2366 0           $self->_start_rule($context, 'ScenarioDefinition');
2367 0           $self->_start_rule($context, 'Tags');
2368 0           $self->_build($context, $token);
2369 0           return 31;
2370             }
2371             }
2372 0 0         if ($self->match_TagLine($context, $token)) {
2373 0           $self->_end_rule($context, 'RuleHeader');
2374 0           $self->_end_rule($context, 'Rule');
2375 0           $self->_start_rule($context, 'Rule');
2376 0           $self->_start_rule($context, 'RuleHeader');
2377 0           $self->_start_rule($context, 'Tags');
2378 0           $self->_build($context, $token);
2379 0           return 22;
2380             }
2381 0 0         if ($self->match_ScenarioLine($context, $token)) {
2382 0           $self->_end_rule($context, 'RuleHeader');
2383 0           $self->_start_rule($context, 'ScenarioDefinition');
2384 0           $self->_start_rule($context, 'Scenario');
2385 0           $self->_build($context, $token);
2386 0           return 32;
2387             }
2388 0 0         if ($self->match_RuleLine($context, $token)) {
2389 0           $self->_end_rule($context, 'RuleHeader');
2390 0           $self->_end_rule($context, 'Rule');
2391 0           $self->_start_rule($context, 'Rule');
2392 0           $self->_start_rule($context, 'RuleHeader');
2393 0           $self->_build($context, $token);
2394 0           return 23;
2395             }
2396 0 0         if ($self->match_Empty($context, $token)) {
2397 0           $self->_build($context, $token);
2398 0           return 25;
2399             }
2400              
2401 0           $token->detach;
2402              
2403             # Create the appropriate error
2404 0 0         my $error_class = "Gherkin::Exceptions::" . (
2405             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2406              
2407 0           my @args = (
2408             $token,
2409             ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
2410             "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0",
2411             );
2412              
2413 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2414              
2415 0           eval {$error_class->throw( @args )};
  0            
2416 0           $self->add_error( $context, $@ );
2417              
2418 0           return 25;
2419             }
2420              
2421             # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0
2422             sub match_token_at_26 {
2423 0     0 0   my ( $self, $token, $context ) = @_;
2424 0 0         if ($self->match_EOF($context, $token)) {
2425 0           $self->_end_rule($context, 'Background');
2426 0           $self->_end_rule($context, 'Rule');
2427 0           $self->_end_rule($context, 'Feature');
2428 0           $self->_build($context, $token);
2429 0           return 42;
2430             }
2431 0 0         if ($self->match_Empty($context, $token)) {
2432 0           $self->_build($context, $token);
2433 0           return 26;
2434             }
2435 0 0         if ($self->match_Comment($context, $token)) {
2436 0           $self->_build($context, $token);
2437 0           return 28;
2438             }
2439 0 0         if ($self->match_StepLine($context, $token)) {
2440 0           $self->_start_rule($context, 'Step');
2441 0           $self->_build($context, $token);
2442 0           return 29;
2443             }
2444 0 0         if ($self->match_TagLine($context, $token)) {
2445 0 0         if ($self->lookahead_0($context, $token)) {
2446 0           $self->_end_rule($context, 'Background');
2447 0           $self->_start_rule($context, 'ScenarioDefinition');
2448 0           $self->_start_rule($context, 'Tags');
2449 0           $self->_build($context, $token);
2450 0           return 31;
2451             }
2452             }
2453 0 0         if ($self->match_TagLine($context, $token)) {
2454 0           $self->_end_rule($context, 'Background');
2455 0           $self->_end_rule($context, 'Rule');
2456 0           $self->_start_rule($context, 'Rule');
2457 0           $self->_start_rule($context, 'RuleHeader');
2458 0           $self->_start_rule($context, 'Tags');
2459 0           $self->_build($context, $token);
2460 0           return 22;
2461             }
2462 0 0         if ($self->match_ScenarioLine($context, $token)) {
2463 0           $self->_end_rule($context, 'Background');
2464 0           $self->_start_rule($context, 'ScenarioDefinition');
2465 0           $self->_start_rule($context, 'Scenario');
2466 0           $self->_build($context, $token);
2467 0           return 32;
2468             }
2469 0 0         if ($self->match_RuleLine($context, $token)) {
2470 0           $self->_end_rule($context, 'Background');
2471 0           $self->_end_rule($context, 'Rule');
2472 0           $self->_start_rule($context, 'Rule');
2473 0           $self->_start_rule($context, 'RuleHeader');
2474 0           $self->_build($context, $token);
2475 0           return 23;
2476             }
2477 0 0         if ($self->match_Other($context, $token)) {
2478 0           $self->_start_rule($context, 'Description');
2479 0           $self->_build($context, $token);
2480 0           return 27;
2481             }
2482              
2483 0           $token->detach;
2484              
2485             # Create the appropriate error
2486 0 0         my $error_class = "Gherkin::Exceptions::" . (
2487             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2488              
2489 0           my @args = (
2490             $token,
2491             ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
2492             "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0",
2493             );
2494              
2495 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2496              
2497 0           eval {$error_class->throw( @args )};
  0            
2498 0           $self->add_error( $context, $@ );
2499              
2500 0           return 26;
2501             }
2502              
2503             # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0
2504             sub match_token_at_27 {
2505 0     0 0   my ( $self, $token, $context ) = @_;
2506 0 0         if ($self->match_EOF($context, $token)) {
2507 0           $self->_end_rule($context, 'Description');
2508 0           $self->_end_rule($context, 'Background');
2509 0           $self->_end_rule($context, 'Rule');
2510 0           $self->_end_rule($context, 'Feature');
2511 0           $self->_build($context, $token);
2512 0           return 42;
2513             }
2514 0 0         if ($self->match_Comment($context, $token)) {
2515 0           $self->_end_rule($context, 'Description');
2516 0           $self->_build($context, $token);
2517 0           return 28;
2518             }
2519 0 0         if ($self->match_StepLine($context, $token)) {
2520 0           $self->_end_rule($context, 'Description');
2521 0           $self->_start_rule($context, 'Step');
2522 0           $self->_build($context, $token);
2523 0           return 29;
2524             }
2525 0 0         if ($self->match_TagLine($context, $token)) {
2526 0 0         if ($self->lookahead_0($context, $token)) {
2527 0           $self->_end_rule($context, 'Description');
2528 0           $self->_end_rule($context, 'Background');
2529 0           $self->_start_rule($context, 'ScenarioDefinition');
2530 0           $self->_start_rule($context, 'Tags');
2531 0           $self->_build($context, $token);
2532 0           return 31;
2533             }
2534             }
2535 0 0         if ($self->match_TagLine($context, $token)) {
2536 0           $self->_end_rule($context, 'Description');
2537 0           $self->_end_rule($context, 'Background');
2538 0           $self->_end_rule($context, 'Rule');
2539 0           $self->_start_rule($context, 'Rule');
2540 0           $self->_start_rule($context, 'RuleHeader');
2541 0           $self->_start_rule($context, 'Tags');
2542 0           $self->_build($context, $token);
2543 0           return 22;
2544             }
2545 0 0         if ($self->match_ScenarioLine($context, $token)) {
2546 0           $self->_end_rule($context, 'Description');
2547 0           $self->_end_rule($context, 'Background');
2548 0           $self->_start_rule($context, 'ScenarioDefinition');
2549 0           $self->_start_rule($context, 'Scenario');
2550 0           $self->_build($context, $token);
2551 0           return 32;
2552             }
2553 0 0         if ($self->match_RuleLine($context, $token)) {
2554 0           $self->_end_rule($context, 'Description');
2555 0           $self->_end_rule($context, 'Background');
2556 0           $self->_end_rule($context, 'Rule');
2557 0           $self->_start_rule($context, 'Rule');
2558 0           $self->_start_rule($context, 'RuleHeader');
2559 0           $self->_build($context, $token);
2560 0           return 23;
2561             }
2562 0 0         if ($self->match_Other($context, $token)) {
2563 0           $self->_build($context, $token);
2564 0           return 27;
2565             }
2566              
2567 0           $token->detach;
2568              
2569             # Create the appropriate error
2570 0 0         my $error_class = "Gherkin::Exceptions::" . (
2571             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2572              
2573 0           my @args = (
2574             $token,
2575             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
2576             "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0",
2577             );
2578              
2579 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2580              
2581 0           eval {$error_class->throw( @args )};
  0            
2582 0           $self->add_error( $context, $@ );
2583              
2584 0           return 27;
2585             }
2586              
2587             # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0
2588             sub match_token_at_28 {
2589 0     0 0   my ( $self, $token, $context ) = @_;
2590 0 0         if ($self->match_EOF($context, $token)) {
2591 0           $self->_end_rule($context, 'Background');
2592 0           $self->_end_rule($context, 'Rule');
2593 0           $self->_end_rule($context, 'Feature');
2594 0           $self->_build($context, $token);
2595 0           return 42;
2596             }
2597 0 0         if ($self->match_Comment($context, $token)) {
2598 0           $self->_build($context, $token);
2599 0           return 28;
2600             }
2601 0 0         if ($self->match_StepLine($context, $token)) {
2602 0           $self->_start_rule($context, 'Step');
2603 0           $self->_build($context, $token);
2604 0           return 29;
2605             }
2606 0 0         if ($self->match_TagLine($context, $token)) {
2607 0 0         if ($self->lookahead_0($context, $token)) {
2608 0           $self->_end_rule($context, 'Background');
2609 0           $self->_start_rule($context, 'ScenarioDefinition');
2610 0           $self->_start_rule($context, 'Tags');
2611 0           $self->_build($context, $token);
2612 0           return 31;
2613             }
2614             }
2615 0 0         if ($self->match_TagLine($context, $token)) {
2616 0           $self->_end_rule($context, 'Background');
2617 0           $self->_end_rule($context, 'Rule');
2618 0           $self->_start_rule($context, 'Rule');
2619 0           $self->_start_rule($context, 'RuleHeader');
2620 0           $self->_start_rule($context, 'Tags');
2621 0           $self->_build($context, $token);
2622 0           return 22;
2623             }
2624 0 0         if ($self->match_ScenarioLine($context, $token)) {
2625 0           $self->_end_rule($context, 'Background');
2626 0           $self->_start_rule($context, 'ScenarioDefinition');
2627 0           $self->_start_rule($context, 'Scenario');
2628 0           $self->_build($context, $token);
2629 0           return 32;
2630             }
2631 0 0         if ($self->match_RuleLine($context, $token)) {
2632 0           $self->_end_rule($context, 'Background');
2633 0           $self->_end_rule($context, 'Rule');
2634 0           $self->_start_rule($context, 'Rule');
2635 0           $self->_start_rule($context, 'RuleHeader');
2636 0           $self->_build($context, $token);
2637 0           return 23;
2638             }
2639 0 0         if ($self->match_Empty($context, $token)) {
2640 0           $self->_build($context, $token);
2641 0           return 28;
2642             }
2643              
2644 0           $token->detach;
2645              
2646             # Create the appropriate error
2647 0 0         my $error_class = "Gherkin::Exceptions::" . (
2648             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2649              
2650 0           my @args = (
2651             $token,
2652             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
2653             "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0",
2654             );
2655              
2656 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2657              
2658 0           eval {$error_class->throw( @args )};
  0            
2659 0           $self->add_error( $context, $@ );
2660              
2661 0           return 28;
2662             }
2663              
2664             # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0
2665             sub match_token_at_29 {
2666 0     0 0   my ( $self, $token, $context ) = @_;
2667 0 0         if ($self->match_EOF($context, $token)) {
2668 0           $self->_end_rule($context, 'Step');
2669 0           $self->_end_rule($context, 'Background');
2670 0           $self->_end_rule($context, 'Rule');
2671 0           $self->_end_rule($context, 'Feature');
2672 0           $self->_build($context, $token);
2673 0           return 42;
2674             }
2675 0 0         if ($self->match_TableRow($context, $token)) {
2676 0           $self->_start_rule($context, 'DataTable');
2677 0           $self->_build($context, $token);
2678 0           return 30;
2679             }
2680 0 0         if ($self->match_DocStringSeparator($context, $token)) {
2681 0           $self->_start_rule($context, 'DocString');
2682 0           $self->_build($context, $token);
2683 0           return 45;
2684             }
2685 0 0         if ($self->match_StepLine($context, $token)) {
2686 0           $self->_end_rule($context, 'Step');
2687 0           $self->_start_rule($context, 'Step');
2688 0           $self->_build($context, $token);
2689 0           return 29;
2690             }
2691 0 0         if ($self->match_TagLine($context, $token)) {
2692 0 0         if ($self->lookahead_0($context, $token)) {
2693 0           $self->_end_rule($context, 'Step');
2694 0           $self->_end_rule($context, 'Background');
2695 0           $self->_start_rule($context, 'ScenarioDefinition');
2696 0           $self->_start_rule($context, 'Tags');
2697 0           $self->_build($context, $token);
2698 0           return 31;
2699             }
2700             }
2701 0 0         if ($self->match_TagLine($context, $token)) {
2702 0           $self->_end_rule($context, 'Step');
2703 0           $self->_end_rule($context, 'Background');
2704 0           $self->_end_rule($context, 'Rule');
2705 0           $self->_start_rule($context, 'Rule');
2706 0           $self->_start_rule($context, 'RuleHeader');
2707 0           $self->_start_rule($context, 'Tags');
2708 0           $self->_build($context, $token);
2709 0           return 22;
2710             }
2711 0 0         if ($self->match_ScenarioLine($context, $token)) {
2712 0           $self->_end_rule($context, 'Step');
2713 0           $self->_end_rule($context, 'Background');
2714 0           $self->_start_rule($context, 'ScenarioDefinition');
2715 0           $self->_start_rule($context, 'Scenario');
2716 0           $self->_build($context, $token);
2717 0           return 32;
2718             }
2719 0 0         if ($self->match_RuleLine($context, $token)) {
2720 0           $self->_end_rule($context, 'Step');
2721 0           $self->_end_rule($context, 'Background');
2722 0           $self->_end_rule($context, 'Rule');
2723 0           $self->_start_rule($context, 'Rule');
2724 0           $self->_start_rule($context, 'RuleHeader');
2725 0           $self->_build($context, $token);
2726 0           return 23;
2727             }
2728 0 0         if ($self->match_Comment($context, $token)) {
2729 0           $self->_build($context, $token);
2730 0           return 29;
2731             }
2732 0 0         if ($self->match_Empty($context, $token)) {
2733 0           $self->_build($context, $token);
2734 0           return 29;
2735             }
2736              
2737 0           $token->detach;
2738              
2739             # Create the appropriate error
2740 0 0         my $error_class = "Gherkin::Exceptions::" . (
2741             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2742              
2743 0           my @args = (
2744             $token,
2745             ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
2746             "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0",
2747             );
2748              
2749 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2750              
2751 0           eval {$error_class->throw( @args )};
  0            
2752 0           $self->add_error( $context, $@ );
2753              
2754 0           return 29;
2755             }
2756              
2757             # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
2758             sub match_token_at_30 {
2759 0     0 0   my ( $self, $token, $context ) = @_;
2760 0 0         if ($self->match_EOF($context, $token)) {
2761 0           $self->_end_rule($context, 'DataTable');
2762 0           $self->_end_rule($context, 'Step');
2763 0           $self->_end_rule($context, 'Background');
2764 0           $self->_end_rule($context, 'Rule');
2765 0           $self->_end_rule($context, 'Feature');
2766 0           $self->_build($context, $token);
2767 0           return 42;
2768             }
2769 0 0         if ($self->match_TableRow($context, $token)) {
2770 0           $self->_build($context, $token);
2771 0           return 30;
2772             }
2773 0 0         if ($self->match_StepLine($context, $token)) {
2774 0           $self->_end_rule($context, 'DataTable');
2775 0           $self->_end_rule($context, 'Step');
2776 0           $self->_start_rule($context, 'Step');
2777 0           $self->_build($context, $token);
2778 0           return 29;
2779             }
2780 0 0         if ($self->match_TagLine($context, $token)) {
2781 0 0         if ($self->lookahead_0($context, $token)) {
2782 0           $self->_end_rule($context, 'DataTable');
2783 0           $self->_end_rule($context, 'Step');
2784 0           $self->_end_rule($context, 'Background');
2785 0           $self->_start_rule($context, 'ScenarioDefinition');
2786 0           $self->_start_rule($context, 'Tags');
2787 0           $self->_build($context, $token);
2788 0           return 31;
2789             }
2790             }
2791 0 0         if ($self->match_TagLine($context, $token)) {
2792 0           $self->_end_rule($context, 'DataTable');
2793 0           $self->_end_rule($context, 'Step');
2794 0           $self->_end_rule($context, 'Background');
2795 0           $self->_end_rule($context, 'Rule');
2796 0           $self->_start_rule($context, 'Rule');
2797 0           $self->_start_rule($context, 'RuleHeader');
2798 0           $self->_start_rule($context, 'Tags');
2799 0           $self->_build($context, $token);
2800 0           return 22;
2801             }
2802 0 0         if ($self->match_ScenarioLine($context, $token)) {
2803 0           $self->_end_rule($context, 'DataTable');
2804 0           $self->_end_rule($context, 'Step');
2805 0           $self->_end_rule($context, 'Background');
2806 0           $self->_start_rule($context, 'ScenarioDefinition');
2807 0           $self->_start_rule($context, 'Scenario');
2808 0           $self->_build($context, $token);
2809 0           return 32;
2810             }
2811 0 0         if ($self->match_RuleLine($context, $token)) {
2812 0           $self->_end_rule($context, 'DataTable');
2813 0           $self->_end_rule($context, 'Step');
2814 0           $self->_end_rule($context, 'Background');
2815 0           $self->_end_rule($context, 'Rule');
2816 0           $self->_start_rule($context, 'Rule');
2817 0           $self->_start_rule($context, 'RuleHeader');
2818 0           $self->_build($context, $token);
2819 0           return 23;
2820             }
2821 0 0         if ($self->match_Comment($context, $token)) {
2822 0           $self->_build($context, $token);
2823 0           return 30;
2824             }
2825 0 0         if ($self->match_Empty($context, $token)) {
2826 0           $self->_build($context, $token);
2827 0           return 30;
2828             }
2829              
2830 0           $token->detach;
2831              
2832             # Create the appropriate error
2833 0 0         my $error_class = "Gherkin::Exceptions::" . (
2834             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2835              
2836 0           my @args = (
2837             $token,
2838             ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
2839             "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0",
2840             );
2841              
2842 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2843              
2844 0           eval {$error_class->throw( @args )};
  0            
2845 0           $self->add_error( $context, $@ );
2846              
2847 0           return 30;
2848             }
2849              
2850             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0
2851             sub match_token_at_31 {
2852 0     0 0   my ( $self, $token, $context ) = @_;
2853 0 0         if ($self->match_TagLine($context, $token)) {
2854 0           $self->_build($context, $token);
2855 0           return 31;
2856             }
2857 0 0         if ($self->match_ScenarioLine($context, $token)) {
2858 0           $self->_end_rule($context, 'Tags');
2859 0           $self->_start_rule($context, 'Scenario');
2860 0           $self->_build($context, $token);
2861 0           return 32;
2862             }
2863 0 0         if ($self->match_Comment($context, $token)) {
2864 0           $self->_build($context, $token);
2865 0           return 31;
2866             }
2867 0 0         if ($self->match_Empty($context, $token)) {
2868 0           $self->_build($context, $token);
2869 0           return 31;
2870             }
2871              
2872 0           $token->detach;
2873              
2874             # Create the appropriate error
2875 0 0         my $error_class = "Gherkin::Exceptions::" . (
2876             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2877              
2878 0           my @args = (
2879             $token,
2880             ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], #"
2881             "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0",
2882             );
2883              
2884 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2885              
2886 0           eval {$error_class->throw( @args )};
  0            
2887 0           $self->add_error( $context, $@ );
2888              
2889 0           return 31;
2890             }
2891              
2892             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0
2893             sub match_token_at_32 {
2894 0     0 0   my ( $self, $token, $context ) = @_;
2895 0 0         if ($self->match_EOF($context, $token)) {
2896 0           $self->_end_rule($context, 'Scenario');
2897 0           $self->_end_rule($context, 'ScenarioDefinition');
2898 0           $self->_end_rule($context, 'Rule');
2899 0           $self->_end_rule($context, 'Feature');
2900 0           $self->_build($context, $token);
2901 0           return 42;
2902             }
2903 0 0         if ($self->match_Empty($context, $token)) {
2904 0           $self->_build($context, $token);
2905 0           return 32;
2906             }
2907 0 0         if ($self->match_Comment($context, $token)) {
2908 0           $self->_build($context, $token);
2909 0           return 34;
2910             }
2911 0 0         if ($self->match_StepLine($context, $token)) {
2912 0           $self->_start_rule($context, 'Step');
2913 0           $self->_build($context, $token);
2914 0           return 35;
2915             }
2916 0 0         if ($self->match_TagLine($context, $token)) {
2917 0 0         if ($self->lookahead_1($context, $token)) {
2918 0           $self->_start_rule($context, 'ExamplesDefinition');
2919 0           $self->_start_rule($context, 'Tags');
2920 0           $self->_build($context, $token);
2921 0           return 37;
2922             }
2923             }
2924 0 0         if ($self->match_TagLine($context, $token)) {
2925 0 0         if ($self->lookahead_0($context, $token)) {
2926 0           $self->_end_rule($context, 'Scenario');
2927 0           $self->_end_rule($context, 'ScenarioDefinition');
2928 0           $self->_start_rule($context, 'ScenarioDefinition');
2929 0           $self->_start_rule($context, 'Tags');
2930 0           $self->_build($context, $token);
2931 0           return 31;
2932             }
2933             }
2934 0 0         if ($self->match_TagLine($context, $token)) {
2935 0           $self->_end_rule($context, 'Scenario');
2936 0           $self->_end_rule($context, 'ScenarioDefinition');
2937 0           $self->_end_rule($context, 'Rule');
2938 0           $self->_start_rule($context, 'Rule');
2939 0           $self->_start_rule($context, 'RuleHeader');
2940 0           $self->_start_rule($context, 'Tags');
2941 0           $self->_build($context, $token);
2942 0           return 22;
2943             }
2944 0 0         if ($self->match_ExamplesLine($context, $token)) {
2945 0           $self->_start_rule($context, 'ExamplesDefinition');
2946 0           $self->_start_rule($context, 'Examples');
2947 0           $self->_build($context, $token);
2948 0           return 38;
2949             }
2950 0 0         if ($self->match_ScenarioLine($context, $token)) {
2951 0           $self->_end_rule($context, 'Scenario');
2952 0           $self->_end_rule($context, 'ScenarioDefinition');
2953 0           $self->_start_rule($context, 'ScenarioDefinition');
2954 0           $self->_start_rule($context, 'Scenario');
2955 0           $self->_build($context, $token);
2956 0           return 32;
2957             }
2958 0 0         if ($self->match_RuleLine($context, $token)) {
2959 0           $self->_end_rule($context, 'Scenario');
2960 0           $self->_end_rule($context, 'ScenarioDefinition');
2961 0           $self->_end_rule($context, 'Rule');
2962 0           $self->_start_rule($context, 'Rule');
2963 0           $self->_start_rule($context, 'RuleHeader');
2964 0           $self->_build($context, $token);
2965 0           return 23;
2966             }
2967 0 0         if ($self->match_Other($context, $token)) {
2968 0           $self->_start_rule($context, 'Description');
2969 0           $self->_build($context, $token);
2970 0           return 33;
2971             }
2972              
2973 0           $token->detach;
2974              
2975             # Create the appropriate error
2976 0 0         my $error_class = "Gherkin::Exceptions::" . (
2977             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
2978              
2979 0           my @args = (
2980             $token,
2981             ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
2982             "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0",
2983             );
2984              
2985 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
2986              
2987 0           eval {$error_class->throw( @args )};
  0            
2988 0           $self->add_error( $context, $@ );
2989              
2990 0           return 32;
2991             }
2992              
2993             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0
2994             sub match_token_at_33 {
2995 0     0 0   my ( $self, $token, $context ) = @_;
2996 0 0         if ($self->match_EOF($context, $token)) {
2997 0           $self->_end_rule($context, 'Description');
2998 0           $self->_end_rule($context, 'Scenario');
2999 0           $self->_end_rule($context, 'ScenarioDefinition');
3000 0           $self->_end_rule($context, 'Rule');
3001 0           $self->_end_rule($context, 'Feature');
3002 0           $self->_build($context, $token);
3003 0           return 42;
3004             }
3005 0 0         if ($self->match_Comment($context, $token)) {
3006 0           $self->_end_rule($context, 'Description');
3007 0           $self->_build($context, $token);
3008 0           return 34;
3009             }
3010 0 0         if ($self->match_StepLine($context, $token)) {
3011 0           $self->_end_rule($context, 'Description');
3012 0           $self->_start_rule($context, 'Step');
3013 0           $self->_build($context, $token);
3014 0           return 35;
3015             }
3016 0 0         if ($self->match_TagLine($context, $token)) {
3017 0 0         if ($self->lookahead_1($context, $token)) {
3018 0           $self->_end_rule($context, 'Description');
3019 0           $self->_start_rule($context, 'ExamplesDefinition');
3020 0           $self->_start_rule($context, 'Tags');
3021 0           $self->_build($context, $token);
3022 0           return 37;
3023             }
3024             }
3025 0 0         if ($self->match_TagLine($context, $token)) {
3026 0 0         if ($self->lookahead_0($context, $token)) {
3027 0           $self->_end_rule($context, 'Description');
3028 0           $self->_end_rule($context, 'Scenario');
3029 0           $self->_end_rule($context, 'ScenarioDefinition');
3030 0           $self->_start_rule($context, 'ScenarioDefinition');
3031 0           $self->_start_rule($context, 'Tags');
3032 0           $self->_build($context, $token);
3033 0           return 31;
3034             }
3035             }
3036 0 0         if ($self->match_TagLine($context, $token)) {
3037 0           $self->_end_rule($context, 'Description');
3038 0           $self->_end_rule($context, 'Scenario');
3039 0           $self->_end_rule($context, 'ScenarioDefinition');
3040 0           $self->_end_rule($context, 'Rule');
3041 0           $self->_start_rule($context, 'Rule');
3042 0           $self->_start_rule($context, 'RuleHeader');
3043 0           $self->_start_rule($context, 'Tags');
3044 0           $self->_build($context, $token);
3045 0           return 22;
3046             }
3047 0 0         if ($self->match_ExamplesLine($context, $token)) {
3048 0           $self->_end_rule($context, 'Description');
3049 0           $self->_start_rule($context, 'ExamplesDefinition');
3050 0           $self->_start_rule($context, 'Examples');
3051 0           $self->_build($context, $token);
3052 0           return 38;
3053             }
3054 0 0         if ($self->match_ScenarioLine($context, $token)) {
3055 0           $self->_end_rule($context, 'Description');
3056 0           $self->_end_rule($context, 'Scenario');
3057 0           $self->_end_rule($context, 'ScenarioDefinition');
3058 0           $self->_start_rule($context, 'ScenarioDefinition');
3059 0           $self->_start_rule($context, 'Scenario');
3060 0           $self->_build($context, $token);
3061 0           return 32;
3062             }
3063 0 0         if ($self->match_RuleLine($context, $token)) {
3064 0           $self->_end_rule($context, 'Description');
3065 0           $self->_end_rule($context, 'Scenario');
3066 0           $self->_end_rule($context, 'ScenarioDefinition');
3067 0           $self->_end_rule($context, 'Rule');
3068 0           $self->_start_rule($context, 'Rule');
3069 0           $self->_start_rule($context, 'RuleHeader');
3070 0           $self->_build($context, $token);
3071 0           return 23;
3072             }
3073 0 0         if ($self->match_Other($context, $token)) {
3074 0           $self->_build($context, $token);
3075 0           return 33;
3076             }
3077              
3078 0           $token->detach;
3079              
3080             # Create the appropriate error
3081 0 0         my $error_class = "Gherkin::Exceptions::" . (
3082             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3083              
3084 0           my @args = (
3085             $token,
3086             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
3087             "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0",
3088             );
3089              
3090 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3091              
3092 0           eval {$error_class->throw( @args )};
  0            
3093 0           $self->add_error( $context, $@ );
3094              
3095 0           return 33;
3096             }
3097              
3098             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0
3099             sub match_token_at_34 {
3100 0     0 0   my ( $self, $token, $context ) = @_;
3101 0 0         if ($self->match_EOF($context, $token)) {
3102 0           $self->_end_rule($context, 'Scenario');
3103 0           $self->_end_rule($context, 'ScenarioDefinition');
3104 0           $self->_end_rule($context, 'Rule');
3105 0           $self->_end_rule($context, 'Feature');
3106 0           $self->_build($context, $token);
3107 0           return 42;
3108             }
3109 0 0         if ($self->match_Comment($context, $token)) {
3110 0           $self->_build($context, $token);
3111 0           return 34;
3112             }
3113 0 0         if ($self->match_StepLine($context, $token)) {
3114 0           $self->_start_rule($context, 'Step');
3115 0           $self->_build($context, $token);
3116 0           return 35;
3117             }
3118 0 0         if ($self->match_TagLine($context, $token)) {
3119 0 0         if ($self->lookahead_1($context, $token)) {
3120 0           $self->_start_rule($context, 'ExamplesDefinition');
3121 0           $self->_start_rule($context, 'Tags');
3122 0           $self->_build($context, $token);
3123 0           return 37;
3124             }
3125             }
3126 0 0         if ($self->match_TagLine($context, $token)) {
3127 0 0         if ($self->lookahead_0($context, $token)) {
3128 0           $self->_end_rule($context, 'Scenario');
3129 0           $self->_end_rule($context, 'ScenarioDefinition');
3130 0           $self->_start_rule($context, 'ScenarioDefinition');
3131 0           $self->_start_rule($context, 'Tags');
3132 0           $self->_build($context, $token);
3133 0           return 31;
3134             }
3135             }
3136 0 0         if ($self->match_TagLine($context, $token)) {
3137 0           $self->_end_rule($context, 'Scenario');
3138 0           $self->_end_rule($context, 'ScenarioDefinition');
3139 0           $self->_end_rule($context, 'Rule');
3140 0           $self->_start_rule($context, 'Rule');
3141 0           $self->_start_rule($context, 'RuleHeader');
3142 0           $self->_start_rule($context, 'Tags');
3143 0           $self->_build($context, $token);
3144 0           return 22;
3145             }
3146 0 0         if ($self->match_ExamplesLine($context, $token)) {
3147 0           $self->_start_rule($context, 'ExamplesDefinition');
3148 0           $self->_start_rule($context, 'Examples');
3149 0           $self->_build($context, $token);
3150 0           return 38;
3151             }
3152 0 0         if ($self->match_ScenarioLine($context, $token)) {
3153 0           $self->_end_rule($context, 'Scenario');
3154 0           $self->_end_rule($context, 'ScenarioDefinition');
3155 0           $self->_start_rule($context, 'ScenarioDefinition');
3156 0           $self->_start_rule($context, 'Scenario');
3157 0           $self->_build($context, $token);
3158 0           return 32;
3159             }
3160 0 0         if ($self->match_RuleLine($context, $token)) {
3161 0           $self->_end_rule($context, 'Scenario');
3162 0           $self->_end_rule($context, 'ScenarioDefinition');
3163 0           $self->_end_rule($context, 'Rule');
3164 0           $self->_start_rule($context, 'Rule');
3165 0           $self->_start_rule($context, 'RuleHeader');
3166 0           $self->_build($context, $token);
3167 0           return 23;
3168             }
3169 0 0         if ($self->match_Empty($context, $token)) {
3170 0           $self->_build($context, $token);
3171 0           return 34;
3172             }
3173              
3174 0           $token->detach;
3175              
3176             # Create the appropriate error
3177 0 0         my $error_class = "Gherkin::Exceptions::" . (
3178             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3179              
3180 0           my @args = (
3181             $token,
3182             ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
3183             "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0",
3184             );
3185              
3186 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3187              
3188 0           eval {$error_class->throw( @args )};
  0            
3189 0           $self->add_error( $context, $@ );
3190              
3191 0           return 34;
3192             }
3193              
3194             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0
3195             sub match_token_at_35 {
3196 0     0 0   my ( $self, $token, $context ) = @_;
3197 0 0         if ($self->match_EOF($context, $token)) {
3198 0           $self->_end_rule($context, 'Step');
3199 0           $self->_end_rule($context, 'Scenario');
3200 0           $self->_end_rule($context, 'ScenarioDefinition');
3201 0           $self->_end_rule($context, 'Rule');
3202 0           $self->_end_rule($context, 'Feature');
3203 0           $self->_build($context, $token);
3204 0           return 42;
3205             }
3206 0 0         if ($self->match_TableRow($context, $token)) {
3207 0           $self->_start_rule($context, 'DataTable');
3208 0           $self->_build($context, $token);
3209 0           return 36;
3210             }
3211 0 0         if ($self->match_DocStringSeparator($context, $token)) {
3212 0           $self->_start_rule($context, 'DocString');
3213 0           $self->_build($context, $token);
3214 0           return 43;
3215             }
3216 0 0         if ($self->match_StepLine($context, $token)) {
3217 0           $self->_end_rule($context, 'Step');
3218 0           $self->_start_rule($context, 'Step');
3219 0           $self->_build($context, $token);
3220 0           return 35;
3221             }
3222 0 0         if ($self->match_TagLine($context, $token)) {
3223 0 0         if ($self->lookahead_1($context, $token)) {
3224 0           $self->_end_rule($context, 'Step');
3225 0           $self->_start_rule($context, 'ExamplesDefinition');
3226 0           $self->_start_rule($context, 'Tags');
3227 0           $self->_build($context, $token);
3228 0           return 37;
3229             }
3230             }
3231 0 0         if ($self->match_TagLine($context, $token)) {
3232 0 0         if ($self->lookahead_0($context, $token)) {
3233 0           $self->_end_rule($context, 'Step');
3234 0           $self->_end_rule($context, 'Scenario');
3235 0           $self->_end_rule($context, 'ScenarioDefinition');
3236 0           $self->_start_rule($context, 'ScenarioDefinition');
3237 0           $self->_start_rule($context, 'Tags');
3238 0           $self->_build($context, $token);
3239 0           return 31;
3240             }
3241             }
3242 0 0         if ($self->match_TagLine($context, $token)) {
3243 0           $self->_end_rule($context, 'Step');
3244 0           $self->_end_rule($context, 'Scenario');
3245 0           $self->_end_rule($context, 'ScenarioDefinition');
3246 0           $self->_end_rule($context, 'Rule');
3247 0           $self->_start_rule($context, 'Rule');
3248 0           $self->_start_rule($context, 'RuleHeader');
3249 0           $self->_start_rule($context, 'Tags');
3250 0           $self->_build($context, $token);
3251 0           return 22;
3252             }
3253 0 0         if ($self->match_ExamplesLine($context, $token)) {
3254 0           $self->_end_rule($context, 'Step');
3255 0           $self->_start_rule($context, 'ExamplesDefinition');
3256 0           $self->_start_rule($context, 'Examples');
3257 0           $self->_build($context, $token);
3258 0           return 38;
3259             }
3260 0 0         if ($self->match_ScenarioLine($context, $token)) {
3261 0           $self->_end_rule($context, 'Step');
3262 0           $self->_end_rule($context, 'Scenario');
3263 0           $self->_end_rule($context, 'ScenarioDefinition');
3264 0           $self->_start_rule($context, 'ScenarioDefinition');
3265 0           $self->_start_rule($context, 'Scenario');
3266 0           $self->_build($context, $token);
3267 0           return 32;
3268             }
3269 0 0         if ($self->match_RuleLine($context, $token)) {
3270 0           $self->_end_rule($context, 'Step');
3271 0           $self->_end_rule($context, 'Scenario');
3272 0           $self->_end_rule($context, 'ScenarioDefinition');
3273 0           $self->_end_rule($context, 'Rule');
3274 0           $self->_start_rule($context, 'Rule');
3275 0           $self->_start_rule($context, 'RuleHeader');
3276 0           $self->_build($context, $token);
3277 0           return 23;
3278             }
3279 0 0         if ($self->match_Comment($context, $token)) {
3280 0           $self->_build($context, $token);
3281 0           return 35;
3282             }
3283 0 0         if ($self->match_Empty($context, $token)) {
3284 0           $self->_build($context, $token);
3285 0           return 35;
3286             }
3287              
3288 0           $token->detach;
3289              
3290             # Create the appropriate error
3291 0 0         my $error_class = "Gherkin::Exceptions::" . (
3292             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3293              
3294 0           my @args = (
3295             $token,
3296             ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
3297             "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0",
3298             );
3299              
3300 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3301              
3302 0           eval {$error_class->throw( @args )};
  0            
3303 0           $self->add_error( $context, $@ );
3304              
3305 0           return 35;
3306             }
3307              
3308             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
3309             sub match_token_at_36 {
3310 0     0 0   my ( $self, $token, $context ) = @_;
3311 0 0         if ($self->match_EOF($context, $token)) {
3312 0           $self->_end_rule($context, 'DataTable');
3313 0           $self->_end_rule($context, 'Step');
3314 0           $self->_end_rule($context, 'Scenario');
3315 0           $self->_end_rule($context, 'ScenarioDefinition');
3316 0           $self->_end_rule($context, 'Rule');
3317 0           $self->_end_rule($context, 'Feature');
3318 0           $self->_build($context, $token);
3319 0           return 42;
3320             }
3321 0 0         if ($self->match_TableRow($context, $token)) {
3322 0           $self->_build($context, $token);
3323 0           return 36;
3324             }
3325 0 0         if ($self->match_StepLine($context, $token)) {
3326 0           $self->_end_rule($context, 'DataTable');
3327 0           $self->_end_rule($context, 'Step');
3328 0           $self->_start_rule($context, 'Step');
3329 0           $self->_build($context, $token);
3330 0           return 35;
3331             }
3332 0 0         if ($self->match_TagLine($context, $token)) {
3333 0 0         if ($self->lookahead_1($context, $token)) {
3334 0           $self->_end_rule($context, 'DataTable');
3335 0           $self->_end_rule($context, 'Step');
3336 0           $self->_start_rule($context, 'ExamplesDefinition');
3337 0           $self->_start_rule($context, 'Tags');
3338 0           $self->_build($context, $token);
3339 0           return 37;
3340             }
3341             }
3342 0 0         if ($self->match_TagLine($context, $token)) {
3343 0 0         if ($self->lookahead_0($context, $token)) {
3344 0           $self->_end_rule($context, 'DataTable');
3345 0           $self->_end_rule($context, 'Step');
3346 0           $self->_end_rule($context, 'Scenario');
3347 0           $self->_end_rule($context, 'ScenarioDefinition');
3348 0           $self->_start_rule($context, 'ScenarioDefinition');
3349 0           $self->_start_rule($context, 'Tags');
3350 0           $self->_build($context, $token);
3351 0           return 31;
3352             }
3353             }
3354 0 0         if ($self->match_TagLine($context, $token)) {
3355 0           $self->_end_rule($context, 'DataTable');
3356 0           $self->_end_rule($context, 'Step');
3357 0           $self->_end_rule($context, 'Scenario');
3358 0           $self->_end_rule($context, 'ScenarioDefinition');
3359 0           $self->_end_rule($context, 'Rule');
3360 0           $self->_start_rule($context, 'Rule');
3361 0           $self->_start_rule($context, 'RuleHeader');
3362 0           $self->_start_rule($context, 'Tags');
3363 0           $self->_build($context, $token);
3364 0           return 22;
3365             }
3366 0 0         if ($self->match_ExamplesLine($context, $token)) {
3367 0           $self->_end_rule($context, 'DataTable');
3368 0           $self->_end_rule($context, 'Step');
3369 0           $self->_start_rule($context, 'ExamplesDefinition');
3370 0           $self->_start_rule($context, 'Examples');
3371 0           $self->_build($context, $token);
3372 0           return 38;
3373             }
3374 0 0         if ($self->match_ScenarioLine($context, $token)) {
3375 0           $self->_end_rule($context, 'DataTable');
3376 0           $self->_end_rule($context, 'Step');
3377 0           $self->_end_rule($context, 'Scenario');
3378 0           $self->_end_rule($context, 'ScenarioDefinition');
3379 0           $self->_start_rule($context, 'ScenarioDefinition');
3380 0           $self->_start_rule($context, 'Scenario');
3381 0           $self->_build($context, $token);
3382 0           return 32;
3383             }
3384 0 0         if ($self->match_RuleLine($context, $token)) {
3385 0           $self->_end_rule($context, 'DataTable');
3386 0           $self->_end_rule($context, 'Step');
3387 0           $self->_end_rule($context, 'Scenario');
3388 0           $self->_end_rule($context, 'ScenarioDefinition');
3389 0           $self->_end_rule($context, 'Rule');
3390 0           $self->_start_rule($context, 'Rule');
3391 0           $self->_start_rule($context, 'RuleHeader');
3392 0           $self->_build($context, $token);
3393 0           return 23;
3394             }
3395 0 0         if ($self->match_Comment($context, $token)) {
3396 0           $self->_build($context, $token);
3397 0           return 36;
3398             }
3399 0 0         if ($self->match_Empty($context, $token)) {
3400 0           $self->_build($context, $token);
3401 0           return 36;
3402             }
3403              
3404 0           $token->detach;
3405              
3406             # Create the appropriate error
3407 0 0         my $error_class = "Gherkin::Exceptions::" . (
3408             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3409              
3410 0           my @args = (
3411             $token,
3412             ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
3413             "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0",
3414             );
3415              
3416 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3417              
3418 0           eval {$error_class->throw( @args )};
  0            
3419 0           $self->add_error( $context, $@ );
3420              
3421 0           return 36;
3422             }
3423              
3424             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0
3425             sub match_token_at_37 {
3426 0     0 0   my ( $self, $token, $context ) = @_;
3427 0 0         if ($self->match_TagLine($context, $token)) {
3428 0           $self->_build($context, $token);
3429 0           return 37;
3430             }
3431 0 0         if ($self->match_ExamplesLine($context, $token)) {
3432 0           $self->_end_rule($context, 'Tags');
3433 0           $self->_start_rule($context, 'Examples');
3434 0           $self->_build($context, $token);
3435 0           return 38;
3436             }
3437 0 0         if ($self->match_Comment($context, $token)) {
3438 0           $self->_build($context, $token);
3439 0           return 37;
3440             }
3441 0 0         if ($self->match_Empty($context, $token)) {
3442 0           $self->_build($context, $token);
3443 0           return 37;
3444             }
3445              
3446 0           $token->detach;
3447              
3448             # Create the appropriate error
3449 0 0         my $error_class = "Gherkin::Exceptions::" . (
3450             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3451              
3452 0           my @args = (
3453             $token,
3454             ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"], #"
3455             "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0",
3456             );
3457              
3458 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3459              
3460 0           eval {$error_class->throw( @args )};
  0            
3461 0           $self->add_error( $context, $@ );
3462              
3463 0           return 37;
3464             }
3465              
3466             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0
3467             sub match_token_at_38 {
3468 0     0 0   my ( $self, $token, $context ) = @_;
3469 0 0         if ($self->match_EOF($context, $token)) {
3470 0           $self->_end_rule($context, 'Examples');
3471 0           $self->_end_rule($context, 'ExamplesDefinition');
3472 0           $self->_end_rule($context, 'Scenario');
3473 0           $self->_end_rule($context, 'ScenarioDefinition');
3474 0           $self->_end_rule($context, 'Rule');
3475 0           $self->_end_rule($context, 'Feature');
3476 0           $self->_build($context, $token);
3477 0           return 42;
3478             }
3479 0 0         if ($self->match_Empty($context, $token)) {
3480 0           $self->_build($context, $token);
3481 0           return 38;
3482             }
3483 0 0         if ($self->match_Comment($context, $token)) {
3484 0           $self->_build($context, $token);
3485 0           return 40;
3486             }
3487 0 0         if ($self->match_TableRow($context, $token)) {
3488 0           $self->_start_rule($context, 'ExamplesTable');
3489 0           $self->_build($context, $token);
3490 0           return 41;
3491             }
3492 0 0         if ($self->match_TagLine($context, $token)) {
3493 0 0         if ($self->lookahead_1($context, $token)) {
3494 0           $self->_end_rule($context, 'Examples');
3495 0           $self->_end_rule($context, 'ExamplesDefinition');
3496 0           $self->_start_rule($context, 'ExamplesDefinition');
3497 0           $self->_start_rule($context, 'Tags');
3498 0           $self->_build($context, $token);
3499 0           return 37;
3500             }
3501             }
3502 0 0         if ($self->match_TagLine($context, $token)) {
3503 0 0         if ($self->lookahead_0($context, $token)) {
3504 0           $self->_end_rule($context, 'Examples');
3505 0           $self->_end_rule($context, 'ExamplesDefinition');
3506 0           $self->_end_rule($context, 'Scenario');
3507 0           $self->_end_rule($context, 'ScenarioDefinition');
3508 0           $self->_start_rule($context, 'ScenarioDefinition');
3509 0           $self->_start_rule($context, 'Tags');
3510 0           $self->_build($context, $token);
3511 0           return 31;
3512             }
3513             }
3514 0 0         if ($self->match_TagLine($context, $token)) {
3515 0           $self->_end_rule($context, 'Examples');
3516 0           $self->_end_rule($context, 'ExamplesDefinition');
3517 0           $self->_end_rule($context, 'Scenario');
3518 0           $self->_end_rule($context, 'ScenarioDefinition');
3519 0           $self->_end_rule($context, 'Rule');
3520 0           $self->_start_rule($context, 'Rule');
3521 0           $self->_start_rule($context, 'RuleHeader');
3522 0           $self->_start_rule($context, 'Tags');
3523 0           $self->_build($context, $token);
3524 0           return 22;
3525             }
3526 0 0         if ($self->match_ExamplesLine($context, $token)) {
3527 0           $self->_end_rule($context, 'Examples');
3528 0           $self->_end_rule($context, 'ExamplesDefinition');
3529 0           $self->_start_rule($context, 'ExamplesDefinition');
3530 0           $self->_start_rule($context, 'Examples');
3531 0           $self->_build($context, $token);
3532 0           return 38;
3533             }
3534 0 0         if ($self->match_ScenarioLine($context, $token)) {
3535 0           $self->_end_rule($context, 'Examples');
3536 0           $self->_end_rule($context, 'ExamplesDefinition');
3537 0           $self->_end_rule($context, 'Scenario');
3538 0           $self->_end_rule($context, 'ScenarioDefinition');
3539 0           $self->_start_rule($context, 'ScenarioDefinition');
3540 0           $self->_start_rule($context, 'Scenario');
3541 0           $self->_build($context, $token);
3542 0           return 32;
3543             }
3544 0 0         if ($self->match_RuleLine($context, $token)) {
3545 0           $self->_end_rule($context, 'Examples');
3546 0           $self->_end_rule($context, 'ExamplesDefinition');
3547 0           $self->_end_rule($context, 'Scenario');
3548 0           $self->_end_rule($context, 'ScenarioDefinition');
3549 0           $self->_end_rule($context, 'Rule');
3550 0           $self->_start_rule($context, 'Rule');
3551 0           $self->_start_rule($context, 'RuleHeader');
3552 0           $self->_build($context, $token);
3553 0           return 23;
3554             }
3555 0 0         if ($self->match_Other($context, $token)) {
3556 0           $self->_start_rule($context, 'Description');
3557 0           $self->_build($context, $token);
3558 0           return 39;
3559             }
3560              
3561 0           $token->detach;
3562              
3563             # Create the appropriate error
3564 0 0         my $error_class = "Gherkin::Exceptions::" . (
3565             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3566              
3567 0           my @args = (
3568             $token,
3569             ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
3570             "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0",
3571             );
3572              
3573 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3574              
3575 0           eval {$error_class->throw( @args )};
  0            
3576 0           $self->add_error( $context, $@ );
3577              
3578 0           return 38;
3579             }
3580              
3581             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0
3582             sub match_token_at_39 {
3583 0     0 0   my ( $self, $token, $context ) = @_;
3584 0 0         if ($self->match_EOF($context, $token)) {
3585 0           $self->_end_rule($context, 'Description');
3586 0           $self->_end_rule($context, 'Examples');
3587 0           $self->_end_rule($context, 'ExamplesDefinition');
3588 0           $self->_end_rule($context, 'Scenario');
3589 0           $self->_end_rule($context, 'ScenarioDefinition');
3590 0           $self->_end_rule($context, 'Rule');
3591 0           $self->_end_rule($context, 'Feature');
3592 0           $self->_build($context, $token);
3593 0           return 42;
3594             }
3595 0 0         if ($self->match_Comment($context, $token)) {
3596 0           $self->_end_rule($context, 'Description');
3597 0           $self->_build($context, $token);
3598 0           return 40;
3599             }
3600 0 0         if ($self->match_TableRow($context, $token)) {
3601 0           $self->_end_rule($context, 'Description');
3602 0           $self->_start_rule($context, 'ExamplesTable');
3603 0           $self->_build($context, $token);
3604 0           return 41;
3605             }
3606 0 0         if ($self->match_TagLine($context, $token)) {
3607 0 0         if ($self->lookahead_1($context, $token)) {
3608 0           $self->_end_rule($context, 'Description');
3609 0           $self->_end_rule($context, 'Examples');
3610 0           $self->_end_rule($context, 'ExamplesDefinition');
3611 0           $self->_start_rule($context, 'ExamplesDefinition');
3612 0           $self->_start_rule($context, 'Tags');
3613 0           $self->_build($context, $token);
3614 0           return 37;
3615             }
3616             }
3617 0 0         if ($self->match_TagLine($context, $token)) {
3618 0 0         if ($self->lookahead_0($context, $token)) {
3619 0           $self->_end_rule($context, 'Description');
3620 0           $self->_end_rule($context, 'Examples');
3621 0           $self->_end_rule($context, 'ExamplesDefinition');
3622 0           $self->_end_rule($context, 'Scenario');
3623 0           $self->_end_rule($context, 'ScenarioDefinition');
3624 0           $self->_start_rule($context, 'ScenarioDefinition');
3625 0           $self->_start_rule($context, 'Tags');
3626 0           $self->_build($context, $token);
3627 0           return 31;
3628             }
3629             }
3630 0 0         if ($self->match_TagLine($context, $token)) {
3631 0           $self->_end_rule($context, 'Description');
3632 0           $self->_end_rule($context, 'Examples');
3633 0           $self->_end_rule($context, 'ExamplesDefinition');
3634 0           $self->_end_rule($context, 'Scenario');
3635 0           $self->_end_rule($context, 'ScenarioDefinition');
3636 0           $self->_end_rule($context, 'Rule');
3637 0           $self->_start_rule($context, 'Rule');
3638 0           $self->_start_rule($context, 'RuleHeader');
3639 0           $self->_start_rule($context, 'Tags');
3640 0           $self->_build($context, $token);
3641 0           return 22;
3642             }
3643 0 0         if ($self->match_ExamplesLine($context, $token)) {
3644 0           $self->_end_rule($context, 'Description');
3645 0           $self->_end_rule($context, 'Examples');
3646 0           $self->_end_rule($context, 'ExamplesDefinition');
3647 0           $self->_start_rule($context, 'ExamplesDefinition');
3648 0           $self->_start_rule($context, 'Examples');
3649 0           $self->_build($context, $token);
3650 0           return 38;
3651             }
3652 0 0         if ($self->match_ScenarioLine($context, $token)) {
3653 0           $self->_end_rule($context, 'Description');
3654 0           $self->_end_rule($context, 'Examples');
3655 0           $self->_end_rule($context, 'ExamplesDefinition');
3656 0           $self->_end_rule($context, 'Scenario');
3657 0           $self->_end_rule($context, 'ScenarioDefinition');
3658 0           $self->_start_rule($context, 'ScenarioDefinition');
3659 0           $self->_start_rule($context, 'Scenario');
3660 0           $self->_build($context, $token);
3661 0           return 32;
3662             }
3663 0 0         if ($self->match_RuleLine($context, $token)) {
3664 0           $self->_end_rule($context, 'Description');
3665 0           $self->_end_rule($context, 'Examples');
3666 0           $self->_end_rule($context, 'ExamplesDefinition');
3667 0           $self->_end_rule($context, 'Scenario');
3668 0           $self->_end_rule($context, 'ScenarioDefinition');
3669 0           $self->_end_rule($context, 'Rule');
3670 0           $self->_start_rule($context, 'Rule');
3671 0           $self->_start_rule($context, 'RuleHeader');
3672 0           $self->_build($context, $token);
3673 0           return 23;
3674             }
3675 0 0         if ($self->match_Other($context, $token)) {
3676 0           $self->_build($context, $token);
3677 0           return 39;
3678             }
3679              
3680 0           $token->detach;
3681              
3682             # Create the appropriate error
3683 0 0         my $error_class = "Gherkin::Exceptions::" . (
3684             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3685              
3686 0           my @args = (
3687             $token,
3688             ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], #"
3689             "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0",
3690             );
3691              
3692 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3693              
3694 0           eval {$error_class->throw( @args )};
  0            
3695 0           $self->add_error( $context, $@ );
3696              
3697 0           return 39;
3698             }
3699              
3700             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0
3701             sub match_token_at_40 {
3702 0     0 0   my ( $self, $token, $context ) = @_;
3703 0 0         if ($self->match_EOF($context, $token)) {
3704 0           $self->_end_rule($context, 'Examples');
3705 0           $self->_end_rule($context, 'ExamplesDefinition');
3706 0           $self->_end_rule($context, 'Scenario');
3707 0           $self->_end_rule($context, 'ScenarioDefinition');
3708 0           $self->_end_rule($context, 'Rule');
3709 0           $self->_end_rule($context, 'Feature');
3710 0           $self->_build($context, $token);
3711 0           return 42;
3712             }
3713 0 0         if ($self->match_Comment($context, $token)) {
3714 0           $self->_build($context, $token);
3715 0           return 40;
3716             }
3717 0 0         if ($self->match_TableRow($context, $token)) {
3718 0           $self->_start_rule($context, 'ExamplesTable');
3719 0           $self->_build($context, $token);
3720 0           return 41;
3721             }
3722 0 0         if ($self->match_TagLine($context, $token)) {
3723 0 0         if ($self->lookahead_1($context, $token)) {
3724 0           $self->_end_rule($context, 'Examples');
3725 0           $self->_end_rule($context, 'ExamplesDefinition');
3726 0           $self->_start_rule($context, 'ExamplesDefinition');
3727 0           $self->_start_rule($context, 'Tags');
3728 0           $self->_build($context, $token);
3729 0           return 37;
3730             }
3731             }
3732 0 0         if ($self->match_TagLine($context, $token)) {
3733 0 0         if ($self->lookahead_0($context, $token)) {
3734 0           $self->_end_rule($context, 'Examples');
3735 0           $self->_end_rule($context, 'ExamplesDefinition');
3736 0           $self->_end_rule($context, 'Scenario');
3737 0           $self->_end_rule($context, 'ScenarioDefinition');
3738 0           $self->_start_rule($context, 'ScenarioDefinition');
3739 0           $self->_start_rule($context, 'Tags');
3740 0           $self->_build($context, $token);
3741 0           return 31;
3742             }
3743             }
3744 0 0         if ($self->match_TagLine($context, $token)) {
3745 0           $self->_end_rule($context, 'Examples');
3746 0           $self->_end_rule($context, 'ExamplesDefinition');
3747 0           $self->_end_rule($context, 'Scenario');
3748 0           $self->_end_rule($context, 'ScenarioDefinition');
3749 0           $self->_end_rule($context, 'Rule');
3750 0           $self->_start_rule($context, 'Rule');
3751 0           $self->_start_rule($context, 'RuleHeader');
3752 0           $self->_start_rule($context, 'Tags');
3753 0           $self->_build($context, $token);
3754 0           return 22;
3755             }
3756 0 0         if ($self->match_ExamplesLine($context, $token)) {
3757 0           $self->_end_rule($context, 'Examples');
3758 0           $self->_end_rule($context, 'ExamplesDefinition');
3759 0           $self->_start_rule($context, 'ExamplesDefinition');
3760 0           $self->_start_rule($context, 'Examples');
3761 0           $self->_build($context, $token);
3762 0           return 38;
3763             }
3764 0 0         if ($self->match_ScenarioLine($context, $token)) {
3765 0           $self->_end_rule($context, 'Examples');
3766 0           $self->_end_rule($context, 'ExamplesDefinition');
3767 0           $self->_end_rule($context, 'Scenario');
3768 0           $self->_end_rule($context, 'ScenarioDefinition');
3769 0           $self->_start_rule($context, 'ScenarioDefinition');
3770 0           $self->_start_rule($context, 'Scenario');
3771 0           $self->_build($context, $token);
3772 0           return 32;
3773             }
3774 0 0         if ($self->match_RuleLine($context, $token)) {
3775 0           $self->_end_rule($context, 'Examples');
3776 0           $self->_end_rule($context, 'ExamplesDefinition');
3777 0           $self->_end_rule($context, 'Scenario');
3778 0           $self->_end_rule($context, 'ScenarioDefinition');
3779 0           $self->_end_rule($context, 'Rule');
3780 0           $self->_start_rule($context, 'Rule');
3781 0           $self->_start_rule($context, 'RuleHeader');
3782 0           $self->_build($context, $token);
3783 0           return 23;
3784             }
3785 0 0         if ($self->match_Empty($context, $token)) {
3786 0           $self->_build($context, $token);
3787 0           return 40;
3788             }
3789              
3790 0           $token->detach;
3791              
3792             # Create the appropriate error
3793 0 0         my $error_class = "Gherkin::Exceptions::" . (
3794             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3795              
3796 0           my @args = (
3797             $token,
3798             ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], #"
3799             "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0",
3800             );
3801              
3802 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3803              
3804 0           eval {$error_class->throw( @args )};
  0            
3805 0           $self->add_error( $context, $@ );
3806              
3807 0           return 40;
3808             }
3809              
3810             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0
3811             sub match_token_at_41 {
3812 0     0 0   my ( $self, $token, $context ) = @_;
3813 0 0         if ($self->match_EOF($context, $token)) {
3814 0           $self->_end_rule($context, 'ExamplesTable');
3815 0           $self->_end_rule($context, 'Examples');
3816 0           $self->_end_rule($context, 'ExamplesDefinition');
3817 0           $self->_end_rule($context, 'Scenario');
3818 0           $self->_end_rule($context, 'ScenarioDefinition');
3819 0           $self->_end_rule($context, 'Rule');
3820 0           $self->_end_rule($context, 'Feature');
3821 0           $self->_build($context, $token);
3822 0           return 42;
3823             }
3824 0 0         if ($self->match_TableRow($context, $token)) {
3825 0           $self->_build($context, $token);
3826 0           return 41;
3827             }
3828 0 0         if ($self->match_TagLine($context, $token)) {
3829 0 0         if ($self->lookahead_1($context, $token)) {
3830 0           $self->_end_rule($context, 'ExamplesTable');
3831 0           $self->_end_rule($context, 'Examples');
3832 0           $self->_end_rule($context, 'ExamplesDefinition');
3833 0           $self->_start_rule($context, 'ExamplesDefinition');
3834 0           $self->_start_rule($context, 'Tags');
3835 0           $self->_build($context, $token);
3836 0           return 37;
3837             }
3838             }
3839 0 0         if ($self->match_TagLine($context, $token)) {
3840 0 0         if ($self->lookahead_0($context, $token)) {
3841 0           $self->_end_rule($context, 'ExamplesTable');
3842 0           $self->_end_rule($context, 'Examples');
3843 0           $self->_end_rule($context, 'ExamplesDefinition');
3844 0           $self->_end_rule($context, 'Scenario');
3845 0           $self->_end_rule($context, 'ScenarioDefinition');
3846 0           $self->_start_rule($context, 'ScenarioDefinition');
3847 0           $self->_start_rule($context, 'Tags');
3848 0           $self->_build($context, $token);
3849 0           return 31;
3850             }
3851             }
3852 0 0         if ($self->match_TagLine($context, $token)) {
3853 0           $self->_end_rule($context, 'ExamplesTable');
3854 0           $self->_end_rule($context, 'Examples');
3855 0           $self->_end_rule($context, 'ExamplesDefinition');
3856 0           $self->_end_rule($context, 'Scenario');
3857 0           $self->_end_rule($context, 'ScenarioDefinition');
3858 0           $self->_end_rule($context, 'Rule');
3859 0           $self->_start_rule($context, 'Rule');
3860 0           $self->_start_rule($context, 'RuleHeader');
3861 0           $self->_start_rule($context, 'Tags');
3862 0           $self->_build($context, $token);
3863 0           return 22;
3864             }
3865 0 0         if ($self->match_ExamplesLine($context, $token)) {
3866 0           $self->_end_rule($context, 'ExamplesTable');
3867 0           $self->_end_rule($context, 'Examples');
3868 0           $self->_end_rule($context, 'ExamplesDefinition');
3869 0           $self->_start_rule($context, 'ExamplesDefinition');
3870 0           $self->_start_rule($context, 'Examples');
3871 0           $self->_build($context, $token);
3872 0           return 38;
3873             }
3874 0 0         if ($self->match_ScenarioLine($context, $token)) {
3875 0           $self->_end_rule($context, 'ExamplesTable');
3876 0           $self->_end_rule($context, 'Examples');
3877 0           $self->_end_rule($context, 'ExamplesDefinition');
3878 0           $self->_end_rule($context, 'Scenario');
3879 0           $self->_end_rule($context, 'ScenarioDefinition');
3880 0           $self->_start_rule($context, 'ScenarioDefinition');
3881 0           $self->_start_rule($context, 'Scenario');
3882 0           $self->_build($context, $token);
3883 0           return 32;
3884             }
3885 0 0         if ($self->match_RuleLine($context, $token)) {
3886 0           $self->_end_rule($context, 'ExamplesTable');
3887 0           $self->_end_rule($context, 'Examples');
3888 0           $self->_end_rule($context, 'ExamplesDefinition');
3889 0           $self->_end_rule($context, 'Scenario');
3890 0           $self->_end_rule($context, 'ScenarioDefinition');
3891 0           $self->_end_rule($context, 'Rule');
3892 0           $self->_start_rule($context, 'Rule');
3893 0           $self->_start_rule($context, 'RuleHeader');
3894 0           $self->_build($context, $token);
3895 0           return 23;
3896             }
3897 0 0         if ($self->match_Comment($context, $token)) {
3898 0           $self->_build($context, $token);
3899 0           return 41;
3900             }
3901 0 0         if ($self->match_Empty($context, $token)) {
3902 0           $self->_build($context, $token);
3903 0           return 41;
3904             }
3905              
3906 0           $token->detach;
3907              
3908             # Create the appropriate error
3909 0 0         my $error_class = "Gherkin::Exceptions::" . (
3910             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3911              
3912 0           my @args = (
3913             $token,
3914             ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
3915             "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0",
3916             );
3917              
3918 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3919              
3920 0           eval {$error_class->throw( @args )};
  0            
3921 0           $self->add_error( $context, $@ );
3922              
3923 0           return 41;
3924             }
3925              
3926             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
3927             sub match_token_at_43 {
3928 0     0 0   my ( $self, $token, $context ) = @_;
3929 0 0         if ($self->match_DocStringSeparator($context, $token)) {
3930 0           $self->_build($context, $token);
3931 0           return 44;
3932             }
3933 0 0         if ($self->match_Other($context, $token)) {
3934 0           $self->_build($context, $token);
3935 0           return 43;
3936             }
3937              
3938 0           $token->detach;
3939              
3940             # Create the appropriate error
3941 0 0         my $error_class = "Gherkin::Exceptions::" . (
3942             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
3943              
3944 0           my @args = (
3945             $token,
3946             ["#DocStringSeparator", "#Other"], #"
3947             "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0",
3948             );
3949              
3950 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
3951              
3952 0           eval {$error_class->throw( @args )};
  0            
3953 0           $self->add_error( $context, $@ );
3954              
3955 0           return 43;
3956             }
3957              
3958             # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
3959             sub match_token_at_44 {
3960 0     0 0   my ( $self, $token, $context ) = @_;
3961 0 0         if ($self->match_EOF($context, $token)) {
3962 0           $self->_end_rule($context, 'DocString');
3963 0           $self->_end_rule($context, 'Step');
3964 0           $self->_end_rule($context, 'Scenario');
3965 0           $self->_end_rule($context, 'ScenarioDefinition');
3966 0           $self->_end_rule($context, 'Rule');
3967 0           $self->_end_rule($context, 'Feature');
3968 0           $self->_build($context, $token);
3969 0           return 42;
3970             }
3971 0 0         if ($self->match_StepLine($context, $token)) {
3972 0           $self->_end_rule($context, 'DocString');
3973 0           $self->_end_rule($context, 'Step');
3974 0           $self->_start_rule($context, 'Step');
3975 0           $self->_build($context, $token);
3976 0           return 35;
3977             }
3978 0 0         if ($self->match_TagLine($context, $token)) {
3979 0 0         if ($self->lookahead_1($context, $token)) {
3980 0           $self->_end_rule($context, 'DocString');
3981 0           $self->_end_rule($context, 'Step');
3982 0           $self->_start_rule($context, 'ExamplesDefinition');
3983 0           $self->_start_rule($context, 'Tags');
3984 0           $self->_build($context, $token);
3985 0           return 37;
3986             }
3987             }
3988 0 0         if ($self->match_TagLine($context, $token)) {
3989 0 0         if ($self->lookahead_0($context, $token)) {
3990 0           $self->_end_rule($context, 'DocString');
3991 0           $self->_end_rule($context, 'Step');
3992 0           $self->_end_rule($context, 'Scenario');
3993 0           $self->_end_rule($context, 'ScenarioDefinition');
3994 0           $self->_start_rule($context, 'ScenarioDefinition');
3995 0           $self->_start_rule($context, 'Tags');
3996 0           $self->_build($context, $token);
3997 0           return 31;
3998             }
3999             }
4000 0 0         if ($self->match_TagLine($context, $token)) {
4001 0           $self->_end_rule($context, 'DocString');
4002 0           $self->_end_rule($context, 'Step');
4003 0           $self->_end_rule($context, 'Scenario');
4004 0           $self->_end_rule($context, 'ScenarioDefinition');
4005 0           $self->_end_rule($context, 'Rule');
4006 0           $self->_start_rule($context, 'Rule');
4007 0           $self->_start_rule($context, 'RuleHeader');
4008 0           $self->_start_rule($context, 'Tags');
4009 0           $self->_build($context, $token);
4010 0           return 22;
4011             }
4012 0 0         if ($self->match_ExamplesLine($context, $token)) {
4013 0           $self->_end_rule($context, 'DocString');
4014 0           $self->_end_rule($context, 'Step');
4015 0           $self->_start_rule($context, 'ExamplesDefinition');
4016 0           $self->_start_rule($context, 'Examples');
4017 0           $self->_build($context, $token);
4018 0           return 38;
4019             }
4020 0 0         if ($self->match_ScenarioLine($context, $token)) {
4021 0           $self->_end_rule($context, 'DocString');
4022 0           $self->_end_rule($context, 'Step');
4023 0           $self->_end_rule($context, 'Scenario');
4024 0           $self->_end_rule($context, 'ScenarioDefinition');
4025 0           $self->_start_rule($context, 'ScenarioDefinition');
4026 0           $self->_start_rule($context, 'Scenario');
4027 0           $self->_build($context, $token);
4028 0           return 32;
4029             }
4030 0 0         if ($self->match_RuleLine($context, $token)) {
4031 0           $self->_end_rule($context, 'DocString');
4032 0           $self->_end_rule($context, 'Step');
4033 0           $self->_end_rule($context, 'Scenario');
4034 0           $self->_end_rule($context, 'ScenarioDefinition');
4035 0           $self->_end_rule($context, 'Rule');
4036 0           $self->_start_rule($context, 'Rule');
4037 0           $self->_start_rule($context, 'RuleHeader');
4038 0           $self->_build($context, $token);
4039 0           return 23;
4040             }
4041 0 0         if ($self->match_Comment($context, $token)) {
4042 0           $self->_build($context, $token);
4043 0           return 44;
4044             }
4045 0 0         if ($self->match_Empty($context, $token)) {
4046 0           $self->_build($context, $token);
4047 0           return 44;
4048             }
4049              
4050 0           $token->detach;
4051              
4052             # Create the appropriate error
4053 0 0         my $error_class = "Gherkin::Exceptions::" . (
4054             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4055              
4056 0           my @args = (
4057             $token,
4058             ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
4059             "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0",
4060             );
4061              
4062 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4063              
4064 0           eval {$error_class->throw( @args )};
  0            
4065 0           $self->add_error( $context, $@ );
4066              
4067 0           return 44;
4068             }
4069              
4070             # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
4071             sub match_token_at_45 {
4072 0     0 0   my ( $self, $token, $context ) = @_;
4073 0 0         if ($self->match_DocStringSeparator($context, $token)) {
4074 0           $self->_build($context, $token);
4075 0           return 46;
4076             }
4077 0 0         if ($self->match_Other($context, $token)) {
4078 0           $self->_build($context, $token);
4079 0           return 45;
4080             }
4081              
4082 0           $token->detach;
4083              
4084             # Create the appropriate error
4085 0 0         my $error_class = "Gherkin::Exceptions::" . (
4086             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4087              
4088 0           my @args = (
4089             $token,
4090             ["#DocStringSeparator", "#Other"], #"
4091             "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0",
4092             );
4093              
4094 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4095              
4096 0           eval {$error_class->throw( @args )};
  0            
4097 0           $self->add_error( $context, $@ );
4098              
4099 0           return 45;
4100             }
4101              
4102             # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
4103             sub match_token_at_46 {
4104 0     0 0   my ( $self, $token, $context ) = @_;
4105 0 0         if ($self->match_EOF($context, $token)) {
4106 0           $self->_end_rule($context, 'DocString');
4107 0           $self->_end_rule($context, 'Step');
4108 0           $self->_end_rule($context, 'Background');
4109 0           $self->_end_rule($context, 'Rule');
4110 0           $self->_end_rule($context, 'Feature');
4111 0           $self->_build($context, $token);
4112 0           return 42;
4113             }
4114 0 0         if ($self->match_StepLine($context, $token)) {
4115 0           $self->_end_rule($context, 'DocString');
4116 0           $self->_end_rule($context, 'Step');
4117 0           $self->_start_rule($context, 'Step');
4118 0           $self->_build($context, $token);
4119 0           return 29;
4120             }
4121 0 0         if ($self->match_TagLine($context, $token)) {
4122 0 0         if ($self->lookahead_0($context, $token)) {
4123 0           $self->_end_rule($context, 'DocString');
4124 0           $self->_end_rule($context, 'Step');
4125 0           $self->_end_rule($context, 'Background');
4126 0           $self->_start_rule($context, 'ScenarioDefinition');
4127 0           $self->_start_rule($context, 'Tags');
4128 0           $self->_build($context, $token);
4129 0           return 31;
4130             }
4131             }
4132 0 0         if ($self->match_TagLine($context, $token)) {
4133 0           $self->_end_rule($context, 'DocString');
4134 0           $self->_end_rule($context, 'Step');
4135 0           $self->_end_rule($context, 'Background');
4136 0           $self->_end_rule($context, 'Rule');
4137 0           $self->_start_rule($context, 'Rule');
4138 0           $self->_start_rule($context, 'RuleHeader');
4139 0           $self->_start_rule($context, 'Tags');
4140 0           $self->_build($context, $token);
4141 0           return 22;
4142             }
4143 0 0         if ($self->match_ScenarioLine($context, $token)) {
4144 0           $self->_end_rule($context, 'DocString');
4145 0           $self->_end_rule($context, 'Step');
4146 0           $self->_end_rule($context, 'Background');
4147 0           $self->_start_rule($context, 'ScenarioDefinition');
4148 0           $self->_start_rule($context, 'Scenario');
4149 0           $self->_build($context, $token);
4150 0           return 32;
4151             }
4152 0 0         if ($self->match_RuleLine($context, $token)) {
4153 0           $self->_end_rule($context, 'DocString');
4154 0           $self->_end_rule($context, 'Step');
4155 0           $self->_end_rule($context, 'Background');
4156 0           $self->_end_rule($context, 'Rule');
4157 0           $self->_start_rule($context, 'Rule');
4158 0           $self->_start_rule($context, 'RuleHeader');
4159 0           $self->_build($context, $token);
4160 0           return 23;
4161             }
4162 0 0         if ($self->match_Comment($context, $token)) {
4163 0           $self->_build($context, $token);
4164 0           return 46;
4165             }
4166 0 0         if ($self->match_Empty($context, $token)) {
4167 0           $self->_build($context, $token);
4168 0           return 46;
4169             }
4170              
4171 0           $token->detach;
4172              
4173             # Create the appropriate error
4174 0 0         my $error_class = "Gherkin::Exceptions::" . (
4175             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4176              
4177 0           my @args = (
4178             $token,
4179             ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
4180             "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0",
4181             );
4182              
4183 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4184              
4185 0           eval {$error_class->throw( @args )};
  0            
4186 0           $self->add_error( $context, $@ );
4187              
4188 0           return 46;
4189             }
4190              
4191             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
4192             sub match_token_at_47 {
4193 0     0 0   my ( $self, $token, $context ) = @_;
4194 0 0         if ($self->match_DocStringSeparator($context, $token)) {
4195 0           $self->_build($context, $token);
4196 0           return 48;
4197             }
4198 0 0         if ($self->match_Other($context, $token)) {
4199 0           $self->_build($context, $token);
4200 0           return 47;
4201             }
4202              
4203 0           $token->detach;
4204              
4205             # Create the appropriate error
4206 0 0         my $error_class = "Gherkin::Exceptions::" . (
4207             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4208              
4209 0           my @args = (
4210             $token,
4211             ["#DocStringSeparator", "#Other"], #"
4212             "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0",
4213             );
4214              
4215 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4216              
4217 0           eval {$error_class->throw( @args )};
  0            
4218 0           $self->add_error( $context, $@ );
4219              
4220 0           return 47;
4221             }
4222              
4223             # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
4224             sub match_token_at_48 {
4225 0     0 0   my ( $self, $token, $context ) = @_;
4226 0 0         if ($self->match_EOF($context, $token)) {
4227 0           $self->_end_rule($context, 'DocString');
4228 0           $self->_end_rule($context, 'Step');
4229 0           $self->_end_rule($context, 'Scenario');
4230 0           $self->_end_rule($context, 'ScenarioDefinition');
4231 0           $self->_end_rule($context, 'Feature');
4232 0           $self->_build($context, $token);
4233 0           return 42;
4234             }
4235 0 0         if ($self->match_StepLine($context, $token)) {
4236 0           $self->_end_rule($context, 'DocString');
4237 0           $self->_end_rule($context, 'Step');
4238 0           $self->_start_rule($context, 'Step');
4239 0           $self->_build($context, $token);
4240 0           return 15;
4241             }
4242 0 0         if ($self->match_TagLine($context, $token)) {
4243 0 0         if ($self->lookahead_1($context, $token)) {
4244 0           $self->_end_rule($context, 'DocString');
4245 0           $self->_end_rule($context, 'Step');
4246 0           $self->_start_rule($context, 'ExamplesDefinition');
4247 0           $self->_start_rule($context, 'Tags');
4248 0           $self->_build($context, $token);
4249 0           return 17;
4250             }
4251             }
4252 0 0         if ($self->match_TagLine($context, $token)) {
4253 0 0         if ($self->lookahead_0($context, $token)) {
4254 0           $self->_end_rule($context, 'DocString');
4255 0           $self->_end_rule($context, 'Step');
4256 0           $self->_end_rule($context, 'Scenario');
4257 0           $self->_end_rule($context, 'ScenarioDefinition');
4258 0           $self->_start_rule($context, 'ScenarioDefinition');
4259 0           $self->_start_rule($context, 'Tags');
4260 0           $self->_build($context, $token);
4261 0           return 11;
4262             }
4263             }
4264 0 0         if ($self->match_TagLine($context, $token)) {
4265 0           $self->_end_rule($context, 'DocString');
4266 0           $self->_end_rule($context, 'Step');
4267 0           $self->_end_rule($context, 'Scenario');
4268 0           $self->_end_rule($context, 'ScenarioDefinition');
4269 0           $self->_start_rule($context, 'Rule');
4270 0           $self->_start_rule($context, 'RuleHeader');
4271 0           $self->_start_rule($context, 'Tags');
4272 0           $self->_build($context, $token);
4273 0           return 22;
4274             }
4275 0 0         if ($self->match_ExamplesLine($context, $token)) {
4276 0           $self->_end_rule($context, 'DocString');
4277 0           $self->_end_rule($context, 'Step');
4278 0           $self->_start_rule($context, 'ExamplesDefinition');
4279 0           $self->_start_rule($context, 'Examples');
4280 0           $self->_build($context, $token);
4281 0           return 18;
4282             }
4283 0 0         if ($self->match_ScenarioLine($context, $token)) {
4284 0           $self->_end_rule($context, 'DocString');
4285 0           $self->_end_rule($context, 'Step');
4286 0           $self->_end_rule($context, 'Scenario');
4287 0           $self->_end_rule($context, 'ScenarioDefinition');
4288 0           $self->_start_rule($context, 'ScenarioDefinition');
4289 0           $self->_start_rule($context, 'Scenario');
4290 0           $self->_build($context, $token);
4291 0           return 12;
4292             }
4293 0 0         if ($self->match_RuleLine($context, $token)) {
4294 0           $self->_end_rule($context, 'DocString');
4295 0           $self->_end_rule($context, 'Step');
4296 0           $self->_end_rule($context, 'Scenario');
4297 0           $self->_end_rule($context, 'ScenarioDefinition');
4298 0           $self->_start_rule($context, 'Rule');
4299 0           $self->_start_rule($context, 'RuleHeader');
4300 0           $self->_build($context, $token);
4301 0           return 23;
4302             }
4303 0 0         if ($self->match_Comment($context, $token)) {
4304 0           $self->_build($context, $token);
4305 0           return 48;
4306             }
4307 0 0         if ($self->match_Empty($context, $token)) {
4308 0           $self->_build($context, $token);
4309 0           return 48;
4310             }
4311              
4312 0           $token->detach;
4313              
4314             # Create the appropriate error
4315 0 0         my $error_class = "Gherkin::Exceptions::" . (
4316             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4317              
4318 0           my @args = (
4319             $token,
4320             ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
4321             "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0",
4322             );
4323              
4324 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4325              
4326 0           eval {$error_class->throw( @args )};
  0            
4327 0           $self->add_error( $context, $@ );
4328              
4329 0           return 48;
4330             }
4331              
4332             # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
4333             sub match_token_at_49 {
4334 0     0 0   my ( $self, $token, $context ) = @_;
4335 0 0         if ($self->match_DocStringSeparator($context, $token)) {
4336 0           $self->_build($context, $token);
4337 0           return 50;
4338             }
4339 0 0         if ($self->match_Other($context, $token)) {
4340 0           $self->_build($context, $token);
4341 0           return 49;
4342             }
4343              
4344 0           $token->detach;
4345              
4346             # Create the appropriate error
4347 0 0         my $error_class = "Gherkin::Exceptions::" . (
4348             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4349              
4350 0           my @args = (
4351             $token,
4352             ["#DocStringSeparator", "#Other"], #"
4353             "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0",
4354             );
4355              
4356 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4357              
4358 0           eval {$error_class->throw( @args )};
  0            
4359 0           $self->add_error( $context, $@ );
4360              
4361 0           return 49;
4362             }
4363              
4364             # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
4365             sub match_token_at_50 {
4366 0     0 0   my ( $self, $token, $context ) = @_;
4367 0 0         if ($self->match_EOF($context, $token)) {
4368 0           $self->_end_rule($context, 'DocString');
4369 0           $self->_end_rule($context, 'Step');
4370 0           $self->_end_rule($context, 'Background');
4371 0           $self->_end_rule($context, 'Feature');
4372 0           $self->_build($context, $token);
4373 0           return 42;
4374             }
4375 0 0         if ($self->match_StepLine($context, $token)) {
4376 0           $self->_end_rule($context, 'DocString');
4377 0           $self->_end_rule($context, 'Step');
4378 0           $self->_start_rule($context, 'Step');
4379 0           $self->_build($context, $token);
4380 0           return 9;
4381             }
4382 0 0         if ($self->match_TagLine($context, $token)) {
4383 0 0         if ($self->lookahead_0($context, $token)) {
4384 0           $self->_end_rule($context, 'DocString');
4385 0           $self->_end_rule($context, 'Step');
4386 0           $self->_end_rule($context, 'Background');
4387 0           $self->_start_rule($context, 'ScenarioDefinition');
4388 0           $self->_start_rule($context, 'Tags');
4389 0           $self->_build($context, $token);
4390 0           return 11;
4391             }
4392             }
4393 0 0         if ($self->match_TagLine($context, $token)) {
4394 0           $self->_end_rule($context, 'DocString');
4395 0           $self->_end_rule($context, 'Step');
4396 0           $self->_end_rule($context, 'Background');
4397 0           $self->_start_rule($context, 'Rule');
4398 0           $self->_start_rule($context, 'RuleHeader');
4399 0           $self->_start_rule($context, 'Tags');
4400 0           $self->_build($context, $token);
4401 0           return 22;
4402             }
4403 0 0         if ($self->match_ScenarioLine($context, $token)) {
4404 0           $self->_end_rule($context, 'DocString');
4405 0           $self->_end_rule($context, 'Step');
4406 0           $self->_end_rule($context, 'Background');
4407 0           $self->_start_rule($context, 'ScenarioDefinition');
4408 0           $self->_start_rule($context, 'Scenario');
4409 0           $self->_build($context, $token);
4410 0           return 12;
4411             }
4412 0 0         if ($self->match_RuleLine($context, $token)) {
4413 0           $self->_end_rule($context, 'DocString');
4414 0           $self->_end_rule($context, 'Step');
4415 0           $self->_end_rule($context, 'Background');
4416 0           $self->_start_rule($context, 'Rule');
4417 0           $self->_start_rule($context, 'RuleHeader');
4418 0           $self->_build($context, $token);
4419 0           return 23;
4420             }
4421 0 0         if ($self->match_Comment($context, $token)) {
4422 0           $self->_build($context, $token);
4423 0           return 50;
4424             }
4425 0 0         if ($self->match_Empty($context, $token)) {
4426 0           $self->_build($context, $token);
4427 0           return 50;
4428             }
4429              
4430 0           $token->detach;
4431              
4432             # Create the appropriate error
4433 0 0         my $error_class = "Gherkin::Exceptions::" . (
4434             $token->is_eof ? 'UnexpectedEOF' : 'UnexpectedToken' );
4435              
4436 0           my @args = (
4437             $token,
4438             ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], #"
4439             "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0",
4440             );
4441              
4442 0 0         $error_class->throw( @args ) if $self->stop_at_first_error;
4443              
4444 0           eval {$error_class->throw( @args )};
  0            
4445 0           $self->add_error( $context, $@ );
4446              
4447 0           return 50;
4448             }
4449              
4450              
4451             sub lookahead_0 {
4452 0     0 0   my ($self, $context, $current_token) = @_;
4453              
4454 0           $current_token->detach();
4455              
4456 0           my $token;
4457             my @queue;
4458 0           my $match = 0;
4459              
4460 0           while (1) {
4461 0           $token = $context->read_token();
4462 0           $token->detach;
4463 0           push( @queue, $token );
4464              
4465 0 0 0       if ($self->match_ScenarioLine($context, $token) || 0) {
4466 0           $match = 1;
4467 0           last;
4468             }
4469              
4470 0 0 0       if (! ($self->match_Empty($context, $token) || $self->match_Comment($context, $token) || $self->match_TagLine($context, $token) || 0)) {
      0        
      0        
4471 0           last;
4472             }
4473              
4474             }
4475              
4476 0           $context->add_tokens( @queue );
4477 0           return $match;
4478             }
4479             sub lookahead_1 {
4480 0     0 0   my ($self, $context, $current_token) = @_;
4481              
4482 0           $current_token->detach();
4483              
4484 0           my $token;
4485             my @queue;
4486 0           my $match = 0;
4487              
4488 0           while (1) {
4489 0           $token = $context->read_token();
4490 0           $token->detach;
4491 0           push( @queue, $token );
4492              
4493 0 0 0       if ($self->match_ExamplesLine($context, $token) || 0) {
4494 0           $match = 1;
4495 0           last;
4496             }
4497              
4498 0 0 0       if (! ($self->match_Empty($context, $token) || $self->match_Comment($context, $token) || $self->match_TagLine($context, $token) || 0)) {
      0        
      0        
4499 0           last;
4500             }
4501              
4502             }
4503              
4504 0           $context->add_tokens( @queue );
4505 0           return $match;
4506             }
4507             1;