cucumber-gherkin 15.0.2 → 20.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43d3ee5cb60b83b4815c23073a3bb5da43063b7d607330a1ac516469a93be7df
4
- data.tar.gz: 3ed1b0382c00180066e39b5020f95c76edd438077b6b0236d577e0653754afbd
3
+ metadata.gz: bb73ac961c9f2998be682611a44e5dfcd433104a7979c640cbbc9027ea6095b6
4
+ data.tar.gz: c43ded48995745446a6784c2f820da82761660a904d15cd20040f51fdf5017c1
5
5
  SHA512:
6
- metadata.gz: 236613fadbcf4efea299a3a709c76f7256d30e59733a4f79d82896ed7eb73fd0f7f4fcc8cc976d1dbe707130f4ab79fb79c5aa9a4146c61446f607afce200a75
7
- data.tar.gz: d3566a431590695b986a5512b458b2460ad1451b308b0979c26bda3ae124c368ab26ea845d9aeab77420a65c1179f7d7e32fc3e9035c14be78be0de36df7daa7
6
+ metadata.gz: ec7a32ca6918f6c08a852d2ffb27a808a10d48bb34f661f4c5330a553a8ea571e6d38c6dcd0529391c811014e092f88eac433261777ed7d64bf254e4d0a2458b
7
+ data.tar.gz: 253c9968f47b68def7d1f3f172fcf55d0d2d150f4c0a6525b898bb3fd57b45647eb6510c418f3ca829ec470e46f0f9bd6e7166124a46fc0f2801443d7f90302c
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Gherkin for Ruby
2
2
 
3
- Gherkin parser/compiler for Ruby. Please see [Gherkin](https://github.com/cucumber/cucumber/tree/master/gherkin) for details.
3
+ Gherkin parser/compiler for Ruby. Please see [Gherkin](https://github.com/cucumber/common/tree/main/gherkin) for details.
4
4
 
5
5
  ## To build
6
6
 
7
- ~~~bash
7
+ ```bash
8
8
  cd <project_root>/ruby
9
9
  make
10
- ~~~
10
+ ```
data/bin/gherkin CHANGED
@@ -6,13 +6,11 @@ require 'optparse'
6
6
  require 'json'
7
7
  require 'cucumber/messages'
8
8
  require 'gherkin'
9
- require 'gherkin/stream/subprocess_message_stream'
10
9
 
11
10
  options = {
12
11
  include_source: true,
13
12
  include_gherkin_document: true,
14
13
  include_pickles: true,
15
- format: 'protobuf',
16
14
  predictable_ids: false
17
15
  }
18
16
 
@@ -26,9 +24,6 @@ OptionParser.new do |opts|
26
24
  opts.on("--[no-]pickles", "Don't print pickle messages") do |v|
27
25
  options[:include_pickles] = v
28
26
  end
29
- opts.on("--format ndjson|protobuf", "Output format") do |v|
30
- options[:format] = v
31
- end
32
27
  opts.on("--predictable-ids", "Generate incrementing ids rather than UUIDs") do |v|
33
28
  options[:id_generator] = Cucumber::Messages::IdGenerator::Incrementing.new if v
34
29
  end
@@ -36,33 +31,16 @@ end.parse!
36
31
 
37
32
  def process_messages(messages, options)
38
33
  messages.each do |message|
39
- if options[:format] == 'ndjson'
40
- message.write_ndjson_to(STDOUT)
41
- elsif options[:format] == 'protobuf'
42
- message.write_delimited_to(STDOUT)
43
- else
44
- raise "Unsupported format: #{options[:format]}"
45
- end
34
+ STDOUT.write(message.to_json)
35
+ STDOUT.write("\n")
46
36
  end
47
37
  end
48
38
 
49
- gherkin_executable = ENV['GHERKIN_EXECUTABLE']
50
39
  if ARGV.empty?
51
- # Read protobuf from STDIN
52
- messages = Cucumber::Messages::BinaryToMessageEnumerator.new(STDIN)
53
- elsif gherkin_executable
54
- # Read protobuf from STDIN
55
- messages = Gherkin::Stream::SubprocessMessageStream.new(
56
- gherkin_executable,
57
- ARGV,
58
- options[:include_source],
59
- options[:include_gherkin_document],
60
- options[:include_pickles]
61
- ).messages
40
+ # Read from STDIN
41
+ messages = Cucumber::Messages::NdjsonToMessageEnumerator.new(STDIN)
62
42
  else
63
- messages = Gherkin.from_paths(
64
- ARGV,
65
- options
66
- )
43
+ messages = Gherkin.from_paths(ARGV, options)
67
44
  end
45
+
68
46
  process_messages(messages, options)
data/lib/gherkin.rb CHANGED
@@ -30,10 +30,10 @@ module Gherkin
30
30
  private
31
31
 
32
32
  def self.encode_source_message(uri, data)
33
- Cucumber::Messages::Source.new({
33
+ Cucumber::Messages::Source.new(
34
34
  uri: uri,
35
35
  data: data,
36
36
  media_type: 'text/x.cucumber.gherkin+plain'
37
- })
37
+ )
38
38
  end
39
39
  end
@@ -24,7 +24,7 @@ module Gherkin
24
24
 
25
25
  def build(token)
26
26
  if token.matched_type == :Comment
27
- @comments.push(Cucumber::Messages::GherkinDocument::Comment.new(
27
+ @comments.push(Cucumber::Messages::Comment.new(
28
28
  location: get_location(token, 0),
29
29
  text: token.matched_text
30
30
  ))
@@ -56,7 +56,7 @@ module Gherkin
56
56
 
57
57
  tags_node.get_tokens(:TagLine).each do |token|
58
58
  token.matched_items.each do |tag_item|
59
- tags.push(Cucumber::Messages::GherkinDocument::Feature::Tag.new(
59
+ tags.push(Cucumber::Messages::Tag.new(
60
60
  location: get_location(token, tag_item.column),
61
61
  name: tag_item.text,
62
62
  id: @id_generator.new_id
@@ -69,7 +69,7 @@ module Gherkin
69
69
 
70
70
  def get_table_rows(node)
71
71
  rows = node.get_tokens(:TableRow).map do |token|
72
- Cucumber::Messages::GherkinDocument::Feature::TableRow.new(
72
+ Cucumber::Messages::TableRow.new(
73
73
  id: @id_generator.new_id,
74
74
  location: get_location(token, 0),
75
75
  cells: get_cells(token)
@@ -84,15 +84,14 @@ module Gherkin
84
84
  cell_count = rows[0].cells.length
85
85
  rows.each do |row|
86
86
  if row.cells.length != cell_count
87
- location = {line: row.location.line, column: row.location.column}
88
- raise AstBuilderException.new("inconsistent cell count within the table", location)
87
+ raise AstBuilderException.new("inconsistent cell count within the table", row.location.to_h)
89
88
  end
90
89
  end
91
90
  end
92
91
 
93
92
  def get_cells(table_row_token)
94
93
  table_row_token.matched_items.map do |cell_item|
95
- Cucumber::Messages::GherkinDocument::Feature::TableRow::TableCell.new(
94
+ Cucumber::Messages::TableCell.new(
96
95
  location: get_location(table_row_token, cell_item.column),
97
96
  value: cell_item.text
98
97
  )
@@ -100,7 +99,7 @@ module Gherkin
100
99
  end
101
100
 
102
101
  def get_description(node)
103
- node.get_single(:Description)
102
+ node.get_single(:Description) || ''
104
103
  end
105
104
 
106
105
  def get_steps(node)
@@ -114,7 +113,7 @@ module Gherkin
114
113
  data_table = node.get_single(:DataTable)
115
114
  doc_string = node.get_single(:DocString)
116
115
 
117
- Cucumber::Messages::GherkinDocument::Feature::Step.new(
116
+ step = Cucumber::Messages::Step.new(
118
117
  location: get_location(step_line, 0),
119
118
  keyword: step_line.matched_keyword,
120
119
  text: step_line.matched_text,
@@ -128,24 +127,24 @@ module Gherkin
128
127
  line_tokens = node.get_tokens(:Other)
129
128
  content = line_tokens.map { |t| t.matched_text }.join("\n")
130
129
 
131
- Cucumber::Messages::GherkinDocument::Feature::Step::DocString.new(
130
+ Cucumber::Messages::DocString.new(
132
131
  location: get_location(separator_token, 0),
133
132
  content: content,
134
133
  delimiter: separator_token.matched_keyword,
135
- media_type: media_type,
134
+ media_type: media_type
136
135
  )
137
136
  when :DataTable
138
137
  rows = get_table_rows(node)
139
- Cucumber::Messages::GherkinDocument::Feature::Step::DataTable.new(
138
+ Cucumber::Messages::DataTable.new(
140
139
  location: rows[0].location,
141
- rows: rows,
140
+ rows: rows
142
141
  )
143
142
  when :Background
144
143
  background_line = node.get_token(:BackgroundLine)
145
144
  description = get_description(node)
146
145
  steps = get_steps(node)
147
146
 
148
- Cucumber::Messages::GherkinDocument::Feature::Background.new(
147
+ Cucumber::Messages::Background.new(
149
148
  id: @id_generator.new_id,
150
149
  location: get_location(background_line, 0),
151
150
  keyword: background_line.matched_keyword,
@@ -160,7 +159,7 @@ module Gherkin
160
159
  description = get_description(scenario_node)
161
160
  steps = get_steps(scenario_node)
162
161
  examples = scenario_node.get_items(:ExamplesDefinition)
163
- Cucumber::Messages::GherkinDocument::Feature::Scenario.new(
162
+ Cucumber::Messages::Scenario.new(
164
163
  id: @id_generator.new_id,
165
164
  tags: tags,
166
165
  location: get_location(scenario_line, 0),
@@ -178,9 +177,9 @@ module Gherkin
178
177
  rows = examples_node.get_single(:ExamplesTable)
179
178
 
180
179
  table_header = rows.nil? ? nil : rows.first
181
- table_body = rows.nil? ? nil : rows[1..-1]
180
+ table_body = rows.nil? ? [] : rows[1..-1]
182
181
 
183
- Cucumber::Messages::GherkinDocument::Feature::Scenario::Examples.new(
182
+ Cucumber::Messages::Examples.new(
184
183
  id: @id_generator.new_id,
185
184
  tags: tags,
186
185
  location: get_location(examples_line, 0),
@@ -188,7 +187,7 @@ module Gherkin
188
187
  name: examples_line.matched_text,
189
188
  description: description,
190
189
  table_header: table_header,
191
- table_body: table_body,
190
+ table_body: table_body
192
191
  )
193
192
  when :ExamplesTable
194
193
  get_table_rows(node)
@@ -206,17 +205,17 @@ module Gherkin
206
205
  return unless feature_line
207
206
  children = []
208
207
  background = node.get_single(:Background)
209
- children.push(Cucumber::Messages::GherkinDocument::Feature::FeatureChild.new(background: background)) if background
208
+ children.push(Cucumber::Messages::FeatureChild.new(background: background)) if background
210
209
  node.get_items(:ScenarioDefinition).each do |scenario|
211
- children.push(Cucumber::Messages::GherkinDocument::Feature::FeatureChild.new(scenario: scenario))
210
+ children.push(Cucumber::Messages::FeatureChild.new(scenario: scenario))
212
211
  end
213
212
  node.get_items(:Rule).each do |rule|
214
- children.push(Cucumber::Messages::GherkinDocument::Feature::FeatureChild.new(rule: rule))
213
+ children.push(Cucumber::Messages::FeatureChild.new(rule: rule))
215
214
  end
216
215
  description = get_description(header)
217
216
  language = feature_line.matched_gherkin_dialect
218
217
 
219
- Cucumber::Messages::GherkinDocument::Feature.new(
218
+ Cucumber::Messages::Feature.new(
220
219
  tags: tags,
221
220
  location: get_location(feature_line, 0),
222
221
  language: language,
@@ -230,16 +229,18 @@ module Gherkin
230
229
  return unless header
231
230
  rule_line = header.get_token(:RuleLine)
232
231
  return unless rule_line
232
+ tags = get_tags(header)
233
233
  children = []
234
234
  background = node.get_single(:Background)
235
- children.push(Cucumber::Messages::GherkinDocument::Feature::FeatureChild::RuleChild.new(background: background)) if background
235
+ children.push(Cucumber::Messages::RuleChild.new(background: background)) if background
236
236
  node.get_items(:ScenarioDefinition).each do |scenario|
237
- children.push(Cucumber::Messages::GherkinDocument::Feature::FeatureChild::RuleChild.new(scenario: scenario))
237
+ children.push(Cucumber::Messages::RuleChild.new(scenario: scenario))
238
238
  end
239
239
  description = get_description(header)
240
240
 
241
- Cucumber::Messages::GherkinDocument::Feature::FeatureChild::Rule.new(
241
+ Cucumber::Messages::Rule.new(
242
242
  id: @id_generator.new_id,
243
+ tags: tags,
243
244
  location: get_location(rule_line, 0),
244
245
  keyword: rule_line.matched_keyword,
245
246
  name: rule_line.matched_text,
@@ -248,10 +249,10 @@ module Gherkin
248
249
  )
249
250
  when :GherkinDocument
250
251
  feature = node.get_single(:Feature)
251
- {
252
- feature: feature,
253
- comments: @comments
254
- }
252
+ Cucumber::Messages::GherkinDocument.new(
253
+ comments: @comments,
254
+ feature: feature
255
+ )
255
256
  else
256
257
  return node
257
258
  end
@@ -26,7 +26,7 @@
26
26
  "name": "Afrikaans",
27
27
  "native": "Afrikaans",
28
28
  "rule": [
29
- "Rule"
29
+ "Regel"
30
30
  ],
31
31
  "scenario": [
32
32
  "Voorbeeld",
@@ -494,7 +494,7 @@
494
494
  "name": "Czech",
495
495
  "native": "Česky",
496
496
  "rule": [
497
- "Rule"
497
+ "Pravidlo"
498
498
  ],
499
499
  "scenario": [
500
500
  "Příklad",
@@ -1013,6 +1013,46 @@
1013
1013
  "* ",
1014
1014
  "Blimey! "
1015
1015
  ]
1016
+ },
1017
+ "en-tx": {
1018
+ "and": [
1019
+ "Come hell or high water "
1020
+ ],
1021
+ "background": [
1022
+ "Lemme tell y'all a story"
1023
+ ],
1024
+ "but": [
1025
+ "Well now hold on, I'll you what "
1026
+ ],
1027
+ "examples": [
1028
+ "Now that's a story longer than a cattle drive in July"
1029
+ ],
1030
+ "feature": [
1031
+ "This ain’t my first rodeo",
1032
+ "All gussied up"
1033
+ ],
1034
+ "given": [
1035
+ "Fixin' to ",
1036
+ "All git out "
1037
+ ],
1038
+ "name": "Texas",
1039
+ "native": "Texas",
1040
+ "rule": [
1041
+ "Rule "
1042
+ ],
1043
+ "scenario": [
1044
+ "All hat and no cattle"
1045
+ ],
1046
+ "scenarioOutline": [
1047
+ "Serious as a snake bite",
1048
+ "Busy as a hound in flea season"
1049
+ ],
1050
+ "then": [
1051
+ "There’s no tree but bears some fruit "
1052
+ ],
1053
+ "when": [
1054
+ "Quick out of the chute "
1055
+ ]
1016
1056
  },
1017
1057
  "eo": {
1018
1058
  "and": [
@@ -1078,7 +1118,9 @@
1078
1118
  "Ejemplos"
1079
1119
  ],
1080
1120
  "feature": [
1081
- "Característica"
1121
+ "Característica",
1122
+ "Necesidad del negocio",
1123
+ "Requisito"
1082
1124
  ],
1083
1125
  "given": [
1084
1126
  "* ",
@@ -1090,7 +1132,8 @@
1090
1132
  "name": "Spanish",
1091
1133
  "native": "español",
1092
1134
  "rule": [
1093
- "Regla"
1135
+ "Regla",
1136
+ "Regla de negocio"
1094
1137
  ],
1095
1138
  "scenario": [
1096
1139
  "Ejemplo",
@@ -1672,7 +1715,7 @@
1672
1715
  "name": "Hungarian",
1673
1716
  "native": "magyar",
1674
1717
  "rule": [
1675
- "Rule"
1718
+ "Szabály"
1676
1719
  ],
1677
1720
  "scenario": [
1678
1721
  "Példa",
@@ -1804,7 +1847,9 @@
1804
1847
  "Esempi"
1805
1848
  ],
1806
1849
  "feature": [
1807
- "Funzionalità"
1850
+ "Funzionalità",
1851
+ "Esigenza di Business",
1852
+ "Abilità"
1808
1853
  ],
1809
1854
  "given": [
1810
1855
  "* ",
@@ -1816,7 +1861,7 @@
1816
1861
  "name": "Italian",
1817
1862
  "native": "italiano",
1818
1863
  "rule": [
1819
- "Rule"
1864
+ "Regola"
1820
1865
  ],
1821
1866
  "scenario": [
1822
1867
  "Esempio",
@@ -2561,7 +2606,8 @@
2561
2606
  "name": "Polish",
2562
2607
  "native": "polski",
2563
2608
  "rule": [
2564
- "Rule"
2609
+ "Zasada",
2610
+ "Reguła"
2565
2611
  ],
2566
2612
  "scenario": [
2567
2613
  "Przykład",
@@ -2736,7 +2782,8 @@
2736
2782
  "Сценарий"
2737
2783
  ],
2738
2784
  "scenarioOutline": [
2739
- "Структура сценария"
2785
+ "Структура сценария",
2786
+ "Шаблон сценария"
2740
2787
  ],
2741
2788
  "then": [
2742
2789
  "* ",
@@ -2997,7 +3044,7 @@
2997
3044
  "name": "Swedish",
2998
3045
  "native": "Svenska",
2999
3046
  "rule": [
3000
- "Rule"
3047
+ "Regel"
3001
3048
  ],
3002
3049
  "scenario": [
3003
3050
  "Scenario"
@@ -3110,7 +3157,7 @@
3110
3157
  "เมื่อ "
3111
3158
  ]
3112
3159
  },
3113
- "tl": {
3160
+ "te": {
3114
3161
  "and": [
3115
3162
  "* ",
3116
3163
  "మరియు "
@@ -94,7 +94,7 @@ module Gherkin
94
94
  end
95
95
 
96
96
  unless item =~ /^\S+$/
97
- location = {line: @line_number, column: column}
97
+ location = { line: @line_number, column: column }
98
98
  raise ParserException.new('A tag may not contain whitespace', location)
99
99
  end
100
100
 
@@ -26,11 +26,11 @@ module Gherkin
26
26
  :Feature, # Feature! := FeatureHeader Background? ScenarioDefinition* Rule*
27
27
  :FeatureHeader, # FeatureHeader! := #Language? Tags? #FeatureLine DescriptionHelper
28
28
  :Rule, # Rule! := RuleHeader Background? ScenarioDefinition*
29
- :RuleHeader, # RuleHeader! := #RuleLine DescriptionHelper
29
+ :RuleHeader, # RuleHeader! := Tags? #RuleLine DescriptionHelper
30
30
  :Background, # Background! := #BackgroundLine DescriptionHelper Step*
31
- :ScenarioDefinition, # ScenarioDefinition! := Tags? Scenario
31
+ :ScenarioDefinition, # ScenarioDefinition! [#Empty|#Comment|#TagLine->#ScenarioLine] := Tags? Scenario
32
32
  :Scenario, # Scenario! := #ScenarioLine DescriptionHelper Step* ExamplesDefinition*
33
- :ExamplesDefinition, # ExamplesDefinition! [#Empty|#Comment|#TagLine-&gt;#ExamplesLine] := Tags? Examples
33
+ :ExamplesDefinition, # ExamplesDefinition! [#Empty|#Comment|#TagLine->#ExamplesLine] := Tags? Examples
34
34
  :Examples, # Examples! := #ExamplesLine DescriptionHelper ExamplesTable?
35
35
  :ExamplesTable, # ExamplesTable! := #TableRow #TableRow*
36
36
  :Step, # Step! := #StepLine StepArg?
@@ -94,7 +94,7 @@ module Gherkin
94
94
  end
95
95
 
96
96
  def add_error(context, error)
97
- context.errors.push(error)
97
+ context.errors.push(error) unless context.errors.map { |e| e.message }.include?(error.message)
98
98
  raise CompositeParserException, context.errors if context.errors.length > 10
99
99
  end
100
100
 
@@ -300,8 +300,8 @@ module Gherkin
300
300
  match_token_at_39(token, context)
301
301
  when 40
302
302
  match_token_at_40(token, context)
303
- when 42
304
- match_token_at_42(token, context)
303
+ when 41
304
+ match_token_at_41(token, context)
305
305
  when 43
306
306
  match_token_at_43(token, context)
307
307
  when 44
@@ -316,6 +316,8 @@ module Gherkin
316
316
  match_token_at_48(token, context)
317
317
  when 49
318
318
  match_token_at_49(token, context)
319
+ when 50
320
+ match_token_at_50(token, context)
319
321
  else
320
322
  raise InvalidOperationException, "Unknown state: #{state}"
321
323
  end
@@ -326,7 +328,7 @@ module Gherkin
326
328
  def match_token_at_0(token, context)
327
329
  if match_EOF(context, token)
328
330
  build(context, token);
329
- return 41
331
+ return 42
330
332
  end
331
333
  if match_Language(context, token)
332
334
  start_rule(context, :Feature);
@@ -355,7 +357,7 @@ module Gherkin
355
357
  build(context, token);
356
358
  return 0
357
359
  end
358
-
360
+
359
361
  state_comment = "State: 0 - Start"
360
362
  token.detach
361
363
  expected_tokens = ["#EOF", "#Language", "#TagLine", "#FeatureLine", "#Comment", "#Empty"]
@@ -364,7 +366,6 @@ module Gherkin
364
366
  add_error(context, error)
365
367
  return 0
366
368
  end
367
-
368
369
  # GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0
369
370
  def match_token_at_1(token, context)
370
371
  if match_TagLine(context, token)
@@ -384,7 +385,7 @@ module Gherkin
384
385
  build(context, token);
385
386
  return 1
386
387
  end
387
-
388
+
388
389
  state_comment = "State: 1 - GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0"
389
390
  token.detach
390
391
  expected_tokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]
@@ -393,7 +394,6 @@ module Gherkin
393
394
  add_error(context, error)
394
395
  return 1
395
396
  end
396
-
397
397
  # GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0
398
398
  def match_token_at_2(token, context)
399
399
  if match_TagLine(context, token)
@@ -413,7 +413,7 @@ module Gherkin
413
413
  build(context, token);
414
414
  return 2
415
415
  end
416
-
416
+
417
417
  state_comment = "State: 2 - GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0"
418
418
  token.detach
419
419
  expected_tokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]
@@ -422,14 +422,13 @@ module Gherkin
422
422
  add_error(context, error)
423
423
  return 2
424
424
  end
425
-
426
425
  # GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0
427
426
  def match_token_at_3(token, context)
428
427
  if match_EOF(context, token)
429
428
  end_rule(context, :FeatureHeader);
430
429
  end_rule(context, :Feature);
431
430
  build(context, token);
432
- return 41
431
+ return 42
433
432
  end
434
433
  if match_Empty(context, token)
435
434
  build(context, token);
@@ -446,11 +445,21 @@ module Gherkin
446
445
  return 6
447
446
  end
448
447
  if match_TagLine(context, token)
448
+ if lookahead_0(context, token)
449
449
  end_rule(context, :FeatureHeader);
450
450
  start_rule(context, :ScenarioDefinition);
451
451
  start_rule(context, :Tags);
452
452
  build(context, token);
453
453
  return 11
454
+ end
455
+ end
456
+ if match_TagLine(context, token)
457
+ end_rule(context, :FeatureHeader);
458
+ start_rule(context, :Rule);
459
+ start_rule(context, :RuleHeader);
460
+ start_rule(context, :Tags);
461
+ build(context, token);
462
+ return 22
454
463
  end
455
464
  if match_ScenarioLine(context, token)
456
465
  end_rule(context, :FeatureHeader);
@@ -464,14 +473,14 @@ module Gherkin
464
473
  start_rule(context, :Rule);
465
474
  start_rule(context, :RuleHeader);
466
475
  build(context, token);
467
- return 22
476
+ return 23
468
477
  end
469
478
  if match_Other(context, token)
470
479
  start_rule(context, :Description);
471
480
  build(context, token);
472
481
  return 4
473
482
  end
474
-
483
+
475
484
  state_comment = "State: 3 - GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0"
476
485
  token.detach
477
486
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -480,7 +489,6 @@ module Gherkin
480
489
  add_error(context, error)
481
490
  return 3
482
491
  end
483
-
484
492
  # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0
485
493
  def match_token_at_4(token, context)
486
494
  if match_EOF(context, token)
@@ -488,7 +496,7 @@ module Gherkin
488
496
  end_rule(context, :FeatureHeader);
489
497
  end_rule(context, :Feature);
490
498
  build(context, token);
491
- return 41
499
+ return 42
492
500
  end
493
501
  if match_Comment(context, token)
494
502
  end_rule(context, :Description);
@@ -503,12 +511,23 @@ module Gherkin
503
511
  return 6
504
512
  end
505
513
  if match_TagLine(context, token)
514
+ if lookahead_0(context, token)
506
515
  end_rule(context, :Description);
507
516
  end_rule(context, :FeatureHeader);
508
517
  start_rule(context, :ScenarioDefinition);
509
518
  start_rule(context, :Tags);
510
519
  build(context, token);
511
520
  return 11
521
+ end
522
+ end
523
+ if match_TagLine(context, token)
524
+ end_rule(context, :Description);
525
+ end_rule(context, :FeatureHeader);
526
+ start_rule(context, :Rule);
527
+ start_rule(context, :RuleHeader);
528
+ start_rule(context, :Tags);
529
+ build(context, token);
530
+ return 22
512
531
  end
513
532
  if match_ScenarioLine(context, token)
514
533
  end_rule(context, :Description);
@@ -524,13 +543,13 @@ module Gherkin
524
543
  start_rule(context, :Rule);
525
544
  start_rule(context, :RuleHeader);
526
545
  build(context, token);
527
- return 22
546
+ return 23
528
547
  end
529
548
  if match_Other(context, token)
530
549
  build(context, token);
531
550
  return 4
532
551
  end
533
-
552
+
534
553
  state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"
535
554
  token.detach
536
555
  expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -539,14 +558,13 @@ module Gherkin
539
558
  add_error(context, error)
540
559
  return 4
541
560
  end
542
-
543
561
  # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0
544
562
  def match_token_at_5(token, context)
545
563
  if match_EOF(context, token)
546
564
  end_rule(context, :FeatureHeader);
547
565
  end_rule(context, :Feature);
548
566
  build(context, token);
549
- return 41
567
+ return 42
550
568
  end
551
569
  if match_Comment(context, token)
552
570
  build(context, token);
@@ -559,11 +577,21 @@ module Gherkin
559
577
  return 6
560
578
  end
561
579
  if match_TagLine(context, token)
580
+ if lookahead_0(context, token)
562
581
  end_rule(context, :FeatureHeader);
563
582
  start_rule(context, :ScenarioDefinition);
564
583
  start_rule(context, :Tags);
565
584
  build(context, token);
566
585
  return 11
586
+ end
587
+ end
588
+ if match_TagLine(context, token)
589
+ end_rule(context, :FeatureHeader);
590
+ start_rule(context, :Rule);
591
+ start_rule(context, :RuleHeader);
592
+ start_rule(context, :Tags);
593
+ build(context, token);
594
+ return 22
567
595
  end
568
596
  if match_ScenarioLine(context, token)
569
597
  end_rule(context, :FeatureHeader);
@@ -577,13 +605,13 @@ module Gherkin
577
605
  start_rule(context, :Rule);
578
606
  start_rule(context, :RuleHeader);
579
607
  build(context, token);
580
- return 22
608
+ return 23
581
609
  end
582
610
  if match_Empty(context, token)
583
611
  build(context, token);
584
612
  return 5
585
613
  end
586
-
614
+
587
615
  state_comment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0"
588
616
  token.detach
589
617
  expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]
@@ -592,14 +620,13 @@ module Gherkin
592
620
  add_error(context, error)
593
621
  return 5
594
622
  end
595
-
596
623
  # GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0
597
624
  def match_token_at_6(token, context)
598
625
  if match_EOF(context, token)
599
626
  end_rule(context, :Background);
600
627
  end_rule(context, :Feature);
601
628
  build(context, token);
602
- return 41
629
+ return 42
603
630
  end
604
631
  if match_Empty(context, token)
605
632
  build(context, token);
@@ -615,11 +642,21 @@ module Gherkin
615
642
  return 9
616
643
  end
617
644
  if match_TagLine(context, token)
645
+ if lookahead_0(context, token)
618
646
  end_rule(context, :Background);
619
647
  start_rule(context, :ScenarioDefinition);
620
648
  start_rule(context, :Tags);
621
649
  build(context, token);
622
650
  return 11
651
+ end
652
+ end
653
+ if match_TagLine(context, token)
654
+ end_rule(context, :Background);
655
+ start_rule(context, :Rule);
656
+ start_rule(context, :RuleHeader);
657
+ start_rule(context, :Tags);
658
+ build(context, token);
659
+ return 22
623
660
  end
624
661
  if match_ScenarioLine(context, token)
625
662
  end_rule(context, :Background);
@@ -633,14 +670,14 @@ module Gherkin
633
670
  start_rule(context, :Rule);
634
671
  start_rule(context, :RuleHeader);
635
672
  build(context, token);
636
- return 22
673
+ return 23
637
674
  end
638
675
  if match_Other(context, token)
639
676
  start_rule(context, :Description);
640
677
  build(context, token);
641
678
  return 7
642
679
  end
643
-
680
+
644
681
  state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"
645
682
  token.detach
646
683
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -649,7 +686,6 @@ module Gherkin
649
686
  add_error(context, error)
650
687
  return 6
651
688
  end
652
-
653
689
  # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0
654
690
  def match_token_at_7(token, context)
655
691
  if match_EOF(context, token)
@@ -657,7 +693,7 @@ module Gherkin
657
693
  end_rule(context, :Background);
658
694
  end_rule(context, :Feature);
659
695
  build(context, token);
660
- return 41
696
+ return 42
661
697
  end
662
698
  if match_Comment(context, token)
663
699
  end_rule(context, :Description);
@@ -671,12 +707,23 @@ module Gherkin
671
707
  return 9
672
708
  end
673
709
  if match_TagLine(context, token)
710
+ if lookahead_0(context, token)
674
711
  end_rule(context, :Description);
675
712
  end_rule(context, :Background);
676
713
  start_rule(context, :ScenarioDefinition);
677
714
  start_rule(context, :Tags);
678
715
  build(context, token);
679
716
  return 11
717
+ end
718
+ end
719
+ if match_TagLine(context, token)
720
+ end_rule(context, :Description);
721
+ end_rule(context, :Background);
722
+ start_rule(context, :Rule);
723
+ start_rule(context, :RuleHeader);
724
+ start_rule(context, :Tags);
725
+ build(context, token);
726
+ return 22
680
727
  end
681
728
  if match_ScenarioLine(context, token)
682
729
  end_rule(context, :Description);
@@ -692,13 +739,13 @@ module Gherkin
692
739
  start_rule(context, :Rule);
693
740
  start_rule(context, :RuleHeader);
694
741
  build(context, token);
695
- return 22
742
+ return 23
696
743
  end
697
744
  if match_Other(context, token)
698
745
  build(context, token);
699
746
  return 7
700
747
  end
701
-
748
+
702
749
  state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"
703
750
  token.detach
704
751
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -707,14 +754,13 @@ module Gherkin
707
754
  add_error(context, error)
708
755
  return 7
709
756
  end
710
-
711
757
  # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0
712
758
  def match_token_at_8(token, context)
713
759
  if match_EOF(context, token)
714
760
  end_rule(context, :Background);
715
761
  end_rule(context, :Feature);
716
762
  build(context, token);
717
- return 41
763
+ return 42
718
764
  end
719
765
  if match_Comment(context, token)
720
766
  build(context, token);
@@ -726,11 +772,21 @@ module Gherkin
726
772
  return 9
727
773
  end
728
774
  if match_TagLine(context, token)
775
+ if lookahead_0(context, token)
729
776
  end_rule(context, :Background);
730
777
  start_rule(context, :ScenarioDefinition);
731
778
  start_rule(context, :Tags);
732
779
  build(context, token);
733
780
  return 11
781
+ end
782
+ end
783
+ if match_TagLine(context, token)
784
+ end_rule(context, :Background);
785
+ start_rule(context, :Rule);
786
+ start_rule(context, :RuleHeader);
787
+ start_rule(context, :Tags);
788
+ build(context, token);
789
+ return 22
734
790
  end
735
791
  if match_ScenarioLine(context, token)
736
792
  end_rule(context, :Background);
@@ -744,13 +800,13 @@ module Gherkin
744
800
  start_rule(context, :Rule);
745
801
  start_rule(context, :RuleHeader);
746
802
  build(context, token);
747
- return 22
803
+ return 23
748
804
  end
749
805
  if match_Empty(context, token)
750
806
  build(context, token);
751
807
  return 8
752
808
  end
753
-
809
+
754
810
  state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0"
755
811
  token.detach
756
812
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]
@@ -759,7 +815,6 @@ module Gherkin
759
815
  add_error(context, error)
760
816
  return 8
761
817
  end
762
-
763
818
  # GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0
764
819
  def match_token_at_9(token, context)
765
820
  if match_EOF(context, token)
@@ -767,7 +822,7 @@ module Gherkin
767
822
  end_rule(context, :Background);
768
823
  end_rule(context, :Feature);
769
824
  build(context, token);
770
- return 41
825
+ return 42
771
826
  end
772
827
  if match_TableRow(context, token)
773
828
  start_rule(context, :DataTable);
@@ -777,7 +832,7 @@ module Gherkin
777
832
  if match_DocStringSeparator(context, token)
778
833
  start_rule(context, :DocString);
779
834
  build(context, token);
780
- return 48
835
+ return 49
781
836
  end
782
837
  if match_StepLine(context, token)
783
838
  end_rule(context, :Step);
@@ -786,12 +841,23 @@ module Gherkin
786
841
  return 9
787
842
  end
788
843
  if match_TagLine(context, token)
844
+ if lookahead_0(context, token)
789
845
  end_rule(context, :Step);
790
846
  end_rule(context, :Background);
791
847
  start_rule(context, :ScenarioDefinition);
792
848
  start_rule(context, :Tags);
793
849
  build(context, token);
794
850
  return 11
851
+ end
852
+ end
853
+ if match_TagLine(context, token)
854
+ end_rule(context, :Step);
855
+ end_rule(context, :Background);
856
+ start_rule(context, :Rule);
857
+ start_rule(context, :RuleHeader);
858
+ start_rule(context, :Tags);
859
+ build(context, token);
860
+ return 22
795
861
  end
796
862
  if match_ScenarioLine(context, token)
797
863
  end_rule(context, :Step);
@@ -807,7 +873,7 @@ module Gherkin
807
873
  start_rule(context, :Rule);
808
874
  start_rule(context, :RuleHeader);
809
875
  build(context, token);
810
- return 22
876
+ return 23
811
877
  end
812
878
  if match_Comment(context, token)
813
879
  build(context, token);
@@ -817,7 +883,7 @@ module Gherkin
817
883
  build(context, token);
818
884
  return 9
819
885
  end
820
-
886
+
821
887
  state_comment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"
822
888
  token.detach
823
889
  expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
@@ -826,7 +892,6 @@ module Gherkin
826
892
  add_error(context, error)
827
893
  return 9
828
894
  end
829
-
830
895
  # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
831
896
  def match_token_at_10(token, context)
832
897
  if match_EOF(context, token)
@@ -835,7 +900,7 @@ module Gherkin
835
900
  end_rule(context, :Background);
836
901
  end_rule(context, :Feature);
837
902
  build(context, token);
838
- return 41
903
+ return 42
839
904
  end
840
905
  if match_TableRow(context, token)
841
906
  build(context, token);
@@ -849,6 +914,7 @@ module Gherkin
849
914
  return 9
850
915
  end
851
916
  if match_TagLine(context, token)
917
+ if lookahead_0(context, token)
852
918
  end_rule(context, :DataTable);
853
919
  end_rule(context, :Step);
854
920
  end_rule(context, :Background);
@@ -856,6 +922,17 @@ module Gherkin
856
922
  start_rule(context, :Tags);
857
923
  build(context, token);
858
924
  return 11
925
+ end
926
+ end
927
+ if match_TagLine(context, token)
928
+ end_rule(context, :DataTable);
929
+ end_rule(context, :Step);
930
+ end_rule(context, :Background);
931
+ start_rule(context, :Rule);
932
+ start_rule(context, :RuleHeader);
933
+ start_rule(context, :Tags);
934
+ build(context, token);
935
+ return 22
859
936
  end
860
937
  if match_ScenarioLine(context, token)
861
938
  end_rule(context, :DataTable);
@@ -873,7 +950,7 @@ module Gherkin
873
950
  start_rule(context, :Rule);
874
951
  start_rule(context, :RuleHeader);
875
952
  build(context, token);
876
- return 22
953
+ return 23
877
954
  end
878
955
  if match_Comment(context, token)
879
956
  build(context, token);
@@ -883,7 +960,7 @@ module Gherkin
883
960
  build(context, token);
884
961
  return 10
885
962
  end
886
-
963
+
887
964
  state_comment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
888
965
  token.detach
889
966
  expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
@@ -892,7 +969,6 @@ module Gherkin
892
969
  add_error(context, error)
893
970
  return 10
894
971
  end
895
-
896
972
  # GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0
897
973
  def match_token_at_11(token, context)
898
974
  if match_TagLine(context, token)
@@ -913,7 +989,7 @@ module Gherkin
913
989
  build(context, token);
914
990
  return 11
915
991
  end
916
-
992
+
917
993
  state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"
918
994
  token.detach
919
995
  expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]
@@ -922,7 +998,6 @@ module Gherkin
922
998
  add_error(context, error)
923
999
  return 11
924
1000
  end
925
-
926
1001
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0
927
1002
  def match_token_at_12(token, context)
928
1003
  if match_EOF(context, token)
@@ -930,7 +1005,7 @@ module Gherkin
930
1005
  end_rule(context, :ScenarioDefinition);
931
1006
  end_rule(context, :Feature);
932
1007
  build(context, token);
933
- return 41
1008
+ return 42
934
1009
  end
935
1010
  if match_Empty(context, token)
936
1011
  build(context, token);
@@ -946,7 +1021,7 @@ module Gherkin
946
1021
  return 15
947
1022
  end
948
1023
  if match_TagLine(context, token)
949
- if lookahead_0(context, token)
1024
+ if lookahead_1(context, token)
950
1025
  start_rule(context, :ExamplesDefinition);
951
1026
  start_rule(context, :Tags);
952
1027
  build(context, token);
@@ -954,12 +1029,23 @@ module Gherkin
954
1029
  end
955
1030
  end
956
1031
  if match_TagLine(context, token)
1032
+ if lookahead_0(context, token)
957
1033
  end_rule(context, :Scenario);
958
1034
  end_rule(context, :ScenarioDefinition);
959
1035
  start_rule(context, :ScenarioDefinition);
960
1036
  start_rule(context, :Tags);
961
1037
  build(context, token);
962
1038
  return 11
1039
+ end
1040
+ end
1041
+ if match_TagLine(context, token)
1042
+ end_rule(context, :Scenario);
1043
+ end_rule(context, :ScenarioDefinition);
1044
+ start_rule(context, :Rule);
1045
+ start_rule(context, :RuleHeader);
1046
+ start_rule(context, :Tags);
1047
+ build(context, token);
1048
+ return 22
963
1049
  end
964
1050
  if match_ExamplesLine(context, token)
965
1051
  start_rule(context, :ExamplesDefinition);
@@ -981,14 +1067,14 @@ module Gherkin
981
1067
  start_rule(context, :Rule);
982
1068
  start_rule(context, :RuleHeader);
983
1069
  build(context, token);
984
- return 22
1070
+ return 23
985
1071
  end
986
1072
  if match_Other(context, token)
987
1073
  start_rule(context, :Description);
988
1074
  build(context, token);
989
1075
  return 13
990
1076
  end
991
-
1077
+
992
1078
  state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"
993
1079
  token.detach
994
1080
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -997,7 +1083,6 @@ module Gherkin
997
1083
  add_error(context, error)
998
1084
  return 12
999
1085
  end
1000
-
1001
1086
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0
1002
1087
  def match_token_at_13(token, context)
1003
1088
  if match_EOF(context, token)
@@ -1006,7 +1091,7 @@ module Gherkin
1006
1091
  end_rule(context, :ScenarioDefinition);
1007
1092
  end_rule(context, :Feature);
1008
1093
  build(context, token);
1009
- return 41
1094
+ return 42
1010
1095
  end
1011
1096
  if match_Comment(context, token)
1012
1097
  end_rule(context, :Description);
@@ -1020,7 +1105,7 @@ module Gherkin
1020
1105
  return 15
1021
1106
  end
1022
1107
  if match_TagLine(context, token)
1023
- if lookahead_0(context, token)
1108
+ if lookahead_1(context, token)
1024
1109
  end_rule(context, :Description);
1025
1110
  start_rule(context, :ExamplesDefinition);
1026
1111
  start_rule(context, :Tags);
@@ -1029,6 +1114,7 @@ module Gherkin
1029
1114
  end
1030
1115
  end
1031
1116
  if match_TagLine(context, token)
1117
+ if lookahead_0(context, token)
1032
1118
  end_rule(context, :Description);
1033
1119
  end_rule(context, :Scenario);
1034
1120
  end_rule(context, :ScenarioDefinition);
@@ -1036,6 +1122,17 @@ module Gherkin
1036
1122
  start_rule(context, :Tags);
1037
1123
  build(context, token);
1038
1124
  return 11
1125
+ end
1126
+ end
1127
+ if match_TagLine(context, token)
1128
+ end_rule(context, :Description);
1129
+ end_rule(context, :Scenario);
1130
+ end_rule(context, :ScenarioDefinition);
1131
+ start_rule(context, :Rule);
1132
+ start_rule(context, :RuleHeader);
1133
+ start_rule(context, :Tags);
1134
+ build(context, token);
1135
+ return 22
1039
1136
  end
1040
1137
  if match_ExamplesLine(context, token)
1041
1138
  end_rule(context, :Description);
@@ -1060,13 +1157,13 @@ module Gherkin
1060
1157
  start_rule(context, :Rule);
1061
1158
  start_rule(context, :RuleHeader);
1062
1159
  build(context, token);
1063
- return 22
1160
+ return 23
1064
1161
  end
1065
1162
  if match_Other(context, token)
1066
1163
  build(context, token);
1067
1164
  return 13
1068
1165
  end
1069
-
1166
+
1070
1167
  state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"
1071
1168
  token.detach
1072
1169
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -1075,7 +1172,6 @@ module Gherkin
1075
1172
  add_error(context, error)
1076
1173
  return 13
1077
1174
  end
1078
-
1079
1175
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0
1080
1176
  def match_token_at_14(token, context)
1081
1177
  if match_EOF(context, token)
@@ -1083,7 +1179,7 @@ module Gherkin
1083
1179
  end_rule(context, :ScenarioDefinition);
1084
1180
  end_rule(context, :Feature);
1085
1181
  build(context, token);
1086
- return 41
1182
+ return 42
1087
1183
  end
1088
1184
  if match_Comment(context, token)
1089
1185
  build(context, token);
@@ -1095,7 +1191,7 @@ module Gherkin
1095
1191
  return 15
1096
1192
  end
1097
1193
  if match_TagLine(context, token)
1098
- if lookahead_0(context, token)
1194
+ if lookahead_1(context, token)
1099
1195
  start_rule(context, :ExamplesDefinition);
1100
1196
  start_rule(context, :Tags);
1101
1197
  build(context, token);
@@ -1103,12 +1199,23 @@ module Gherkin
1103
1199
  end
1104
1200
  end
1105
1201
  if match_TagLine(context, token)
1202
+ if lookahead_0(context, token)
1106
1203
  end_rule(context, :Scenario);
1107
1204
  end_rule(context, :ScenarioDefinition);
1108
1205
  start_rule(context, :ScenarioDefinition);
1109
1206
  start_rule(context, :Tags);
1110
1207
  build(context, token);
1111
1208
  return 11
1209
+ end
1210
+ end
1211
+ if match_TagLine(context, token)
1212
+ end_rule(context, :Scenario);
1213
+ end_rule(context, :ScenarioDefinition);
1214
+ start_rule(context, :Rule);
1215
+ start_rule(context, :RuleHeader);
1216
+ start_rule(context, :Tags);
1217
+ build(context, token);
1218
+ return 22
1112
1219
  end
1113
1220
  if match_ExamplesLine(context, token)
1114
1221
  start_rule(context, :ExamplesDefinition);
@@ -1130,13 +1237,13 @@ module Gherkin
1130
1237
  start_rule(context, :Rule);
1131
1238
  start_rule(context, :RuleHeader);
1132
1239
  build(context, token);
1133
- return 22
1240
+ return 23
1134
1241
  end
1135
1242
  if match_Empty(context, token)
1136
1243
  build(context, token);
1137
1244
  return 14
1138
1245
  end
1139
-
1246
+
1140
1247
  state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"
1141
1248
  token.detach
1142
1249
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]
@@ -1145,7 +1252,6 @@ module Gherkin
1145
1252
  add_error(context, error)
1146
1253
  return 14
1147
1254
  end
1148
-
1149
1255
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0
1150
1256
  def match_token_at_15(token, context)
1151
1257
  if match_EOF(context, token)
@@ -1154,7 +1260,7 @@ module Gherkin
1154
1260
  end_rule(context, :ScenarioDefinition);
1155
1261
  end_rule(context, :Feature);
1156
1262
  build(context, token);
1157
- return 41
1263
+ return 42
1158
1264
  end
1159
1265
  if match_TableRow(context, token)
1160
1266
  start_rule(context, :DataTable);
@@ -1164,7 +1270,7 @@ module Gherkin
1164
1270
  if match_DocStringSeparator(context, token)
1165
1271
  start_rule(context, :DocString);
1166
1272
  build(context, token);
1167
- return 46
1273
+ return 47
1168
1274
  end
1169
1275
  if match_StepLine(context, token)
1170
1276
  end_rule(context, :Step);
@@ -1173,7 +1279,7 @@ module Gherkin
1173
1279
  return 15
1174
1280
  end
1175
1281
  if match_TagLine(context, token)
1176
- if lookahead_0(context, token)
1282
+ if lookahead_1(context, token)
1177
1283
  end_rule(context, :Step);
1178
1284
  start_rule(context, :ExamplesDefinition);
1179
1285
  start_rule(context, :Tags);
@@ -1182,6 +1288,7 @@ module Gherkin
1182
1288
  end
1183
1289
  end
1184
1290
  if match_TagLine(context, token)
1291
+ if lookahead_0(context, token)
1185
1292
  end_rule(context, :Step);
1186
1293
  end_rule(context, :Scenario);
1187
1294
  end_rule(context, :ScenarioDefinition);
@@ -1189,6 +1296,17 @@ module Gherkin
1189
1296
  start_rule(context, :Tags);
1190
1297
  build(context, token);
1191
1298
  return 11
1299
+ end
1300
+ end
1301
+ if match_TagLine(context, token)
1302
+ end_rule(context, :Step);
1303
+ end_rule(context, :Scenario);
1304
+ end_rule(context, :ScenarioDefinition);
1305
+ start_rule(context, :Rule);
1306
+ start_rule(context, :RuleHeader);
1307
+ start_rule(context, :Tags);
1308
+ build(context, token);
1309
+ return 22
1192
1310
  end
1193
1311
  if match_ExamplesLine(context, token)
1194
1312
  end_rule(context, :Step);
@@ -1213,7 +1331,7 @@ module Gherkin
1213
1331
  start_rule(context, :Rule);
1214
1332
  start_rule(context, :RuleHeader);
1215
1333
  build(context, token);
1216
- return 22
1334
+ return 23
1217
1335
  end
1218
1336
  if match_Comment(context, token)
1219
1337
  build(context, token);
@@ -1223,7 +1341,7 @@ module Gherkin
1223
1341
  build(context, token);
1224
1342
  return 15
1225
1343
  end
1226
-
1344
+
1227
1345
  state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"
1228
1346
  token.detach
1229
1347
  expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
@@ -1232,7 +1350,6 @@ module Gherkin
1232
1350
  add_error(context, error)
1233
1351
  return 15
1234
1352
  end
1235
-
1236
1353
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
1237
1354
  def match_token_at_16(token, context)
1238
1355
  if match_EOF(context, token)
@@ -1242,7 +1359,7 @@ module Gherkin
1242
1359
  end_rule(context, :ScenarioDefinition);
1243
1360
  end_rule(context, :Feature);
1244
1361
  build(context, token);
1245
- return 41
1362
+ return 42
1246
1363
  end
1247
1364
  if match_TableRow(context, token)
1248
1365
  build(context, token);
@@ -1256,7 +1373,7 @@ module Gherkin
1256
1373
  return 15
1257
1374
  end
1258
1375
  if match_TagLine(context, token)
1259
- if lookahead_0(context, token)
1376
+ if lookahead_1(context, token)
1260
1377
  end_rule(context, :DataTable);
1261
1378
  end_rule(context, :Step);
1262
1379
  start_rule(context, :ExamplesDefinition);
@@ -1266,6 +1383,7 @@ module Gherkin
1266
1383
  end
1267
1384
  end
1268
1385
  if match_TagLine(context, token)
1386
+ if lookahead_0(context, token)
1269
1387
  end_rule(context, :DataTable);
1270
1388
  end_rule(context, :Step);
1271
1389
  end_rule(context, :Scenario);
@@ -1274,6 +1392,18 @@ module Gherkin
1274
1392
  start_rule(context, :Tags);
1275
1393
  build(context, token);
1276
1394
  return 11
1395
+ end
1396
+ end
1397
+ if match_TagLine(context, token)
1398
+ end_rule(context, :DataTable);
1399
+ end_rule(context, :Step);
1400
+ end_rule(context, :Scenario);
1401
+ end_rule(context, :ScenarioDefinition);
1402
+ start_rule(context, :Rule);
1403
+ start_rule(context, :RuleHeader);
1404
+ start_rule(context, :Tags);
1405
+ build(context, token);
1406
+ return 22
1277
1407
  end
1278
1408
  if match_ExamplesLine(context, token)
1279
1409
  end_rule(context, :DataTable);
@@ -1301,7 +1431,7 @@ module Gherkin
1301
1431
  start_rule(context, :Rule);
1302
1432
  start_rule(context, :RuleHeader);
1303
1433
  build(context, token);
1304
- return 22
1434
+ return 23
1305
1435
  end
1306
1436
  if match_Comment(context, token)
1307
1437
  build(context, token);
@@ -1311,7 +1441,7 @@ module Gherkin
1311
1441
  build(context, token);
1312
1442
  return 16
1313
1443
  end
1314
-
1444
+
1315
1445
  state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
1316
1446
  token.detach
1317
1447
  expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
@@ -1320,7 +1450,6 @@ module Gherkin
1320
1450
  add_error(context, error)
1321
1451
  return 16
1322
1452
  end
1323
-
1324
1453
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0
1325
1454
  def match_token_at_17(token, context)
1326
1455
  if match_TagLine(context, token)
@@ -1341,7 +1470,7 @@ module Gherkin
1341
1470
  build(context, token);
1342
1471
  return 17
1343
1472
  end
1344
-
1473
+
1345
1474
  state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"
1346
1475
  token.detach
1347
1476
  expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]
@@ -1350,7 +1479,6 @@ module Gherkin
1350
1479
  add_error(context, error)
1351
1480
  return 17
1352
1481
  end
1353
-
1354
1482
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0
1355
1483
  def match_token_at_18(token, context)
1356
1484
  if match_EOF(context, token)
@@ -1360,7 +1488,7 @@ module Gherkin
1360
1488
  end_rule(context, :ScenarioDefinition);
1361
1489
  end_rule(context, :Feature);
1362
1490
  build(context, token);
1363
- return 41
1491
+ return 42
1364
1492
  end
1365
1493
  if match_Empty(context, token)
1366
1494
  build(context, token);
@@ -1376,7 +1504,7 @@ module Gherkin
1376
1504
  return 21
1377
1505
  end
1378
1506
  if match_TagLine(context, token)
1379
- if lookahead_0(context, token)
1507
+ if lookahead_1(context, token)
1380
1508
  end_rule(context, :Examples);
1381
1509
  end_rule(context, :ExamplesDefinition);
1382
1510
  start_rule(context, :ExamplesDefinition);
@@ -1386,6 +1514,7 @@ module Gherkin
1386
1514
  end
1387
1515
  end
1388
1516
  if match_TagLine(context, token)
1517
+ if lookahead_0(context, token)
1389
1518
  end_rule(context, :Examples);
1390
1519
  end_rule(context, :ExamplesDefinition);
1391
1520
  end_rule(context, :Scenario);
@@ -1394,16 +1523,28 @@ module Gherkin
1394
1523
  start_rule(context, :Tags);
1395
1524
  build(context, token);
1396
1525
  return 11
1526
+ end
1397
1527
  end
1398
- if match_ExamplesLine(context, token)
1528
+ if match_TagLine(context, token)
1399
1529
  end_rule(context, :Examples);
1400
1530
  end_rule(context, :ExamplesDefinition);
1401
- start_rule(context, :ExamplesDefinition);
1402
- start_rule(context, :Examples);
1403
- build(context, token);
1404
- return 18
1405
- end
1406
- if match_ScenarioLine(context, token)
1531
+ end_rule(context, :Scenario);
1532
+ end_rule(context, :ScenarioDefinition);
1533
+ start_rule(context, :Rule);
1534
+ start_rule(context, :RuleHeader);
1535
+ start_rule(context, :Tags);
1536
+ build(context, token);
1537
+ return 22
1538
+ end
1539
+ if match_ExamplesLine(context, token)
1540
+ end_rule(context, :Examples);
1541
+ end_rule(context, :ExamplesDefinition);
1542
+ start_rule(context, :ExamplesDefinition);
1543
+ start_rule(context, :Examples);
1544
+ build(context, token);
1545
+ return 18
1546
+ end
1547
+ if match_ScenarioLine(context, token)
1407
1548
  end_rule(context, :Examples);
1408
1549
  end_rule(context, :ExamplesDefinition);
1409
1550
  end_rule(context, :Scenario);
@@ -1421,14 +1562,14 @@ module Gherkin
1421
1562
  start_rule(context, :Rule);
1422
1563
  start_rule(context, :RuleHeader);
1423
1564
  build(context, token);
1424
- return 22
1565
+ return 23
1425
1566
  end
1426
1567
  if match_Other(context, token)
1427
1568
  start_rule(context, :Description);
1428
1569
  build(context, token);
1429
1570
  return 19
1430
1571
  end
1431
-
1572
+
1432
1573
  state_comment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"
1433
1574
  token.detach
1434
1575
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -1437,7 +1578,6 @@ module Gherkin
1437
1578
  add_error(context, error)
1438
1579
  return 18
1439
1580
  end
1440
-
1441
1581
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0
1442
1582
  def match_token_at_19(token, context)
1443
1583
  if match_EOF(context, token)
@@ -1448,7 +1588,7 @@ module Gherkin
1448
1588
  end_rule(context, :ScenarioDefinition);
1449
1589
  end_rule(context, :Feature);
1450
1590
  build(context, token);
1451
- return 41
1591
+ return 42
1452
1592
  end
1453
1593
  if match_Comment(context, token)
1454
1594
  end_rule(context, :Description);
@@ -1462,7 +1602,7 @@ module Gherkin
1462
1602
  return 21
1463
1603
  end
1464
1604
  if match_TagLine(context, token)
1465
- if lookahead_0(context, token)
1605
+ if lookahead_1(context, token)
1466
1606
  end_rule(context, :Description);
1467
1607
  end_rule(context, :Examples);
1468
1608
  end_rule(context, :ExamplesDefinition);
@@ -1473,6 +1613,7 @@ module Gherkin
1473
1613
  end
1474
1614
  end
1475
1615
  if match_TagLine(context, token)
1616
+ if lookahead_0(context, token)
1476
1617
  end_rule(context, :Description);
1477
1618
  end_rule(context, :Examples);
1478
1619
  end_rule(context, :ExamplesDefinition);
@@ -1482,6 +1623,19 @@ module Gherkin
1482
1623
  start_rule(context, :Tags);
1483
1624
  build(context, token);
1484
1625
  return 11
1626
+ end
1627
+ end
1628
+ if match_TagLine(context, token)
1629
+ end_rule(context, :Description);
1630
+ end_rule(context, :Examples);
1631
+ end_rule(context, :ExamplesDefinition);
1632
+ end_rule(context, :Scenario);
1633
+ end_rule(context, :ScenarioDefinition);
1634
+ start_rule(context, :Rule);
1635
+ start_rule(context, :RuleHeader);
1636
+ start_rule(context, :Tags);
1637
+ build(context, token);
1638
+ return 22
1485
1639
  end
1486
1640
  if match_ExamplesLine(context, token)
1487
1641
  end_rule(context, :Description);
@@ -1512,13 +1666,13 @@ module Gherkin
1512
1666
  start_rule(context, :Rule);
1513
1667
  start_rule(context, :RuleHeader);
1514
1668
  build(context, token);
1515
- return 22
1669
+ return 23
1516
1670
  end
1517
1671
  if match_Other(context, token)
1518
1672
  build(context, token);
1519
1673
  return 19
1520
1674
  end
1521
-
1675
+
1522
1676
  state_comment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"
1523
1677
  token.detach
1524
1678
  expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
@@ -1527,7 +1681,6 @@ module Gherkin
1527
1681
  add_error(context, error)
1528
1682
  return 19
1529
1683
  end
1530
-
1531
1684
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0
1532
1685
  def match_token_at_20(token, context)
1533
1686
  if match_EOF(context, token)
@@ -1537,7 +1690,7 @@ module Gherkin
1537
1690
  end_rule(context, :ScenarioDefinition);
1538
1691
  end_rule(context, :Feature);
1539
1692
  build(context, token);
1540
- return 41
1693
+ return 42
1541
1694
  end
1542
1695
  if match_Comment(context, token)
1543
1696
  build(context, token);
@@ -1549,7 +1702,7 @@ module Gherkin
1549
1702
  return 21
1550
1703
  end
1551
1704
  if match_TagLine(context, token)
1552
- if lookahead_0(context, token)
1705
+ if lookahead_1(context, token)
1553
1706
  end_rule(context, :Examples);
1554
1707
  end_rule(context, :ExamplesDefinition);
1555
1708
  start_rule(context, :ExamplesDefinition);
@@ -1559,6 +1712,7 @@ module Gherkin
1559
1712
  end
1560
1713
  end
1561
1714
  if match_TagLine(context, token)
1715
+ if lookahead_0(context, token)
1562
1716
  end_rule(context, :Examples);
1563
1717
  end_rule(context, :ExamplesDefinition);
1564
1718
  end_rule(context, :Scenario);
@@ -1567,6 +1721,18 @@ module Gherkin
1567
1721
  start_rule(context, :Tags);
1568
1722
  build(context, token);
1569
1723
  return 11
1724
+ end
1725
+ end
1726
+ if match_TagLine(context, token)
1727
+ end_rule(context, :Examples);
1728
+ end_rule(context, :ExamplesDefinition);
1729
+ end_rule(context, :Scenario);
1730
+ end_rule(context, :ScenarioDefinition);
1731
+ start_rule(context, :Rule);
1732
+ start_rule(context, :RuleHeader);
1733
+ start_rule(context, :Tags);
1734
+ build(context, token);
1735
+ return 22
1570
1736
  end
1571
1737
  if match_ExamplesLine(context, token)
1572
1738
  end_rule(context, :Examples);
@@ -1594,13 +1760,13 @@ module Gherkin
1594
1760
  start_rule(context, :Rule);
1595
1761
  start_rule(context, :RuleHeader);
1596
1762
  build(context, token);
1597
- return 22
1763
+ return 23
1598
1764
  end
1599
1765
  if match_Empty(context, token)
1600
1766
  build(context, token);
1601
1767
  return 20
1602
1768
  end
1603
-
1769
+
1604
1770
  state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"
1605
1771
  token.detach
1606
1772
  expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]
@@ -1609,7 +1775,6 @@ module Gherkin
1609
1775
  add_error(context, error)
1610
1776
  return 20
1611
1777
  end
1612
-
1613
1778
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0
1614
1779
  def match_token_at_21(token, context)
1615
1780
  if match_EOF(context, token)
@@ -1620,14 +1785,14 @@ module Gherkin
1620
1785
  end_rule(context, :ScenarioDefinition);
1621
1786
  end_rule(context, :Feature);
1622
1787
  build(context, token);
1623
- return 41
1788
+ return 42
1624
1789
  end
1625
1790
  if match_TableRow(context, token)
1626
1791
  build(context, token);
1627
1792
  return 21
1628
1793
  end
1629
1794
  if match_TagLine(context, token)
1630
- if lookahead_0(context, token)
1795
+ if lookahead_1(context, token)
1631
1796
  end_rule(context, :ExamplesTable);
1632
1797
  end_rule(context, :Examples);
1633
1798
  end_rule(context, :ExamplesDefinition);
@@ -1638,6 +1803,7 @@ module Gherkin
1638
1803
  end
1639
1804
  end
1640
1805
  if match_TagLine(context, token)
1806
+ if lookahead_0(context, token)
1641
1807
  end_rule(context, :ExamplesTable);
1642
1808
  end_rule(context, :Examples);
1643
1809
  end_rule(context, :ExamplesDefinition);
@@ -1647,6 +1813,19 @@ module Gherkin
1647
1813
  start_rule(context, :Tags);
1648
1814
  build(context, token);
1649
1815
  return 11
1816
+ end
1817
+ end
1818
+ if match_TagLine(context, token)
1819
+ end_rule(context, :ExamplesTable);
1820
+ end_rule(context, :Examples);
1821
+ end_rule(context, :ExamplesDefinition);
1822
+ end_rule(context, :Scenario);
1823
+ end_rule(context, :ScenarioDefinition);
1824
+ start_rule(context, :Rule);
1825
+ start_rule(context, :RuleHeader);
1826
+ start_rule(context, :Tags);
1827
+ build(context, token);
1828
+ return 22
1650
1829
  end
1651
1830
  if match_ExamplesLine(context, token)
1652
1831
  end_rule(context, :ExamplesTable);
@@ -1677,7 +1856,7 @@ module Gherkin
1677
1856
  start_rule(context, :Rule);
1678
1857
  start_rule(context, :RuleHeader);
1679
1858
  build(context, token);
1680
- return 22
1859
+ return 23
1681
1860
  end
1682
1861
  if match_Comment(context, token)
1683
1862
  build(context, token);
@@ -1687,7 +1866,7 @@ module Gherkin
1687
1866
  build(context, token);
1688
1867
  return 21
1689
1868
  end
1690
-
1869
+
1691
1870
  state_comment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"
1692
1871
  token.detach
1693
1872
  expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
@@ -1696,43 +1875,81 @@ module Gherkin
1696
1875
  add_error(context, error)
1697
1876
  return 21
1698
1877
  end
1699
-
1700
- # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>#RuleLine:0
1878
+ # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0
1701
1879
  def match_token_at_22(token, context)
1880
+ if match_TagLine(context, token)
1881
+ build(context, token);
1882
+ return 22
1883
+ end
1884
+ if match_RuleLine(context, token)
1885
+ end_rule(context, :Tags);
1886
+ build(context, token);
1887
+ return 23
1888
+ end
1889
+ if match_Comment(context, token)
1890
+ build(context, token);
1891
+ return 22
1892
+ end
1893
+ if match_Empty(context, token)
1894
+ build(context, token);
1895
+ return 22
1896
+ end
1897
+
1898
+ state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"
1899
+ token.detach
1900
+ expected_tokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"]
1901
+ error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1902
+ raise error if (stop_at_first_error)
1903
+ add_error(context, error)
1904
+ return 22
1905
+ end
1906
+ # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0
1907
+ def match_token_at_23(token, context)
1702
1908
  if match_EOF(context, token)
1703
1909
  end_rule(context, :RuleHeader);
1704
1910
  end_rule(context, :Rule);
1705
1911
  end_rule(context, :Feature);
1706
1912
  build(context, token);
1707
- return 41
1913
+ return 42
1708
1914
  end
1709
1915
  if match_Empty(context, token)
1710
1916
  build(context, token);
1711
- return 22
1917
+ return 23
1712
1918
  end
1713
1919
  if match_Comment(context, token)
1714
1920
  build(context, token);
1715
- return 24
1921
+ return 25
1716
1922
  end
1717
1923
  if match_BackgroundLine(context, token)
1718
1924
  end_rule(context, :RuleHeader);
1719
1925
  start_rule(context, :Background);
1720
1926
  build(context, token);
1721
- return 25
1927
+ return 26
1722
1928
  end
1723
1929
  if match_TagLine(context, token)
1930
+ if lookahead_0(context, token)
1724
1931
  end_rule(context, :RuleHeader);
1725
1932
  start_rule(context, :ScenarioDefinition);
1726
1933
  start_rule(context, :Tags);
1727
1934
  build(context, token);
1728
- return 30
1935
+ return 31
1936
+ end
1937
+ end
1938
+ if match_TagLine(context, token)
1939
+ end_rule(context, :RuleHeader);
1940
+ end_rule(context, :Rule);
1941
+ start_rule(context, :Rule);
1942
+ start_rule(context, :RuleHeader);
1943
+ start_rule(context, :Tags);
1944
+ build(context, token);
1945
+ return 22
1729
1946
  end
1730
1947
  if match_ScenarioLine(context, token)
1731
1948
  end_rule(context, :RuleHeader);
1732
1949
  start_rule(context, :ScenarioDefinition);
1733
1950
  start_rule(context, :Scenario);
1734
1951
  build(context, token);
1735
- return 31
1952
+ return 32
1736
1953
  end
1737
1954
  if match_RuleLine(context, token)
1738
1955
  end_rule(context, :RuleHeader);
@@ -1740,52 +1957,63 @@ module Gherkin
1740
1957
  start_rule(context, :Rule);
1741
1958
  start_rule(context, :RuleHeader);
1742
1959
  build(context, token);
1743
- return 22
1960
+ return 23
1744
1961
  end
1745
1962
  if match_Other(context, token)
1746
1963
  start_rule(context, :Description);
1747
1964
  build(context, token);
1748
- return 23
1965
+ return 24
1749
1966
  end
1750
-
1751
- state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>#RuleLine:0"
1967
+
1968
+ state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"
1752
1969
  token.detach
1753
1970
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
1754
1971
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1755
1972
  raise error if (stop_at_first_error)
1756
1973
  add_error(context, error)
1757
- return 22
1974
+ return 23
1758
1975
  end
1759
-
1760
- # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>DescriptionHelper:1>Description:0>#Other:0
1761
- def match_token_at_23(token, context)
1976
+ # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0
1977
+ def match_token_at_24(token, context)
1762
1978
  if match_EOF(context, token)
1763
1979
  end_rule(context, :Description);
1764
1980
  end_rule(context, :RuleHeader);
1765
1981
  end_rule(context, :Rule);
1766
1982
  end_rule(context, :Feature);
1767
1983
  build(context, token);
1768
- return 41
1984
+ return 42
1769
1985
  end
1770
1986
  if match_Comment(context, token)
1771
1987
  end_rule(context, :Description);
1772
1988
  build(context, token);
1773
- return 24
1989
+ return 25
1774
1990
  end
1775
1991
  if match_BackgroundLine(context, token)
1776
1992
  end_rule(context, :Description);
1777
1993
  end_rule(context, :RuleHeader);
1778
1994
  start_rule(context, :Background);
1779
1995
  build(context, token);
1780
- return 25
1996
+ return 26
1781
1997
  end
1782
1998
  if match_TagLine(context, token)
1999
+ if lookahead_0(context, token)
1783
2000
  end_rule(context, :Description);
1784
2001
  end_rule(context, :RuleHeader);
1785
2002
  start_rule(context, :ScenarioDefinition);
1786
2003
  start_rule(context, :Tags);
1787
2004
  build(context, token);
1788
- return 30
2005
+ return 31
2006
+ end
2007
+ end
2008
+ if match_TagLine(context, token)
2009
+ end_rule(context, :Description);
2010
+ end_rule(context, :RuleHeader);
2011
+ end_rule(context, :Rule);
2012
+ start_rule(context, :Rule);
2013
+ start_rule(context, :RuleHeader);
2014
+ start_rule(context, :Tags);
2015
+ build(context, token);
2016
+ return 22
1789
2017
  end
1790
2018
  if match_ScenarioLine(context, token)
1791
2019
  end_rule(context, :Description);
@@ -1793,7 +2021,7 @@ module Gherkin
1793
2021
  start_rule(context, :ScenarioDefinition);
1794
2022
  start_rule(context, :Scenario);
1795
2023
  build(context, token);
1796
- return 31
2024
+ return 32
1797
2025
  end
1798
2026
  if match_RuleLine(context, token)
1799
2027
  end_rule(context, :Description);
@@ -1802,54 +2030,64 @@ module Gherkin
1802
2030
  start_rule(context, :Rule);
1803
2031
  start_rule(context, :RuleHeader);
1804
2032
  build(context, token);
1805
- return 22
2033
+ return 23
1806
2034
  end
1807
2035
  if match_Other(context, token)
1808
2036
  build(context, token);
1809
- return 23
2037
+ return 24
1810
2038
  end
1811
-
1812
- state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>DescriptionHelper:1>Description:0>#Other:0"
2039
+
2040
+ state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"
1813
2041
  token.detach
1814
2042
  expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
1815
2043
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1816
2044
  raise error if (stop_at_first_error)
1817
2045
  add_error(context, error)
1818
- return 23
2046
+ return 24
1819
2047
  end
1820
-
1821
- # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>DescriptionHelper:2>#Comment:0
1822
- def match_token_at_24(token, context)
2048
+ # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0
2049
+ def match_token_at_25(token, context)
1823
2050
  if match_EOF(context, token)
1824
2051
  end_rule(context, :RuleHeader);
1825
2052
  end_rule(context, :Rule);
1826
2053
  end_rule(context, :Feature);
1827
2054
  build(context, token);
1828
- return 41
2055
+ return 42
1829
2056
  end
1830
2057
  if match_Comment(context, token)
1831
2058
  build(context, token);
1832
- return 24
2059
+ return 25
1833
2060
  end
1834
2061
  if match_BackgroundLine(context, token)
1835
2062
  end_rule(context, :RuleHeader);
1836
2063
  start_rule(context, :Background);
1837
2064
  build(context, token);
1838
- return 25
2065
+ return 26
1839
2066
  end
1840
2067
  if match_TagLine(context, token)
2068
+ if lookahead_0(context, token)
1841
2069
  end_rule(context, :RuleHeader);
1842
2070
  start_rule(context, :ScenarioDefinition);
1843
2071
  start_rule(context, :Tags);
1844
2072
  build(context, token);
1845
- return 30
2073
+ return 31
2074
+ end
2075
+ end
2076
+ if match_TagLine(context, token)
2077
+ end_rule(context, :RuleHeader);
2078
+ end_rule(context, :Rule);
2079
+ start_rule(context, :Rule);
2080
+ start_rule(context, :RuleHeader);
2081
+ start_rule(context, :Tags);
2082
+ build(context, token);
2083
+ return 22
1846
2084
  end
1847
2085
  if match_ScenarioLine(context, token)
1848
2086
  end_rule(context, :RuleHeader);
1849
2087
  start_rule(context, :ScenarioDefinition);
1850
2088
  start_rule(context, :Scenario);
1851
2089
  build(context, token);
1852
- return 31
2090
+ return 32
1853
2091
  end
1854
2092
  if match_RuleLine(context, token)
1855
2093
  end_rule(context, :RuleHeader);
@@ -1857,57 +2095,67 @@ module Gherkin
1857
2095
  start_rule(context, :Rule);
1858
2096
  start_rule(context, :RuleHeader);
1859
2097
  build(context, token);
1860
- return 22
2098
+ return 23
1861
2099
  end
1862
2100
  if match_Empty(context, token)
1863
2101
  build(context, token);
1864
- return 24
2102
+ return 25
1865
2103
  end
1866
-
1867
- state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>DescriptionHelper:2>#Comment:0"
2104
+
2105
+ state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0"
1868
2106
  token.detach
1869
2107
  expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]
1870
2108
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1871
2109
  raise error if (stop_at_first_error)
1872
2110
  add_error(context, error)
1873
- return 24
2111
+ return 25
1874
2112
  end
1875
-
1876
2113
  # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0
1877
- def match_token_at_25(token, context)
2114
+ def match_token_at_26(token, context)
1878
2115
  if match_EOF(context, token)
1879
2116
  end_rule(context, :Background);
1880
2117
  end_rule(context, :Rule);
1881
2118
  end_rule(context, :Feature);
1882
2119
  build(context, token);
1883
- return 41
2120
+ return 42
1884
2121
  end
1885
2122
  if match_Empty(context, token)
1886
2123
  build(context, token);
1887
- return 25
2124
+ return 26
1888
2125
  end
1889
2126
  if match_Comment(context, token)
1890
2127
  build(context, token);
1891
- return 27
2128
+ return 28
1892
2129
  end
1893
2130
  if match_StepLine(context, token)
1894
2131
  start_rule(context, :Step);
1895
2132
  build(context, token);
1896
- return 28
2133
+ return 29
1897
2134
  end
1898
2135
  if match_TagLine(context, token)
2136
+ if lookahead_0(context, token)
1899
2137
  end_rule(context, :Background);
1900
2138
  start_rule(context, :ScenarioDefinition);
1901
2139
  start_rule(context, :Tags);
1902
2140
  build(context, token);
1903
- return 30
2141
+ return 31
2142
+ end
2143
+ end
2144
+ if match_TagLine(context, token)
2145
+ end_rule(context, :Background);
2146
+ end_rule(context, :Rule);
2147
+ start_rule(context, :Rule);
2148
+ start_rule(context, :RuleHeader);
2149
+ start_rule(context, :Tags);
2150
+ build(context, token);
2151
+ return 22
1904
2152
  end
1905
2153
  if match_ScenarioLine(context, token)
1906
2154
  end_rule(context, :Background);
1907
2155
  start_rule(context, :ScenarioDefinition);
1908
2156
  start_rule(context, :Scenario);
1909
2157
  build(context, token);
1910
- return 31
2158
+ return 32
1911
2159
  end
1912
2160
  if match_RuleLine(context, token)
1913
2161
  end_rule(context, :Background);
@@ -1915,114 +2163,135 @@ module Gherkin
1915
2163
  start_rule(context, :Rule);
1916
2164
  start_rule(context, :RuleHeader);
1917
2165
  build(context, token);
1918
- return 22
2166
+ return 23
1919
2167
  end
1920
2168
  if match_Other(context, token)
1921
2169
  start_rule(context, :Description);
1922
2170
  build(context, token);
1923
- return 26
2171
+ return 27
1924
2172
  end
1925
-
1926
- state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"
2173
+
2174
+ state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"
1927
2175
  token.detach
1928
2176
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
1929
2177
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1930
2178
  raise error if (stop_at_first_error)
1931
2179
  add_error(context, error)
1932
- return 25
2180
+ return 26
1933
2181
  end
1934
-
1935
2182
  # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0
1936
- def match_token_at_26(token, context)
2183
+ def match_token_at_27(token, context)
1937
2184
  if match_EOF(context, token)
1938
2185
  end_rule(context, :Description);
1939
2186
  end_rule(context, :Background);
1940
2187
  end_rule(context, :Rule);
1941
2188
  end_rule(context, :Feature);
1942
2189
  build(context, token);
1943
- return 41
2190
+ return 42
1944
2191
  end
1945
2192
  if match_Comment(context, token)
1946
2193
  end_rule(context, :Description);
1947
2194
  build(context, token);
1948
- return 27
2195
+ return 28
1949
2196
  end
1950
2197
  if match_StepLine(context, token)
1951
2198
  end_rule(context, :Description);
1952
2199
  start_rule(context, :Step);
1953
2200
  build(context, token);
1954
- return 28
2201
+ return 29
1955
2202
  end
1956
2203
  if match_TagLine(context, token)
2204
+ if lookahead_0(context, token)
1957
2205
  end_rule(context, :Description);
1958
2206
  end_rule(context, :Background);
1959
2207
  start_rule(context, :ScenarioDefinition);
1960
2208
  start_rule(context, :Tags);
1961
2209
  build(context, token);
1962
- return 30
1963
- end
1964
- if match_ScenarioLine(context, token)
1965
- end_rule(context, :Description);
1966
- end_rule(context, :Background);
1967
- start_rule(context, :ScenarioDefinition);
1968
- start_rule(context, :Scenario);
1969
- build(context, token);
1970
2210
  return 31
2211
+ end
1971
2212
  end
1972
- if match_RuleLine(context, token)
2213
+ if match_TagLine(context, token)
1973
2214
  end_rule(context, :Description);
1974
2215
  end_rule(context, :Background);
1975
2216
  end_rule(context, :Rule);
1976
2217
  start_rule(context, :Rule);
1977
2218
  start_rule(context, :RuleHeader);
2219
+ start_rule(context, :Tags);
1978
2220
  build(context, token);
1979
2221
  return 22
1980
2222
  end
2223
+ if match_ScenarioLine(context, token)
2224
+ end_rule(context, :Description);
2225
+ end_rule(context, :Background);
2226
+ start_rule(context, :ScenarioDefinition);
2227
+ start_rule(context, :Scenario);
2228
+ build(context, token);
2229
+ return 32
2230
+ end
2231
+ if match_RuleLine(context, token)
2232
+ end_rule(context, :Description);
2233
+ end_rule(context, :Background);
2234
+ end_rule(context, :Rule);
2235
+ start_rule(context, :Rule);
2236
+ start_rule(context, :RuleHeader);
2237
+ build(context, token);
2238
+ return 23
2239
+ end
1981
2240
  if match_Other(context, token)
1982
2241
  build(context, token);
1983
- return 26
2242
+ return 27
1984
2243
  end
1985
-
1986
- state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"
2244
+
2245
+ state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"
1987
2246
  token.detach
1988
2247
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]
1989
2248
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
1990
2249
  raise error if (stop_at_first_error)
1991
2250
  add_error(context, error)
1992
- return 26
2251
+ return 27
1993
2252
  end
1994
-
1995
2253
  # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0
1996
- def match_token_at_27(token, context)
2254
+ def match_token_at_28(token, context)
1997
2255
  if match_EOF(context, token)
1998
2256
  end_rule(context, :Background);
1999
2257
  end_rule(context, :Rule);
2000
2258
  end_rule(context, :Feature);
2001
2259
  build(context, token);
2002
- return 41
2260
+ return 42
2003
2261
  end
2004
2262
  if match_Comment(context, token)
2005
2263
  build(context, token);
2006
- return 27
2264
+ return 28
2007
2265
  end
2008
2266
  if match_StepLine(context, token)
2009
2267
  start_rule(context, :Step);
2010
2268
  build(context, token);
2011
- return 28
2269
+ return 29
2012
2270
  end
2013
2271
  if match_TagLine(context, token)
2272
+ if lookahead_0(context, token)
2014
2273
  end_rule(context, :Background);
2015
2274
  start_rule(context, :ScenarioDefinition);
2016
2275
  start_rule(context, :Tags);
2017
2276
  build(context, token);
2018
- return 30
2277
+ return 31
2278
+ end
2279
+ end
2280
+ if match_TagLine(context, token)
2281
+ end_rule(context, :Background);
2282
+ end_rule(context, :Rule);
2283
+ start_rule(context, :Rule);
2284
+ start_rule(context, :RuleHeader);
2285
+ start_rule(context, :Tags);
2286
+ build(context, token);
2287
+ return 22
2019
2288
  end
2020
2289
  if match_ScenarioLine(context, token)
2021
2290
  end_rule(context, :Background);
2022
2291
  start_rule(context, :ScenarioDefinition);
2023
2292
  start_rule(context, :Scenario);
2024
2293
  build(context, token);
2025
- return 31
2294
+ return 32
2026
2295
  end
2027
2296
  if match_RuleLine(context, token)
2028
2297
  end_rule(context, :Background);
@@ -2030,55 +2299,66 @@ module Gherkin
2030
2299
  start_rule(context, :Rule);
2031
2300
  start_rule(context, :RuleHeader);
2032
2301
  build(context, token);
2033
- return 22
2302
+ return 23
2034
2303
  end
2035
2304
  if match_Empty(context, token)
2036
2305
  build(context, token);
2037
- return 27
2306
+ return 28
2038
2307
  end
2039
-
2040
- state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0"
2308
+
2309
+ state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0"
2041
2310
  token.detach
2042
2311
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]
2043
2312
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2044
2313
  raise error if (stop_at_first_error)
2045
2314
  add_error(context, error)
2046
- return 27
2315
+ return 28
2047
2316
  end
2048
-
2049
2317
  # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0
2050
- def match_token_at_28(token, context)
2318
+ def match_token_at_29(token, context)
2051
2319
  if match_EOF(context, token)
2052
2320
  end_rule(context, :Step);
2053
2321
  end_rule(context, :Background);
2054
2322
  end_rule(context, :Rule);
2055
2323
  end_rule(context, :Feature);
2056
2324
  build(context, token);
2057
- return 41
2325
+ return 42
2058
2326
  end
2059
2327
  if match_TableRow(context, token)
2060
2328
  start_rule(context, :DataTable);
2061
2329
  build(context, token);
2062
- return 29
2330
+ return 30
2063
2331
  end
2064
2332
  if match_DocStringSeparator(context, token)
2065
2333
  start_rule(context, :DocString);
2066
2334
  build(context, token);
2067
- return 44
2335
+ return 45
2068
2336
  end
2069
2337
  if match_StepLine(context, token)
2070
2338
  end_rule(context, :Step);
2071
2339
  start_rule(context, :Step);
2072
2340
  build(context, token);
2073
- return 28
2341
+ return 29
2074
2342
  end
2075
2343
  if match_TagLine(context, token)
2344
+ if lookahead_0(context, token)
2076
2345
  end_rule(context, :Step);
2077
2346
  end_rule(context, :Background);
2078
2347
  start_rule(context, :ScenarioDefinition);
2079
2348
  start_rule(context, :Tags);
2080
2349
  build(context, token);
2081
- return 30
2350
+ return 31
2351
+ end
2352
+ end
2353
+ if match_TagLine(context, token)
2354
+ end_rule(context, :Step);
2355
+ end_rule(context, :Background);
2356
+ end_rule(context, :Rule);
2357
+ start_rule(context, :Rule);
2358
+ start_rule(context, :RuleHeader);
2359
+ start_rule(context, :Tags);
2360
+ build(context, token);
2361
+ return 22
2082
2362
  end
2083
2363
  if match_ScenarioLine(context, token)
2084
2364
  end_rule(context, :Step);
@@ -2086,7 +2366,7 @@ module Gherkin
2086
2366
  start_rule(context, :ScenarioDefinition);
2087
2367
  start_rule(context, :Scenario);
2088
2368
  build(context, token);
2089
- return 31
2369
+ return 32
2090
2370
  end
2091
2371
  if match_RuleLine(context, token)
2092
2372
  end_rule(context, :Step);
@@ -2095,28 +2375,27 @@ module Gherkin
2095
2375
  start_rule(context, :Rule);
2096
2376
  start_rule(context, :RuleHeader);
2097
2377
  build(context, token);
2098
- return 22
2378
+ return 23
2099
2379
  end
2100
2380
  if match_Comment(context, token)
2101
2381
  build(context, token);
2102
- return 28
2382
+ return 29
2103
2383
  end
2104
2384
  if match_Empty(context, token)
2105
2385
  build(context, token);
2106
- return 28
2386
+ return 29
2107
2387
  end
2108
-
2109
- state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"
2388
+
2389
+ state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"
2110
2390
  token.detach
2111
2391
  expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
2112
2392
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2113
2393
  raise error if (stop_at_first_error)
2114
2394
  add_error(context, error)
2115
- return 28
2395
+ return 29
2116
2396
  end
2117
-
2118
2397
  # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
2119
- def match_token_at_29(token, context)
2398
+ def match_token_at_30(token, context)
2120
2399
  if match_EOF(context, token)
2121
2400
  end_rule(context, :DataTable);
2122
2401
  end_rule(context, :Step);
@@ -2124,27 +2403,40 @@ module Gherkin
2124
2403
  end_rule(context, :Rule);
2125
2404
  end_rule(context, :Feature);
2126
2405
  build(context, token);
2127
- return 41
2406
+ return 42
2128
2407
  end
2129
2408
  if match_TableRow(context, token)
2130
2409
  build(context, token);
2131
- return 29
2410
+ return 30
2132
2411
  end
2133
2412
  if match_StepLine(context, token)
2134
2413
  end_rule(context, :DataTable);
2135
2414
  end_rule(context, :Step);
2136
2415
  start_rule(context, :Step);
2137
2416
  build(context, token);
2138
- return 28
2417
+ return 29
2139
2418
  end
2140
2419
  if match_TagLine(context, token)
2420
+ if lookahead_0(context, token)
2141
2421
  end_rule(context, :DataTable);
2142
2422
  end_rule(context, :Step);
2143
2423
  end_rule(context, :Background);
2144
2424
  start_rule(context, :ScenarioDefinition);
2145
2425
  start_rule(context, :Tags);
2146
2426
  build(context, token);
2147
- return 30
2427
+ return 31
2428
+ end
2429
+ end
2430
+ if match_TagLine(context, token)
2431
+ end_rule(context, :DataTable);
2432
+ end_rule(context, :Step);
2433
+ end_rule(context, :Background);
2434
+ end_rule(context, :Rule);
2435
+ start_rule(context, :Rule);
2436
+ start_rule(context, :RuleHeader);
2437
+ start_rule(context, :Tags);
2438
+ build(context, token);
2439
+ return 22
2148
2440
  end
2149
2441
  if match_ScenarioLine(context, token)
2150
2442
  end_rule(context, :DataTable);
@@ -2153,7 +2445,7 @@ module Gherkin
2153
2445
  start_rule(context, :ScenarioDefinition);
2154
2446
  start_rule(context, :Scenario);
2155
2447
  build(context, token);
2156
- return 31
2448
+ return 32
2157
2449
  end
2158
2450
  if match_RuleLine(context, token)
2159
2451
  end_rule(context, :DataTable);
@@ -2163,100 +2455,110 @@ module Gherkin
2163
2455
  start_rule(context, :Rule);
2164
2456
  start_rule(context, :RuleHeader);
2165
2457
  build(context, token);
2166
- return 22
2458
+ return 23
2167
2459
  end
2168
2460
  if match_Comment(context, token)
2169
2461
  build(context, token);
2170
- return 29
2462
+ return 30
2171
2463
  end
2172
2464
  if match_Empty(context, token)
2173
2465
  build(context, token);
2174
- return 29
2466
+ return 30
2175
2467
  end
2176
-
2177
- state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
2468
+
2469
+ state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
2178
2470
  token.detach
2179
2471
  expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
2180
2472
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2181
2473
  raise error if (stop_at_first_error)
2182
2474
  add_error(context, error)
2183
- return 29
2475
+ return 30
2184
2476
  end
2185
-
2186
2477
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0
2187
- def match_token_at_30(token, context)
2478
+ def match_token_at_31(token, context)
2188
2479
  if match_TagLine(context, token)
2189
2480
  build(context, token);
2190
- return 30
2481
+ return 31
2191
2482
  end
2192
2483
  if match_ScenarioLine(context, token)
2193
2484
  end_rule(context, :Tags);
2194
2485
  start_rule(context, :Scenario);
2195
2486
  build(context, token);
2196
- return 31
2487
+ return 32
2197
2488
  end
2198
2489
  if match_Comment(context, token)
2199
2490
  build(context, token);
2200
- return 30
2491
+ return 31
2201
2492
  end
2202
2493
  if match_Empty(context, token)
2203
2494
  build(context, token);
2204
- return 30
2495
+ return 31
2205
2496
  end
2206
-
2207
- state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"
2497
+
2498
+ state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"
2208
2499
  token.detach
2209
2500
  expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]
2210
2501
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2211
2502
  raise error if (stop_at_first_error)
2212
2503
  add_error(context, error)
2213
- return 30
2504
+ return 31
2214
2505
  end
2215
-
2216
2506
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0
2217
- def match_token_at_31(token, context)
2507
+ def match_token_at_32(token, context)
2218
2508
  if match_EOF(context, token)
2219
2509
  end_rule(context, :Scenario);
2220
2510
  end_rule(context, :ScenarioDefinition);
2221
2511
  end_rule(context, :Rule);
2222
2512
  end_rule(context, :Feature);
2223
2513
  build(context, token);
2224
- return 41
2514
+ return 42
2225
2515
  end
2226
2516
  if match_Empty(context, token)
2227
2517
  build(context, token);
2228
- return 31
2518
+ return 32
2229
2519
  end
2230
2520
  if match_Comment(context, token)
2231
2521
  build(context, token);
2232
- return 33
2522
+ return 34
2233
2523
  end
2234
2524
  if match_StepLine(context, token)
2235
2525
  start_rule(context, :Step);
2236
2526
  build(context, token);
2237
- return 34
2527
+ return 35
2238
2528
  end
2239
2529
  if match_TagLine(context, token)
2240
- if lookahead_0(context, token)
2530
+ if lookahead_1(context, token)
2241
2531
  start_rule(context, :ExamplesDefinition);
2242
2532
  start_rule(context, :Tags);
2243
2533
  build(context, token);
2244
- return 36
2534
+ return 37
2245
2535
  end
2246
2536
  end
2247
2537
  if match_TagLine(context, token)
2538
+ if lookahead_0(context, token)
2248
2539
  end_rule(context, :Scenario);
2249
2540
  end_rule(context, :ScenarioDefinition);
2250
2541
  start_rule(context, :ScenarioDefinition);
2251
2542
  start_rule(context, :Tags);
2252
2543
  build(context, token);
2253
- return 30
2544
+ return 31
2545
+ end
2546
+ end
2547
+ if match_TagLine(context, token)
2548
+ end_rule(context, :Scenario);
2549
+ end_rule(context, :ScenarioDefinition);
2550
+ end_rule(context, :Rule);
2551
+ start_rule(context, :Rule);
2552
+ start_rule(context, :RuleHeader);
2553
+ start_rule(context, :Tags);
2554
+ build(context, token);
2555
+ return 22
2254
2556
  end
2255
2557
  if match_ExamplesLine(context, token)
2256
2558
  start_rule(context, :ExamplesDefinition);
2257
2559
  start_rule(context, :Examples);
2258
2560
  build(context, token);
2259
- return 37
2561
+ return 38
2260
2562
  end
2261
2563
  if match_ScenarioLine(context, token)
2262
2564
  end_rule(context, :Scenario);
@@ -2264,7 +2566,7 @@ module Gherkin
2264
2566
  start_rule(context, :ScenarioDefinition);
2265
2567
  start_rule(context, :Scenario);
2266
2568
  build(context, token);
2267
- return 31
2569
+ return 32
2268
2570
  end
2269
2571
  if match_RuleLine(context, token)
2270
2572
  end_rule(context, :Scenario);
@@ -2273,25 +2575,24 @@ module Gherkin
2273
2575
  start_rule(context, :Rule);
2274
2576
  start_rule(context, :RuleHeader);
2275
2577
  build(context, token);
2276
- return 22
2578
+ return 23
2277
2579
  end
2278
2580
  if match_Other(context, token)
2279
2581
  start_rule(context, :Description);
2280
2582
  build(context, token);
2281
- return 32
2583
+ return 33
2282
2584
  end
2283
-
2284
- state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"
2585
+
2586
+ state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"
2285
2587
  token.detach
2286
2588
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
2287
2589
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2288
2590
  raise error if (stop_at_first_error)
2289
2591
  add_error(context, error)
2290
- return 31
2592
+ return 32
2291
2593
  end
2292
-
2293
2594
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0
2294
- def match_token_at_32(token, context)
2595
+ def match_token_at_33(token, context)
2295
2596
  if match_EOF(context, token)
2296
2597
  end_rule(context, :Description);
2297
2598
  end_rule(context, :Scenario);
@@ -2299,43 +2600,56 @@ module Gherkin
2299
2600
  end_rule(context, :Rule);
2300
2601
  end_rule(context, :Feature);
2301
2602
  build(context, token);
2302
- return 41
2603
+ return 42
2303
2604
  end
2304
2605
  if match_Comment(context, token)
2305
2606
  end_rule(context, :Description);
2306
2607
  build(context, token);
2307
- return 33
2608
+ return 34
2308
2609
  end
2309
2610
  if match_StepLine(context, token)
2310
2611
  end_rule(context, :Description);
2311
2612
  start_rule(context, :Step);
2312
2613
  build(context, token);
2313
- return 34
2614
+ return 35
2314
2615
  end
2315
2616
  if match_TagLine(context, token)
2316
- if lookahead_0(context, token)
2617
+ if lookahead_1(context, token)
2317
2618
  end_rule(context, :Description);
2318
2619
  start_rule(context, :ExamplesDefinition);
2319
2620
  start_rule(context, :Tags);
2320
2621
  build(context, token);
2321
- return 36
2622
+ return 37
2322
2623
  end
2323
2624
  end
2324
2625
  if match_TagLine(context, token)
2626
+ if lookahead_0(context, token)
2325
2627
  end_rule(context, :Description);
2326
2628
  end_rule(context, :Scenario);
2327
2629
  end_rule(context, :ScenarioDefinition);
2328
2630
  start_rule(context, :ScenarioDefinition);
2329
2631
  start_rule(context, :Tags);
2330
2632
  build(context, token);
2331
- return 30
2633
+ return 31
2634
+ end
2635
+ end
2636
+ if match_TagLine(context, token)
2637
+ end_rule(context, :Description);
2638
+ end_rule(context, :Scenario);
2639
+ end_rule(context, :ScenarioDefinition);
2640
+ end_rule(context, :Rule);
2641
+ start_rule(context, :Rule);
2642
+ start_rule(context, :RuleHeader);
2643
+ start_rule(context, :Tags);
2644
+ build(context, token);
2645
+ return 22
2332
2646
  end
2333
2647
  if match_ExamplesLine(context, token)
2334
2648
  end_rule(context, :Description);
2335
2649
  start_rule(context, :ExamplesDefinition);
2336
2650
  start_rule(context, :Examples);
2337
2651
  build(context, token);
2338
- return 37
2652
+ return 38
2339
2653
  end
2340
2654
  if match_ScenarioLine(context, token)
2341
2655
  end_rule(context, :Description);
@@ -2344,7 +2658,7 @@ module Gherkin
2344
2658
  start_rule(context, :ScenarioDefinition);
2345
2659
  start_rule(context, :Scenario);
2346
2660
  build(context, token);
2347
- return 31
2661
+ return 32
2348
2662
  end
2349
2663
  if match_RuleLine(context, token)
2350
2664
  end_rule(context, :Description);
@@ -2354,62 +2668,73 @@ module Gherkin
2354
2668
  start_rule(context, :Rule);
2355
2669
  start_rule(context, :RuleHeader);
2356
2670
  build(context, token);
2357
- return 22
2671
+ return 23
2358
2672
  end
2359
2673
  if match_Other(context, token)
2360
2674
  build(context, token);
2361
- return 32
2675
+ return 33
2362
2676
  end
2363
-
2364
- state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"
2677
+
2678
+ state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"
2365
2679
  token.detach
2366
2680
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
2367
2681
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2368
2682
  raise error if (stop_at_first_error)
2369
2683
  add_error(context, error)
2370
- return 32
2684
+ return 33
2371
2685
  end
2372
-
2373
2686
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0
2374
- def match_token_at_33(token, context)
2687
+ def match_token_at_34(token, context)
2375
2688
  if match_EOF(context, token)
2376
2689
  end_rule(context, :Scenario);
2377
2690
  end_rule(context, :ScenarioDefinition);
2378
2691
  end_rule(context, :Rule);
2379
2692
  end_rule(context, :Feature);
2380
2693
  build(context, token);
2381
- return 41
2694
+ return 42
2382
2695
  end
2383
2696
  if match_Comment(context, token)
2384
2697
  build(context, token);
2385
- return 33
2698
+ return 34
2386
2699
  end
2387
2700
  if match_StepLine(context, token)
2388
2701
  start_rule(context, :Step);
2389
2702
  build(context, token);
2390
- return 34
2703
+ return 35
2391
2704
  end
2392
2705
  if match_TagLine(context, token)
2393
- if lookahead_0(context, token)
2706
+ if lookahead_1(context, token)
2394
2707
  start_rule(context, :ExamplesDefinition);
2395
2708
  start_rule(context, :Tags);
2396
2709
  build(context, token);
2397
- return 36
2710
+ return 37
2398
2711
  end
2399
2712
  end
2400
2713
  if match_TagLine(context, token)
2714
+ if lookahead_0(context, token)
2401
2715
  end_rule(context, :Scenario);
2402
2716
  end_rule(context, :ScenarioDefinition);
2403
2717
  start_rule(context, :ScenarioDefinition);
2404
2718
  start_rule(context, :Tags);
2405
2719
  build(context, token);
2406
- return 30
2720
+ return 31
2721
+ end
2722
+ end
2723
+ if match_TagLine(context, token)
2724
+ end_rule(context, :Scenario);
2725
+ end_rule(context, :ScenarioDefinition);
2726
+ end_rule(context, :Rule);
2727
+ start_rule(context, :Rule);
2728
+ start_rule(context, :RuleHeader);
2729
+ start_rule(context, :Tags);
2730
+ build(context, token);
2731
+ return 22
2407
2732
  end
2408
2733
  if match_ExamplesLine(context, token)
2409
2734
  start_rule(context, :ExamplesDefinition);
2410
2735
  start_rule(context, :Examples);
2411
2736
  build(context, token);
2412
- return 37
2737
+ return 38
2413
2738
  end
2414
2739
  if match_ScenarioLine(context, token)
2415
2740
  end_rule(context, :Scenario);
@@ -2417,7 +2742,7 @@ module Gherkin
2417
2742
  start_rule(context, :ScenarioDefinition);
2418
2743
  start_rule(context, :Scenario);
2419
2744
  build(context, token);
2420
- return 31
2745
+ return 32
2421
2746
  end
2422
2747
  if match_RuleLine(context, token)
2423
2748
  end_rule(context, :Scenario);
@@ -2426,24 +2751,23 @@ module Gherkin
2426
2751
  start_rule(context, :Rule);
2427
2752
  start_rule(context, :RuleHeader);
2428
2753
  build(context, token);
2429
- return 22
2754
+ return 23
2430
2755
  end
2431
2756
  if match_Empty(context, token)
2432
2757
  build(context, token);
2433
- return 33
2758
+ return 34
2434
2759
  end
2435
-
2436
- state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"
2760
+
2761
+ state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"
2437
2762
  token.detach
2438
2763
  expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]
2439
2764
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2440
2765
  raise error if (stop_at_first_error)
2441
2766
  add_error(context, error)
2442
- return 33
2767
+ return 34
2443
2768
  end
2444
-
2445
2769
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0
2446
- def match_token_at_34(token, context)
2770
+ def match_token_at_35(token, context)
2447
2771
  if match_EOF(context, token)
2448
2772
  end_rule(context, :Step);
2449
2773
  end_rule(context, :Scenario);
@@ -2451,48 +2775,61 @@ module Gherkin
2451
2775
  end_rule(context, :Rule);
2452
2776
  end_rule(context, :Feature);
2453
2777
  build(context, token);
2454
- return 41
2778
+ return 42
2455
2779
  end
2456
2780
  if match_TableRow(context, token)
2457
2781
  start_rule(context, :DataTable);
2458
2782
  build(context, token);
2459
- return 35
2783
+ return 36
2460
2784
  end
2461
2785
  if match_DocStringSeparator(context, token)
2462
2786
  start_rule(context, :DocString);
2463
2787
  build(context, token);
2464
- return 42
2788
+ return 43
2465
2789
  end
2466
2790
  if match_StepLine(context, token)
2467
2791
  end_rule(context, :Step);
2468
2792
  start_rule(context, :Step);
2469
2793
  build(context, token);
2470
- return 34
2794
+ return 35
2471
2795
  end
2472
2796
  if match_TagLine(context, token)
2473
- if lookahead_0(context, token)
2797
+ if lookahead_1(context, token)
2474
2798
  end_rule(context, :Step);
2475
2799
  start_rule(context, :ExamplesDefinition);
2476
2800
  start_rule(context, :Tags);
2477
2801
  build(context, token);
2478
- return 36
2802
+ return 37
2479
2803
  end
2480
2804
  end
2481
2805
  if match_TagLine(context, token)
2806
+ if lookahead_0(context, token)
2482
2807
  end_rule(context, :Step);
2483
2808
  end_rule(context, :Scenario);
2484
2809
  end_rule(context, :ScenarioDefinition);
2485
2810
  start_rule(context, :ScenarioDefinition);
2486
2811
  start_rule(context, :Tags);
2487
2812
  build(context, token);
2488
- return 30
2813
+ return 31
2814
+ end
2815
+ end
2816
+ if match_TagLine(context, token)
2817
+ end_rule(context, :Step);
2818
+ end_rule(context, :Scenario);
2819
+ end_rule(context, :ScenarioDefinition);
2820
+ end_rule(context, :Rule);
2821
+ start_rule(context, :Rule);
2822
+ start_rule(context, :RuleHeader);
2823
+ start_rule(context, :Tags);
2824
+ build(context, token);
2825
+ return 22
2489
2826
  end
2490
2827
  if match_ExamplesLine(context, token)
2491
2828
  end_rule(context, :Step);
2492
2829
  start_rule(context, :ExamplesDefinition);
2493
2830
  start_rule(context, :Examples);
2494
2831
  build(context, token);
2495
- return 37
2832
+ return 38
2496
2833
  end
2497
2834
  if match_ScenarioLine(context, token)
2498
2835
  end_rule(context, :Step);
@@ -2501,7 +2838,7 @@ module Gherkin
2501
2838
  start_rule(context, :ScenarioDefinition);
2502
2839
  start_rule(context, :Scenario);
2503
2840
  build(context, token);
2504
- return 31
2841
+ return 32
2505
2842
  end
2506
2843
  if match_RuleLine(context, token)
2507
2844
  end_rule(context, :Step);
@@ -2511,28 +2848,27 @@ module Gherkin
2511
2848
  start_rule(context, :Rule);
2512
2849
  start_rule(context, :RuleHeader);
2513
2850
  build(context, token);
2514
- return 22
2851
+ return 23
2515
2852
  end
2516
2853
  if match_Comment(context, token)
2517
2854
  build(context, token);
2518
- return 34
2855
+ return 35
2519
2856
  end
2520
2857
  if match_Empty(context, token)
2521
2858
  build(context, token);
2522
- return 34
2859
+ return 35
2523
2860
  end
2524
-
2525
- state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"
2861
+
2862
+ state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"
2526
2863
  token.detach
2527
2864
  expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
2528
2865
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2529
2866
  raise error if (stop_at_first_error)
2530
2867
  add_error(context, error)
2531
- return 34
2868
+ return 35
2532
2869
  end
2533
-
2534
2870
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0
2535
- def match_token_at_35(token, context)
2871
+ def match_token_at_36(token, context)
2536
2872
  if match_EOF(context, token)
2537
2873
  end_rule(context, :DataTable);
2538
2874
  end_rule(context, :Step);
@@ -2541,30 +2877,31 @@ module Gherkin
2541
2877
  end_rule(context, :Rule);
2542
2878
  end_rule(context, :Feature);
2543
2879
  build(context, token);
2544
- return 41
2880
+ return 42
2545
2881
  end
2546
2882
  if match_TableRow(context, token)
2547
2883
  build(context, token);
2548
- return 35
2884
+ return 36
2549
2885
  end
2550
2886
  if match_StepLine(context, token)
2551
2887
  end_rule(context, :DataTable);
2552
2888
  end_rule(context, :Step);
2553
2889
  start_rule(context, :Step);
2554
2890
  build(context, token);
2555
- return 34
2891
+ return 35
2556
2892
  end
2557
2893
  if match_TagLine(context, token)
2558
- if lookahead_0(context, token)
2894
+ if lookahead_1(context, token)
2559
2895
  end_rule(context, :DataTable);
2560
2896
  end_rule(context, :Step);
2561
2897
  start_rule(context, :ExamplesDefinition);
2562
2898
  start_rule(context, :Tags);
2563
2899
  build(context, token);
2564
- return 36
2900
+ return 37
2565
2901
  end
2566
2902
  end
2567
2903
  if match_TagLine(context, token)
2904
+ if lookahead_0(context, token)
2568
2905
  end_rule(context, :DataTable);
2569
2906
  end_rule(context, :Step);
2570
2907
  end_rule(context, :Scenario);
@@ -2572,7 +2909,20 @@ module Gherkin
2572
2909
  start_rule(context, :ScenarioDefinition);
2573
2910
  start_rule(context, :Tags);
2574
2911
  build(context, token);
2575
- return 30
2912
+ return 31
2913
+ end
2914
+ end
2915
+ if match_TagLine(context, token)
2916
+ end_rule(context, :DataTable);
2917
+ end_rule(context, :Step);
2918
+ end_rule(context, :Scenario);
2919
+ end_rule(context, :ScenarioDefinition);
2920
+ end_rule(context, :Rule);
2921
+ start_rule(context, :Rule);
2922
+ start_rule(context, :RuleHeader);
2923
+ start_rule(context, :Tags);
2924
+ build(context, token);
2925
+ return 22
2576
2926
  end
2577
2927
  if match_ExamplesLine(context, token)
2578
2928
  end_rule(context, :DataTable);
@@ -2580,7 +2930,7 @@ module Gherkin
2580
2930
  start_rule(context, :ExamplesDefinition);
2581
2931
  start_rule(context, :Examples);
2582
2932
  build(context, token);
2583
- return 37
2933
+ return 38
2584
2934
  end
2585
2935
  if match_ScenarioLine(context, token)
2586
2936
  end_rule(context, :DataTable);
@@ -2590,7 +2940,7 @@ module Gherkin
2590
2940
  start_rule(context, :ScenarioDefinition);
2591
2941
  start_rule(context, :Scenario);
2592
2942
  build(context, token);
2593
- return 31
2943
+ return 32
2594
2944
  end
2595
2945
  if match_RuleLine(context, token)
2596
2946
  end_rule(context, :DataTable);
@@ -2601,58 +2951,56 @@ module Gherkin
2601
2951
  start_rule(context, :Rule);
2602
2952
  start_rule(context, :RuleHeader);
2603
2953
  build(context, token);
2604
- return 22
2954
+ return 23
2605
2955
  end
2606
2956
  if match_Comment(context, token)
2607
2957
  build(context, token);
2608
- return 35
2958
+ return 36
2609
2959
  end
2610
2960
  if match_Empty(context, token)
2611
2961
  build(context, token);
2612
- return 35
2962
+ return 36
2613
2963
  end
2614
-
2615
- state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
2964
+
2965
+ state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"
2616
2966
  token.detach
2617
2967
  expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
2618
2968
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2619
2969
  raise error if (stop_at_first_error)
2620
2970
  add_error(context, error)
2621
- return 35
2971
+ return 36
2622
2972
  end
2623
-
2624
2973
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0
2625
- def match_token_at_36(token, context)
2974
+ def match_token_at_37(token, context)
2626
2975
  if match_TagLine(context, token)
2627
2976
  build(context, token);
2628
- return 36
2977
+ return 37
2629
2978
  end
2630
2979
  if match_ExamplesLine(context, token)
2631
2980
  end_rule(context, :Tags);
2632
2981
  start_rule(context, :Examples);
2633
2982
  build(context, token);
2634
- return 37
2983
+ return 38
2635
2984
  end
2636
2985
  if match_Comment(context, token)
2637
2986
  build(context, token);
2638
- return 36
2987
+ return 37
2639
2988
  end
2640
2989
  if match_Empty(context, token)
2641
2990
  build(context, token);
2642
- return 36
2991
+ return 37
2643
2992
  end
2644
-
2645
- state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"
2993
+
2994
+ state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"
2646
2995
  token.detach
2647
2996
  expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]
2648
2997
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2649
2998
  raise error if (stop_at_first_error)
2650
2999
  add_error(context, error)
2651
- return 36
3000
+ return 37
2652
3001
  end
2653
-
2654
3002
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0
2655
- def match_token_at_37(token, context)
3003
+ def match_token_at_38(token, context)
2656
3004
  if match_EOF(context, token)
2657
3005
  end_rule(context, :Examples);
2658
3006
  end_rule(context, :ExamplesDefinition);
@@ -2661,32 +3009,33 @@ module Gherkin
2661
3009
  end_rule(context, :Rule);
2662
3010
  end_rule(context, :Feature);
2663
3011
  build(context, token);
2664
- return 41
3012
+ return 42
2665
3013
  end
2666
3014
  if match_Empty(context, token)
2667
3015
  build(context, token);
2668
- return 37
3016
+ return 38
2669
3017
  end
2670
3018
  if match_Comment(context, token)
2671
3019
  build(context, token);
2672
- return 39
3020
+ return 40
2673
3021
  end
2674
3022
  if match_TableRow(context, token)
2675
3023
  start_rule(context, :ExamplesTable);
2676
3024
  build(context, token);
2677
- return 40
3025
+ return 41
2678
3026
  end
2679
3027
  if match_TagLine(context, token)
2680
- if lookahead_0(context, token)
3028
+ if lookahead_1(context, token)
2681
3029
  end_rule(context, :Examples);
2682
3030
  end_rule(context, :ExamplesDefinition);
2683
3031
  start_rule(context, :ExamplesDefinition);
2684
3032
  start_rule(context, :Tags);
2685
3033
  build(context, token);
2686
- return 36
3034
+ return 37
2687
3035
  end
2688
3036
  end
2689
3037
  if match_TagLine(context, token)
3038
+ if lookahead_0(context, token)
2690
3039
  end_rule(context, :Examples);
2691
3040
  end_rule(context, :ExamplesDefinition);
2692
3041
  end_rule(context, :Scenario);
@@ -2694,7 +3043,20 @@ module Gherkin
2694
3043
  start_rule(context, :ScenarioDefinition);
2695
3044
  start_rule(context, :Tags);
2696
3045
  build(context, token);
2697
- return 30
3046
+ return 31
3047
+ end
3048
+ end
3049
+ if match_TagLine(context, token)
3050
+ end_rule(context, :Examples);
3051
+ end_rule(context, :ExamplesDefinition);
3052
+ end_rule(context, :Scenario);
3053
+ end_rule(context, :ScenarioDefinition);
3054
+ end_rule(context, :Rule);
3055
+ start_rule(context, :Rule);
3056
+ start_rule(context, :RuleHeader);
3057
+ start_rule(context, :Tags);
3058
+ build(context, token);
3059
+ return 22
2698
3060
  end
2699
3061
  if match_ExamplesLine(context, token)
2700
3062
  end_rule(context, :Examples);
@@ -2702,7 +3064,7 @@ module Gherkin
2702
3064
  start_rule(context, :ExamplesDefinition);
2703
3065
  start_rule(context, :Examples);
2704
3066
  build(context, token);
2705
- return 37
3067
+ return 38
2706
3068
  end
2707
3069
  if match_ScenarioLine(context, token)
2708
3070
  end_rule(context, :Examples);
@@ -2712,7 +3074,7 @@ module Gherkin
2712
3074
  start_rule(context, :ScenarioDefinition);
2713
3075
  start_rule(context, :Scenario);
2714
3076
  build(context, token);
2715
- return 31
3077
+ return 32
2716
3078
  end
2717
3079
  if match_RuleLine(context, token)
2718
3080
  end_rule(context, :Examples);
@@ -2723,25 +3085,24 @@ module Gherkin
2723
3085
  start_rule(context, :Rule);
2724
3086
  start_rule(context, :RuleHeader);
2725
3087
  build(context, token);
2726
- return 22
3088
+ return 23
2727
3089
  end
2728
3090
  if match_Other(context, token)
2729
3091
  start_rule(context, :Description);
2730
3092
  build(context, token);
2731
- return 38
3093
+ return 39
2732
3094
  end
2733
-
2734
- state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"
3095
+
3096
+ state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"
2735
3097
  token.detach
2736
3098
  expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
2737
3099
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2738
3100
  raise error if (stop_at_first_error)
2739
3101
  add_error(context, error)
2740
- return 37
3102
+ return 38
2741
3103
  end
2742
-
2743
3104
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0
2744
- def match_token_at_38(token, context)
3105
+ def match_token_at_39(token, context)
2745
3106
  if match_EOF(context, token)
2746
3107
  end_rule(context, :Description);
2747
3108
  end_rule(context, :Examples);
@@ -2751,31 +3112,32 @@ module Gherkin
2751
3112
  end_rule(context, :Rule);
2752
3113
  end_rule(context, :Feature);
2753
3114
  build(context, token);
2754
- return 41
3115
+ return 42
2755
3116
  end
2756
3117
  if match_Comment(context, token)
2757
3118
  end_rule(context, :Description);
2758
3119
  build(context, token);
2759
- return 39
3120
+ return 40
2760
3121
  end
2761
3122
  if match_TableRow(context, token)
2762
3123
  end_rule(context, :Description);
2763
3124
  start_rule(context, :ExamplesTable);
2764
3125
  build(context, token);
2765
- return 40
3126
+ return 41
2766
3127
  end
2767
3128
  if match_TagLine(context, token)
2768
- if lookahead_0(context, token)
3129
+ if lookahead_1(context, token)
2769
3130
  end_rule(context, :Description);
2770
3131
  end_rule(context, :Examples);
2771
3132
  end_rule(context, :ExamplesDefinition);
2772
3133
  start_rule(context, :ExamplesDefinition);
2773
3134
  start_rule(context, :Tags);
2774
3135
  build(context, token);
2775
- return 36
3136
+ return 37
2776
3137
  end
2777
3138
  end
2778
3139
  if match_TagLine(context, token)
3140
+ if lookahead_0(context, token)
2779
3141
  end_rule(context, :Description);
2780
3142
  end_rule(context, :Examples);
2781
3143
  end_rule(context, :ExamplesDefinition);
@@ -2784,7 +3146,21 @@ module Gherkin
2784
3146
  start_rule(context, :ScenarioDefinition);
2785
3147
  start_rule(context, :Tags);
2786
3148
  build(context, token);
2787
- return 30
3149
+ return 31
3150
+ end
3151
+ end
3152
+ if match_TagLine(context, token)
3153
+ end_rule(context, :Description);
3154
+ end_rule(context, :Examples);
3155
+ end_rule(context, :ExamplesDefinition);
3156
+ end_rule(context, :Scenario);
3157
+ end_rule(context, :ScenarioDefinition);
3158
+ end_rule(context, :Rule);
3159
+ start_rule(context, :Rule);
3160
+ start_rule(context, :RuleHeader);
3161
+ start_rule(context, :Tags);
3162
+ build(context, token);
3163
+ return 22
2788
3164
  end
2789
3165
  if match_ExamplesLine(context, token)
2790
3166
  end_rule(context, :Description);
@@ -2793,7 +3169,7 @@ module Gherkin
2793
3169
  start_rule(context, :ExamplesDefinition);
2794
3170
  start_rule(context, :Examples);
2795
3171
  build(context, token);
2796
- return 37
3172
+ return 38
2797
3173
  end
2798
3174
  if match_ScenarioLine(context, token)
2799
3175
  end_rule(context, :Description);
@@ -2804,7 +3180,7 @@ module Gherkin
2804
3180
  start_rule(context, :ScenarioDefinition);
2805
3181
  start_rule(context, :Scenario);
2806
3182
  build(context, token);
2807
- return 31
3183
+ return 32
2808
3184
  end
2809
3185
  if match_RuleLine(context, token)
2810
3186
  end_rule(context, :Description);
@@ -2816,24 +3192,23 @@ module Gherkin
2816
3192
  start_rule(context, :Rule);
2817
3193
  start_rule(context, :RuleHeader);
2818
3194
  build(context, token);
2819
- return 22
3195
+ return 23
2820
3196
  end
2821
3197
  if match_Other(context, token)
2822
3198
  build(context, token);
2823
- return 38
3199
+ return 39
2824
3200
  end
2825
-
2826
- state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"
3201
+
3202
+ state_comment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"
2827
3203
  token.detach
2828
3204
  expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]
2829
3205
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2830
3206
  raise error if (stop_at_first_error)
2831
3207
  add_error(context, error)
2832
- return 38
3208
+ return 39
2833
3209
  end
2834
-
2835
3210
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0
2836
- def match_token_at_39(token, context)
3211
+ def match_token_at_40(token, context)
2837
3212
  if match_EOF(context, token)
2838
3213
  end_rule(context, :Examples);
2839
3214
  end_rule(context, :ExamplesDefinition);
@@ -2842,28 +3217,29 @@ module Gherkin
2842
3217
  end_rule(context, :Rule);
2843
3218
  end_rule(context, :Feature);
2844
3219
  build(context, token);
2845
- return 41
3220
+ return 42
2846
3221
  end
2847
3222
  if match_Comment(context, token)
2848
3223
  build(context, token);
2849
- return 39
3224
+ return 40
2850
3225
  end
2851
3226
  if match_TableRow(context, token)
2852
3227
  start_rule(context, :ExamplesTable);
2853
3228
  build(context, token);
2854
- return 40
3229
+ return 41
2855
3230
  end
2856
3231
  if match_TagLine(context, token)
2857
- if lookahead_0(context, token)
3232
+ if lookahead_1(context, token)
2858
3233
  end_rule(context, :Examples);
2859
3234
  end_rule(context, :ExamplesDefinition);
2860
3235
  start_rule(context, :ExamplesDefinition);
2861
3236
  start_rule(context, :Tags);
2862
3237
  build(context, token);
2863
- return 36
3238
+ return 37
2864
3239
  end
2865
3240
  end
2866
3241
  if match_TagLine(context, token)
3242
+ if lookahead_0(context, token)
2867
3243
  end_rule(context, :Examples);
2868
3244
  end_rule(context, :ExamplesDefinition);
2869
3245
  end_rule(context, :Scenario);
@@ -2871,7 +3247,20 @@ module Gherkin
2871
3247
  start_rule(context, :ScenarioDefinition);
2872
3248
  start_rule(context, :Tags);
2873
3249
  build(context, token);
2874
- return 30
3250
+ return 31
3251
+ end
3252
+ end
3253
+ if match_TagLine(context, token)
3254
+ end_rule(context, :Examples);
3255
+ end_rule(context, :ExamplesDefinition);
3256
+ end_rule(context, :Scenario);
3257
+ end_rule(context, :ScenarioDefinition);
3258
+ end_rule(context, :Rule);
3259
+ start_rule(context, :Rule);
3260
+ start_rule(context, :RuleHeader);
3261
+ start_rule(context, :Tags);
3262
+ build(context, token);
3263
+ return 22
2875
3264
  end
2876
3265
  if match_ExamplesLine(context, token)
2877
3266
  end_rule(context, :Examples);
@@ -2879,7 +3268,7 @@ module Gherkin
2879
3268
  start_rule(context, :ExamplesDefinition);
2880
3269
  start_rule(context, :Examples);
2881
3270
  build(context, token);
2882
- return 37
3271
+ return 38
2883
3272
  end
2884
3273
  if match_ScenarioLine(context, token)
2885
3274
  end_rule(context, :Examples);
@@ -2889,7 +3278,7 @@ module Gherkin
2889
3278
  start_rule(context, :ScenarioDefinition);
2890
3279
  start_rule(context, :Scenario);
2891
3280
  build(context, token);
2892
- return 31
3281
+ return 32
2893
3282
  end
2894
3283
  if match_RuleLine(context, token)
2895
3284
  end_rule(context, :Examples);
@@ -2900,24 +3289,23 @@ module Gherkin
2900
3289
  start_rule(context, :Rule);
2901
3290
  start_rule(context, :RuleHeader);
2902
3291
  build(context, token);
2903
- return 22
3292
+ return 23
2904
3293
  end
2905
3294
  if match_Empty(context, token)
2906
3295
  build(context, token);
2907
- return 39
3296
+ return 40
2908
3297
  end
2909
-
2910
- state_comment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"
3298
+
3299
+ state_comment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"
2911
3300
  token.detach
2912
3301
  expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]
2913
3302
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
2914
3303
  raise error if (stop_at_first_error)
2915
3304
  add_error(context, error)
2916
- return 39
3305
+ return 40
2917
3306
  end
2918
-
2919
3307
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0
2920
- def match_token_at_40(token, context)
3308
+ def match_token_at_41(token, context)
2921
3309
  if match_EOF(context, token)
2922
3310
  end_rule(context, :ExamplesTable);
2923
3311
  end_rule(context, :Examples);
@@ -2927,24 +3315,25 @@ module Gherkin
2927
3315
  end_rule(context, :Rule);
2928
3316
  end_rule(context, :Feature);
2929
3317
  build(context, token);
2930
- return 41
3318
+ return 42
2931
3319
  end
2932
3320
  if match_TableRow(context, token)
2933
3321
  build(context, token);
2934
- return 40
3322
+ return 41
2935
3323
  end
2936
3324
  if match_TagLine(context, token)
2937
- if lookahead_0(context, token)
3325
+ if lookahead_1(context, token)
2938
3326
  end_rule(context, :ExamplesTable);
2939
3327
  end_rule(context, :Examples);
2940
3328
  end_rule(context, :ExamplesDefinition);
2941
3329
  start_rule(context, :ExamplesDefinition);
2942
3330
  start_rule(context, :Tags);
2943
3331
  build(context, token);
2944
- return 36
3332
+ return 37
2945
3333
  end
2946
3334
  end
2947
3335
  if match_TagLine(context, token)
3336
+ if lookahead_0(context, token)
2948
3337
  end_rule(context, :ExamplesTable);
2949
3338
  end_rule(context, :Examples);
2950
3339
  end_rule(context, :ExamplesDefinition);
@@ -2953,7 +3342,21 @@ module Gherkin
2953
3342
  start_rule(context, :ScenarioDefinition);
2954
3343
  start_rule(context, :Tags);
2955
3344
  build(context, token);
2956
- return 30
3345
+ return 31
3346
+ end
3347
+ end
3348
+ if match_TagLine(context, token)
3349
+ end_rule(context, :ExamplesTable);
3350
+ end_rule(context, :Examples);
3351
+ end_rule(context, :ExamplesDefinition);
3352
+ end_rule(context, :Scenario);
3353
+ end_rule(context, :ScenarioDefinition);
3354
+ end_rule(context, :Rule);
3355
+ start_rule(context, :Rule);
3356
+ start_rule(context, :RuleHeader);
3357
+ start_rule(context, :Tags);
3358
+ build(context, token);
3359
+ return 22
2957
3360
  end
2958
3361
  if match_ExamplesLine(context, token)
2959
3362
  end_rule(context, :ExamplesTable);
@@ -2962,7 +3365,7 @@ module Gherkin
2962
3365
  start_rule(context, :ExamplesDefinition);
2963
3366
  start_rule(context, :Examples);
2964
3367
  build(context, token);
2965
- return 37
3368
+ return 38
2966
3369
  end
2967
3370
  if match_ScenarioLine(context, token)
2968
3371
  end_rule(context, :ExamplesTable);
@@ -2973,7 +3376,7 @@ module Gherkin
2973
3376
  start_rule(context, :ScenarioDefinition);
2974
3377
  start_rule(context, :Scenario);
2975
3378
  build(context, token);
2976
- return 31
3379
+ return 32
2977
3380
  end
2978
3381
  if match_RuleLine(context, token)
2979
3382
  end_rule(context, :ExamplesTable);
@@ -2985,48 +3388,46 @@ module Gherkin
2985
3388
  start_rule(context, :Rule);
2986
3389
  start_rule(context, :RuleHeader);
2987
3390
  build(context, token);
2988
- return 22
3391
+ return 23
2989
3392
  end
2990
3393
  if match_Comment(context, token)
2991
3394
  build(context, token);
2992
- return 40
3395
+ return 41
2993
3396
  end
2994
3397
  if match_Empty(context, token)
2995
3398
  build(context, token);
2996
- return 40
3399
+ return 41
2997
3400
  end
2998
-
2999
- state_comment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"
3401
+
3402
+ state_comment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"
3000
3403
  token.detach
3001
3404
  expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
3002
3405
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3003
3406
  raise error if (stop_at_first_error)
3004
3407
  add_error(context, error)
3005
- return 40
3408
+ return 41
3006
3409
  end
3007
-
3008
3410
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
3009
- def match_token_at_42(token, context)
3411
+ def match_token_at_43(token, context)
3010
3412
  if match_DocStringSeparator(context, token)
3011
3413
  build(context, token);
3012
- return 43
3414
+ return 44
3013
3415
  end
3014
3416
  if match_Other(context, token)
3015
3417
  build(context, token);
3016
- return 42
3418
+ return 43
3017
3419
  end
3018
-
3019
- state_comment = "State: 42 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3420
+
3421
+ state_comment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3020
3422
  token.detach
3021
3423
  expected_tokens = ["#DocStringSeparator", "#Other"]
3022
3424
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3023
3425
  raise error if (stop_at_first_error)
3024
3426
  add_error(context, error)
3025
- return 42
3427
+ return 43
3026
3428
  end
3027
-
3028
3429
  # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
3029
- def match_token_at_43(token, context)
3430
+ def match_token_at_44(token, context)
3030
3431
  if match_EOF(context, token)
3031
3432
  end_rule(context, :DocString);
3032
3433
  end_rule(context, :Step);
@@ -3035,26 +3436,27 @@ module Gherkin
3035
3436
  end_rule(context, :Rule);
3036
3437
  end_rule(context, :Feature);
3037
3438
  build(context, token);
3038
- return 41
3439
+ return 42
3039
3440
  end
3040
3441
  if match_StepLine(context, token)
3041
3442
  end_rule(context, :DocString);
3042
3443
  end_rule(context, :Step);
3043
3444
  start_rule(context, :Step);
3044
3445
  build(context, token);
3045
- return 34
3446
+ return 35
3046
3447
  end
3047
3448
  if match_TagLine(context, token)
3048
- if lookahead_0(context, token)
3449
+ if lookahead_1(context, token)
3049
3450
  end_rule(context, :DocString);
3050
3451
  end_rule(context, :Step);
3051
3452
  start_rule(context, :ExamplesDefinition);
3052
3453
  start_rule(context, :Tags);
3053
3454
  build(context, token);
3054
- return 36
3455
+ return 37
3055
3456
  end
3056
3457
  end
3057
3458
  if match_TagLine(context, token)
3459
+ if lookahead_0(context, token)
3058
3460
  end_rule(context, :DocString);
3059
3461
  end_rule(context, :Step);
3060
3462
  end_rule(context, :Scenario);
@@ -3062,7 +3464,20 @@ module Gherkin
3062
3464
  start_rule(context, :ScenarioDefinition);
3063
3465
  start_rule(context, :Tags);
3064
3466
  build(context, token);
3065
- return 30
3467
+ return 31
3468
+ end
3469
+ end
3470
+ if match_TagLine(context, token)
3471
+ end_rule(context, :DocString);
3472
+ end_rule(context, :Step);
3473
+ end_rule(context, :Scenario);
3474
+ end_rule(context, :ScenarioDefinition);
3475
+ end_rule(context, :Rule);
3476
+ start_rule(context, :Rule);
3477
+ start_rule(context, :RuleHeader);
3478
+ start_rule(context, :Tags);
3479
+ build(context, token);
3480
+ return 22
3066
3481
  end
3067
3482
  if match_ExamplesLine(context, token)
3068
3483
  end_rule(context, :DocString);
@@ -3070,7 +3485,7 @@ module Gherkin
3070
3485
  start_rule(context, :ExamplesDefinition);
3071
3486
  start_rule(context, :Examples);
3072
3487
  build(context, token);
3073
- return 37
3488
+ return 38
3074
3489
  end
3075
3490
  if match_ScenarioLine(context, token)
3076
3491
  end_rule(context, :DocString);
@@ -3080,7 +3495,7 @@ module Gherkin
3080
3495
  start_rule(context, :ScenarioDefinition);
3081
3496
  start_rule(context, :Scenario);
3082
3497
  build(context, token);
3083
- return 31
3498
+ return 32
3084
3499
  end
3085
3500
  if match_RuleLine(context, token)
3086
3501
  end_rule(context, :DocString);
@@ -3091,48 +3506,46 @@ module Gherkin
3091
3506
  start_rule(context, :Rule);
3092
3507
  start_rule(context, :RuleHeader);
3093
3508
  build(context, token);
3094
- return 22
3509
+ return 23
3095
3510
  end
3096
3511
  if match_Comment(context, token)
3097
3512
  build(context, token);
3098
- return 43
3513
+ return 44
3099
3514
  end
3100
3515
  if match_Empty(context, token)
3101
3516
  build(context, token);
3102
- return 43
3517
+ return 44
3103
3518
  end
3104
-
3105
- state_comment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3519
+
3520
+ state_comment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3106
3521
  token.detach
3107
3522
  expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
3108
3523
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3109
3524
  raise error if (stop_at_first_error)
3110
3525
  add_error(context, error)
3111
- return 43
3526
+ return 44
3112
3527
  end
3113
-
3114
3528
  # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
3115
- def match_token_at_44(token, context)
3529
+ def match_token_at_45(token, context)
3116
3530
  if match_DocStringSeparator(context, token)
3117
3531
  build(context, token);
3118
- return 45
3532
+ return 46
3119
3533
  end
3120
3534
  if match_Other(context, token)
3121
3535
  build(context, token);
3122
- return 44
3536
+ return 45
3123
3537
  end
3124
-
3125
- state_comment = "State: 44 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3538
+
3539
+ state_comment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3126
3540
  token.detach
3127
3541
  expected_tokens = ["#DocStringSeparator", "#Other"]
3128
3542
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3129
3543
  raise error if (stop_at_first_error)
3130
3544
  add_error(context, error)
3131
- return 44
3545
+ return 45
3132
3546
  end
3133
-
3134
3547
  # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
3135
- def match_token_at_45(token, context)
3548
+ def match_token_at_46(token, context)
3136
3549
  if match_EOF(context, token)
3137
3550
  end_rule(context, :DocString);
3138
3551
  end_rule(context, :Step);
@@ -3140,23 +3553,36 @@ module Gherkin
3140
3553
  end_rule(context, :Rule);
3141
3554
  end_rule(context, :Feature);
3142
3555
  build(context, token);
3143
- return 41
3556
+ return 42
3144
3557
  end
3145
3558
  if match_StepLine(context, token)
3146
3559
  end_rule(context, :DocString);
3147
3560
  end_rule(context, :Step);
3148
3561
  start_rule(context, :Step);
3149
3562
  build(context, token);
3150
- return 28
3563
+ return 29
3151
3564
  end
3152
3565
  if match_TagLine(context, token)
3566
+ if lookahead_0(context, token)
3153
3567
  end_rule(context, :DocString);
3154
3568
  end_rule(context, :Step);
3155
3569
  end_rule(context, :Background);
3156
3570
  start_rule(context, :ScenarioDefinition);
3157
3571
  start_rule(context, :Tags);
3158
3572
  build(context, token);
3159
- return 30
3573
+ return 31
3574
+ end
3575
+ end
3576
+ if match_TagLine(context, token)
3577
+ end_rule(context, :DocString);
3578
+ end_rule(context, :Step);
3579
+ end_rule(context, :Background);
3580
+ end_rule(context, :Rule);
3581
+ start_rule(context, :Rule);
3582
+ start_rule(context, :RuleHeader);
3583
+ start_rule(context, :Tags);
3584
+ build(context, token);
3585
+ return 22
3160
3586
  end
3161
3587
  if match_ScenarioLine(context, token)
3162
3588
  end_rule(context, :DocString);
@@ -3165,7 +3591,7 @@ module Gherkin
3165
3591
  start_rule(context, :ScenarioDefinition);
3166
3592
  start_rule(context, :Scenario);
3167
3593
  build(context, token);
3168
- return 31
3594
+ return 32
3169
3595
  end
3170
3596
  if match_RuleLine(context, token)
3171
3597
  end_rule(context, :DocString);
@@ -3175,48 +3601,46 @@ module Gherkin
3175
3601
  start_rule(context, :Rule);
3176
3602
  start_rule(context, :RuleHeader);
3177
3603
  build(context, token);
3178
- return 22
3604
+ return 23
3179
3605
  end
3180
3606
  if match_Comment(context, token)
3181
3607
  build(context, token);
3182
- return 45
3608
+ return 46
3183
3609
  end
3184
3610
  if match_Empty(context, token)
3185
3611
  build(context, token);
3186
- return 45
3612
+ return 46
3187
3613
  end
3188
-
3189
- state_comment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3614
+
3615
+ state_comment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3190
3616
  token.detach
3191
3617
  expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
3192
3618
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3193
3619
  raise error if (stop_at_first_error)
3194
3620
  add_error(context, error)
3195
- return 45
3621
+ return 46
3196
3622
  end
3197
-
3198
3623
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
3199
- def match_token_at_46(token, context)
3624
+ def match_token_at_47(token, context)
3200
3625
  if match_DocStringSeparator(context, token)
3201
3626
  build(context, token);
3202
- return 47
3627
+ return 48
3203
3628
  end
3204
3629
  if match_Other(context, token)
3205
3630
  build(context, token);
3206
- return 46
3631
+ return 47
3207
3632
  end
3208
-
3209
- state_comment = "State: 46 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3633
+
3634
+ state_comment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3210
3635
  token.detach
3211
3636
  expected_tokens = ["#DocStringSeparator", "#Other"]
3212
3637
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3213
3638
  raise error if (stop_at_first_error)
3214
3639
  add_error(context, error)
3215
- return 46
3640
+ return 47
3216
3641
  end
3217
-
3218
3642
  # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
3219
- def match_token_at_47(token, context)
3643
+ def match_token_at_48(token, context)
3220
3644
  if match_EOF(context, token)
3221
3645
  end_rule(context, :DocString);
3222
3646
  end_rule(context, :Step);
@@ -3224,7 +3648,7 @@ module Gherkin
3224
3648
  end_rule(context, :ScenarioDefinition);
3225
3649
  end_rule(context, :Feature);
3226
3650
  build(context, token);
3227
- return 41
3651
+ return 42
3228
3652
  end
3229
3653
  if match_StepLine(context, token)
3230
3654
  end_rule(context, :DocString);
@@ -3234,7 +3658,7 @@ module Gherkin
3234
3658
  return 15
3235
3659
  end
3236
3660
  if match_TagLine(context, token)
3237
- if lookahead_0(context, token)
3661
+ if lookahead_1(context, token)
3238
3662
  end_rule(context, :DocString);
3239
3663
  end_rule(context, :Step);
3240
3664
  start_rule(context, :ExamplesDefinition);
@@ -3244,6 +3668,7 @@ module Gherkin
3244
3668
  end
3245
3669
  end
3246
3670
  if match_TagLine(context, token)
3671
+ if lookahead_0(context, token)
3247
3672
  end_rule(context, :DocString);
3248
3673
  end_rule(context, :Step);
3249
3674
  end_rule(context, :Scenario);
@@ -3252,6 +3677,18 @@ module Gherkin
3252
3677
  start_rule(context, :Tags);
3253
3678
  build(context, token);
3254
3679
  return 11
3680
+ end
3681
+ end
3682
+ if match_TagLine(context, token)
3683
+ end_rule(context, :DocString);
3684
+ end_rule(context, :Step);
3685
+ end_rule(context, :Scenario);
3686
+ end_rule(context, :ScenarioDefinition);
3687
+ start_rule(context, :Rule);
3688
+ start_rule(context, :RuleHeader);
3689
+ start_rule(context, :Tags);
3690
+ build(context, token);
3691
+ return 22
3255
3692
  end
3256
3693
  if match_ExamplesLine(context, token)
3257
3694
  end_rule(context, :DocString);
@@ -3279,55 +3716,53 @@ module Gherkin
3279
3716
  start_rule(context, :Rule);
3280
3717
  start_rule(context, :RuleHeader);
3281
3718
  build(context, token);
3282
- return 22
3719
+ return 23
3283
3720
  end
3284
3721
  if match_Comment(context, token)
3285
3722
  build(context, token);
3286
- return 47
3723
+ return 48
3287
3724
  end
3288
3725
  if match_Empty(context, token)
3289
3726
  build(context, token);
3290
- return 47
3727
+ return 48
3291
3728
  end
3292
-
3293
- state_comment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3729
+
3730
+ state_comment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3294
3731
  token.detach
3295
3732
  expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
3296
3733
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3297
3734
  raise error if (stop_at_first_error)
3298
3735
  add_error(context, error)
3299
- return 47
3736
+ return 48
3300
3737
  end
3301
-
3302
3738
  # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0
3303
- def match_token_at_48(token, context)
3739
+ def match_token_at_49(token, context)
3304
3740
  if match_DocStringSeparator(context, token)
3305
3741
  build(context, token);
3306
- return 49
3742
+ return 50
3307
3743
  end
3308
3744
  if match_Other(context, token)
3309
3745
  build(context, token);
3310
- return 48
3746
+ return 49
3311
3747
  end
3312
-
3313
- state_comment = "State: 48 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3748
+
3749
+ state_comment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"
3314
3750
  token.detach
3315
3751
  expected_tokens = ["#DocStringSeparator", "#Other"]
3316
3752
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3317
3753
  raise error if (stop_at_first_error)
3318
3754
  add_error(context, error)
3319
- return 48
3755
+ return 49
3320
3756
  end
3321
-
3322
3757
  # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0
3323
- def match_token_at_49(token, context)
3758
+ def match_token_at_50(token, context)
3324
3759
  if match_EOF(context, token)
3325
3760
  end_rule(context, :DocString);
3326
3761
  end_rule(context, :Step);
3327
3762
  end_rule(context, :Background);
3328
3763
  end_rule(context, :Feature);
3329
3764
  build(context, token);
3330
- return 41
3765
+ return 42
3331
3766
  end
3332
3767
  if match_StepLine(context, token)
3333
3768
  end_rule(context, :DocString);
@@ -3337,6 +3772,7 @@ module Gherkin
3337
3772
  return 9
3338
3773
  end
3339
3774
  if match_TagLine(context, token)
3775
+ if lookahead_0(context, token)
3340
3776
  end_rule(context, :DocString);
3341
3777
  end_rule(context, :Step);
3342
3778
  end_rule(context, :Background);
@@ -3344,6 +3780,17 @@ module Gherkin
3344
3780
  start_rule(context, :Tags);
3345
3781
  build(context, token);
3346
3782
  return 11
3783
+ end
3784
+ end
3785
+ if match_TagLine(context, token)
3786
+ end_rule(context, :DocString);
3787
+ end_rule(context, :Step);
3788
+ end_rule(context, :Background);
3789
+ start_rule(context, :Rule);
3790
+ start_rule(context, :RuleHeader);
3791
+ start_rule(context, :Tags);
3792
+ build(context, token);
3793
+ return 22
3347
3794
  end
3348
3795
  if match_ScenarioLine(context, token)
3349
3796
  end_rule(context, :DocString);
@@ -3361,27 +3808,26 @@ module Gherkin
3361
3808
  start_rule(context, :Rule);
3362
3809
  start_rule(context, :RuleHeader);
3363
3810
  build(context, token);
3364
- return 22
3811
+ return 23
3365
3812
  end
3366
3813
  if match_Comment(context, token)
3367
3814
  build(context, token);
3368
- return 49
3815
+ return 50
3369
3816
  end
3370
3817
  if match_Empty(context, token)
3371
3818
  build(context, token);
3372
- return 49
3819
+ return 50
3373
3820
  end
3374
-
3375
- state_comment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3821
+
3822
+ state_comment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"
3376
3823
  token.detach
3377
3824
  expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]
3378
3825
  error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
3379
3826
  raise error if (stop_at_first_error)
3380
3827
  add_error(context, error)
3381
- return 49
3828
+ return 50
3382
3829
  end
3383
3830
 
3384
-
3385
3831
  def lookahead_0(context, currentToken)
3386
3832
  currentToken.detach
3387
3833
  token = nil
@@ -3392,7 +3838,7 @@ module Gherkin
3392
3838
  token.detach
3393
3839
  queue.push(token)
3394
3840
 
3395
- if (false || match_ExamplesLine(context, token))
3841
+ if (false || match_ScenarioLine(context, token))
3396
3842
  match = true
3397
3843
  break
3398
3844
  end
@@ -3405,7 +3851,29 @@ module Gherkin
3405
3851
  return match
3406
3852
  end
3407
3853
 
3854
+ def lookahead_1(context, currentToken)
3855
+ currentToken.detach
3856
+ token = nil
3857
+ queue = []
3858
+ match = false
3859
+ loop do
3860
+ token = read_token(context)
3861
+ token.detach
3862
+ queue.push(token)
3863
+
3864
+ if (false || match_ExamplesLine(context, token))
3865
+ match = true
3866
+ break
3867
+ end
3408
3868
 
3869
+ break unless (false || match_Empty(context, token)|| match_Comment(context, token)|| match_TagLine(context, token))
3870
+ end
3871
+
3872
+ context.token_queue.concat(queue)
3873
+
3874
+ return match
3875
+ end
3876
+
3409
3877
  private
3410
3878
 
3411
3879
  def handle_ast_error(context, &action)