File Coverage

blib/lib/Gherkin/Generated/Parser.pm
Criterion Covered Total %
statement 164 3672 4.4
branch 57 1764 3.2
condition 4 5 80.0
subroutine 11 58 18.9
pod 0 54 0.0
total 236 5553 4.2


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