cucumber-gherkin 15.0.2 → 20.0.1

Sign up to get free protection for your applications and to get access to all the features.
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)