gherkin 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/.rsync +5 -0
  3. data/.travis.yml +16 -1
  4. data/Makefile +31 -36
  5. data/berp/CommandLine.dll +0 -0
  6. data/berp/RazorEngine.dll +0 -0
  7. data/berp/RazorEngine.pdb +0 -0
  8. data/berp/System.Web.Razor.dll +0 -0
  9. data/berp/berp.exe +0 -0
  10. data/berp/berp.pdb +0 -0
  11. data/bin/gherkin +34 -0
  12. data/bin/gherkin-generate-tokens +1 -1
  13. data/gherkin-languages.json +3191 -0
  14. data/gherkin.berp +46 -0
  15. data/gherkin.gemspec +6 -6
  16. data/lib/gherkin/gherkin-languages.json +225 -3
  17. data/lib/gherkin/pickles/compiler.rb +31 -31
  18. data/lib/gherkin/stream/gherkin_events.rb +69 -0
  19. data/lib/gherkin/stream/source_events.rb +26 -0
  20. data/lib/gherkin/token_scanner.rb +1 -1
  21. data/testdata/bad/inconsistent_cell_count.feature +14 -0
  22. data/testdata/bad/inconsistent_cell_count.feature.errors.ndjson +2 -0
  23. data/testdata/bad/invalid_language.feature +6 -0
  24. data/testdata/bad/invalid_language.feature.errors.ndjson +1 -0
  25. data/testdata/bad/multiple_parser_errors.feature +9 -0
  26. data/testdata/bad/multiple_parser_errors.feature.errors.ndjson +2 -0
  27. data/testdata/bad/not_gherkin.feature +2 -0
  28. data/testdata/bad/not_gherkin.feature.errors.ndjson +1 -0
  29. data/testdata/bad/single_parser_error.feature +7 -0
  30. data/testdata/bad/single_parser_error.feature.errors.ndjson +1 -0
  31. data/testdata/bad/unexpected_eof.feature +6 -0
  32. data/testdata/bad/unexpected_eof.feature.errors.ndjson +1 -0
  33. data/testdata/good/background.feature +8 -0
  34. data/testdata/good/background.feature.ast.ndjson +1 -0
  35. data/testdata/good/background.feature.pickles.ndjson +1 -0
  36. data/testdata/good/background.feature.source.ndjson +1 -0
  37. data/testdata/good/background.feature.tokens +9 -0
  38. data/testdata/good/datatables.feature +18 -0
  39. data/testdata/good/datatables.feature.ast.ndjson +1 -0
  40. data/testdata/good/datatables.feature.pickles.ndjson +1 -0
  41. data/testdata/good/datatables.feature.source.ndjson +1 -0
  42. data/testdata/good/datatables.feature.tokens +19 -0
  43. data/testdata/good/descriptions.feature +52 -0
  44. data/testdata/good/descriptions.feature.ast.ndjson +1 -0
  45. data/testdata/good/descriptions.feature.pickles.ndjson +8 -0
  46. data/testdata/good/descriptions.feature.source.ndjson +1 -0
  47. data/testdata/good/descriptions.feature.tokens +53 -0
  48. data/testdata/good/docstrings.feature +43 -0
  49. data/testdata/good/docstrings.feature.ast.ndjson +1 -0
  50. data/testdata/good/docstrings.feature.pickles.ndjson +1 -0
  51. data/testdata/good/docstrings.feature.source.ndjson +1 -0
  52. data/testdata/good/docstrings.feature.tokens +44 -0
  53. data/testdata/good/empty.feature +0 -0
  54. data/testdata/good/empty.feature.ast.ndjson +1 -0
  55. data/testdata/good/empty.feature.pickles.ndjson +0 -0
  56. data/testdata/good/empty.feature.source.ndjson +1 -0
  57. data/testdata/good/empty.feature.tokens +1 -0
  58. data/testdata/good/escaped_pipes.feature +11 -0
  59. data/testdata/good/escaped_pipes.feature.ast.ndjson +1 -0
  60. data/testdata/good/escaped_pipes.feature.pickles.ndjson +1 -0
  61. data/testdata/good/escaped_pipes.feature.source.ndjson +1 -0
  62. data/testdata/good/escaped_pipes.feature.tokens +14 -0
  63. data/testdata/good/example_token_multiple.feature +8 -0
  64. data/testdata/good/example_token_multiple.feature.ast.ndjson +1 -0
  65. data/testdata/good/example_token_multiple.feature.pickles.ndjson +1 -0
  66. data/testdata/good/example_token_multiple.feature.source.ndjson +1 -0
  67. data/testdata/good/example_token_multiple.feature.tokens +9 -0
  68. data/testdata/good/example_tokens_everywhere.feature +14 -0
  69. data/testdata/good/example_tokens_everywhere.feature.ast.ndjson +1 -0
  70. data/testdata/good/example_tokens_everywhere.feature.pickles.ndjson +2 -0
  71. data/testdata/good/example_tokens_everywhere.feature.source.ndjson +1 -0
  72. data/testdata/good/example_tokens_everywhere.feature.tokens +15 -0
  73. data/testdata/good/i18n_emoji.feature +5 -0
  74. data/testdata/good/i18n_emoji.feature.ast.ndjson +1 -0
  75. data/testdata/good/i18n_emoji.feature.pickles.ndjson +1 -0
  76. data/testdata/good/i18n_emoji.feature.source.ndjson +1 -0
  77. data/testdata/good/i18n_emoji.feature.tokens +6 -0
  78. data/testdata/good/i18n_fr.feature +63 -0
  79. data/testdata/good/i18n_fr.feature.ast.ndjson +1 -0
  80. data/testdata/good/i18n_fr.feature.pickles.ndjson +11 -0
  81. data/testdata/good/i18n_fr.feature.source.ndjson +1 -0
  82. data/testdata/good/i18n_fr.feature.tokens +64 -0
  83. data/testdata/good/i18n_no.feature +7 -0
  84. data/testdata/good/i18n_no.feature.ast.ndjson +1 -0
  85. data/testdata/good/i18n_no.feature.pickles.ndjson +1 -0
  86. data/testdata/good/i18n_no.feature.source.ndjson +1 -0
  87. data/testdata/good/i18n_no.feature.tokens +8 -0
  88. data/testdata/good/incomplete_background_1.feature +6 -0
  89. data/testdata/good/incomplete_background_1.feature.ast.ndjson +1 -0
  90. data/testdata/good/incomplete_background_1.feature.pickles.ndjson +1 -0
  91. data/testdata/good/incomplete_background_1.feature.source.ndjson +1 -0
  92. data/testdata/good/incomplete_background_1.feature.tokens +7 -0
  93. data/testdata/good/incomplete_background_2.feature +7 -0
  94. data/testdata/good/incomplete_background_2.feature.ast.ndjson +1 -0
  95. data/testdata/good/incomplete_background_2.feature.pickles.ndjson +1 -0
  96. data/testdata/good/incomplete_background_2.feature.source.ndjson +1 -0
  97. data/testdata/good/incomplete_background_2.feature.tokens +8 -0
  98. data/testdata/good/incomplete_feature_1.feature +2 -0
  99. data/testdata/good/incomplete_feature_1.feature.ast.ndjson +1 -0
  100. data/testdata/good/incomplete_feature_1.feature.pickles.ndjson +0 -0
  101. data/testdata/good/incomplete_feature_1.feature.source.ndjson +1 -0
  102. data/testdata/good/incomplete_feature_1.feature.tokens +3 -0
  103. data/testdata/good/incomplete_feature_2.feature +1 -0
  104. data/testdata/good/incomplete_feature_2.feature.ast.ndjson +1 -0
  105. data/testdata/good/incomplete_feature_2.feature.pickles.ndjson +0 -0
  106. data/testdata/good/incomplete_feature_2.feature.source.ndjson +1 -0
  107. data/testdata/good/incomplete_feature_2.feature.tokens +2 -0
  108. data/testdata/good/incomplete_feature_3.feature +1 -0
  109. data/testdata/good/incomplete_feature_3.feature.ast.ndjson +1 -0
  110. data/testdata/good/incomplete_feature_3.feature.pickles.ndjson +0 -0
  111. data/testdata/good/incomplete_feature_3.feature.source.ndjson +1 -0
  112. data/testdata/good/incomplete_feature_3.feature.tokens +2 -0
  113. data/testdata/good/incomplete_scenario.feature +6 -0
  114. data/testdata/good/incomplete_scenario.feature.ast.ndjson +1 -0
  115. data/testdata/good/incomplete_scenario.feature.pickles.ndjson +0 -0
  116. data/testdata/good/incomplete_scenario.feature.source.ndjson +1 -0
  117. data/testdata/good/incomplete_scenario.feature.tokens +7 -0
  118. data/testdata/good/incomplete_scenario_outline.feature +24 -0
  119. data/testdata/good/incomplete_scenario_outline.feature.ast.ndjson +1 -0
  120. data/testdata/good/incomplete_scenario_outline.feature.pickles.ndjson +0 -0
  121. data/testdata/good/incomplete_scenario_outline.feature.source.ndjson +1 -0
  122. data/testdata/good/incomplete_scenario_outline.feature.tokens +25 -0
  123. data/testdata/good/language.feature +6 -0
  124. data/testdata/good/language.feature.ast.ndjson +1 -0
  125. data/testdata/good/language.feature.pickles.ndjson +1 -0
  126. data/testdata/good/language.feature.source.ndjson +1 -0
  127. data/testdata/good/language.feature.tokens +7 -0
  128. data/testdata/good/minimal.feature +4 -0
  129. data/testdata/good/minimal.feature.ast.ndjson +1 -0
  130. data/testdata/good/minimal.feature.pickles.ndjson +1 -0
  131. data/testdata/good/minimal.feature.source.ndjson +1 -0
  132. data/testdata/good/minimal.feature.tokens +5 -0
  133. data/testdata/good/readme_example.feature +18 -0
  134. data/testdata/good/readme_example.feature.ast.ndjson +1 -0
  135. data/testdata/good/readme_example.feature.pickles.ndjson +2 -0
  136. data/testdata/good/readme_example.feature.source.ndjson +1 -0
  137. data/testdata/good/readme_example.feature.tokens +19 -0
  138. data/testdata/good/scenario_outline.feature +8 -0
  139. data/testdata/good/scenario_outline.feature.ast.ndjson +1 -0
  140. data/testdata/good/scenario_outline.feature.pickles.ndjson +1 -0
  141. data/testdata/good/scenario_outline.feature.source.ndjson +1 -0
  142. data/testdata/good/scenario_outline.feature.tokens +9 -0
  143. data/testdata/good/scenario_outline_no_newline.feature +8 -0
  144. data/testdata/good/scenario_outline_no_newline.feature.ast.ndjson +1 -0
  145. data/testdata/good/scenario_outline_no_newline.feature.pickles.ndjson +1 -0
  146. data/testdata/good/scenario_outline_no_newline.feature.source.ndjson +1 -0
  147. data/testdata/good/scenario_outline_no_newline.feature.tokens +9 -0
  148. data/testdata/good/scenario_outlines_with_tags.feature +18 -0
  149. data/testdata/good/scenario_outlines_with_tags.feature.ast.ndjson +1 -0
  150. data/testdata/good/scenario_outlines_with_tags.feature.pickles.ndjson +2 -0
  151. data/testdata/good/scenario_outlines_with_tags.feature.source.ndjson +1 -0
  152. data/testdata/good/scenario_outlines_with_tags.feature.tokens +19 -0
  153. data/testdata/good/several_examples.feature +17 -0
  154. data/testdata/good/several_examples.feature.ast.ndjson +1 -0
  155. data/testdata/good/several_examples.feature.pickles.ndjson +2 -0
  156. data/testdata/good/several_examples.feature.source.ndjson +1 -0
  157. data/testdata/good/several_examples.feature.tokens +18 -0
  158. data/testdata/good/spaces_in_language.feature +2 -0
  159. data/testdata/good/spaces_in_language.feature.ast.ndjson +1 -0
  160. data/testdata/good/spaces_in_language.feature.pickles.ndjson +0 -0
  161. data/testdata/good/spaces_in_language.feature.source.ndjson +1 -0
  162. data/testdata/good/spaces_in_language.feature.tokens +3 -0
  163. data/testdata/good/tags.feature +25 -0
  164. data/testdata/good/tags.feature.ast.ndjson +1 -0
  165. data/testdata/good/tags.feature.pickles.ndjson +3 -0
  166. data/testdata/good/tags.feature.source.ndjson +1 -0
  167. data/testdata/good/tags.feature.tokens +26 -0
  168. metadata +176 -25
  169. data/bin/gherkin-generate-ast +0 -22
  170. data/bin/gherkin-generate-pickles +0 -26
@@ -0,0 +1,24 @@
1
+ Feature: Incomplete scenario outlines
2
+
3
+ Background: Adding a background won't make a pickle
4
+ * a step
5
+
6
+ Scenario Outline: steps, no examples
7
+ Given a step
8
+
9
+ Scenario Outline: no steps, no examples
10
+
11
+ Scenario Outline: no steps, no table
12
+
13
+ Examples:
14
+
15
+ Scenario Outline: no steps, only table header
16
+
17
+ Examples:
18
+ | what |
19
+
20
+ Scenario Outline: no steps, one example header
21
+
22
+ Examples:
23
+ | nope |
24
+ | nada |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Background","location":{"column":3,"line":3},"name":"Adding a background won't make a pickle","steps":[{"keyword":"* ","location":{"column":5,"line":4},"text":"a step","type":"Step"}],"type":"Background"},{"examples":[],"keyword":"Scenario Outline","location":{"column":3,"line":6},"name":"steps, no examples","steps":[{"keyword":"Given ","location":{"column":5,"line":7},"text":"a step","type":"Step"}],"tags":[],"type":"ScenarioOutline"},{"examples":[],"keyword":"Scenario Outline","location":{"column":3,"line":9},"name":"no steps, no examples","steps":[],"tags":[],"type":"ScenarioOutline"},{"examples":[{"keyword":"Examples","location":{"column":5,"line":13},"name":"","tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":11},"name":"no steps, no table","steps":[],"tags":[],"type":"ScenarioOutline"},{"examples":[{"keyword":"Examples","location":{"column":5,"line":17},"name":"","tableBody":[],"tableHeader":{"cells":[{"location":{"column":7,"line":18},"type":"TableCell","value":"what"}],"location":{"column":5,"line":18},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":15},"name":"no steps, only table header","steps":[],"tags":[],"type":"ScenarioOutline"},{"examples":[{"keyword":"Examples","location":{"column":5,"line":22},"name":"","tableBody":[{"cells":[{"location":{"column":7,"line":24},"type":"TableCell","value":"nada"}],"location":{"column":5,"line":24},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":7,"line":23},"type":"TableCell","value":"nope"}],"location":{"column":5,"line":23},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":20},"name":"no steps, one example header","steps":[],"tags":[],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Incomplete scenario outlines","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_scenario_outline.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Incomplete scenario outlines\n\n Background: Adding a background won't make a pickle\n * a step\n\n Scenario Outline: steps, no examples\n Given a step\n\n Scenario Outline: no steps, no examples\n\n Scenario Outline: no steps, no table\n\n Examples:\n\n Scenario Outline: no steps, only table header\n\n Examples:\n | what |\n\n Scenario Outline: no steps, one example header\n\n Examples:\n | nope |\n | nada |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_scenario_outline.feature"}
@@ -0,0 +1,25 @@
1
+ (1:1)FeatureLine:Feature/Incomplete scenario outlines/
2
+ (2:1)Empty://
3
+ (3:3)BackgroundLine:Background/Adding a background won't make a pickle/
4
+ (4:5)StepLine:* /a step/
5
+ (5:1)Empty://
6
+ (6:3)ScenarioOutlineLine:Scenario Outline/steps, no examples/
7
+ (7:5)StepLine:Given /a step/
8
+ (8:1)Empty://
9
+ (9:3)ScenarioOutlineLine:Scenario Outline/no steps, no examples/
10
+ (10:1)Empty://
11
+ (11:3)ScenarioOutlineLine:Scenario Outline/no steps, no table/
12
+ (12:1)Empty://
13
+ (13:5)ExamplesLine:Examples//
14
+ (14:1)Empty://
15
+ (15:3)ScenarioOutlineLine:Scenario Outline/no steps, only table header/
16
+ (16:1)Empty://
17
+ (17:5)ExamplesLine:Examples//
18
+ (18:5)TableRow://7:what
19
+ (19:1)Empty://
20
+ (20:3)ScenarioOutlineLine:Scenario Outline/no steps, one example header/
21
+ (21:1)Empty://
22
+ (22:5)ExamplesLine:Examples//
23
+ (23:5)TableRow://7:nope
24
+ (24:5)TableRow://7:nada
25
+ EOF
@@ -0,0 +1,6 @@
1
+ #language:en
2
+
3
+ Feature: Explicit language specification
4
+
5
+ Scenario: minimalistic
6
+ Given the minimalism
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scenario","location":{"column":3,"line":5},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":6},"text":"the minimalism","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":3},"name":"Explicit language specification","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/language.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":5}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":11,"line":6}],"text":"the minimalism"}],"tags":[]},"type":"pickle","uri":"testdata/good/language.feature"}
@@ -0,0 +1 @@
1
+ {"data":"#language:en\n\nFeature: Explicit language specification\n\n Scenario: minimalistic\n Given the minimalism\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/language.feature"}
@@ -0,0 +1,7 @@
1
+ (1:1)Language:/en/
2
+ (2:1)Empty://
3
+ (3:1)FeatureLine:Feature/Explicit language specification/
4
+ (4:1)Empty://
5
+ (5:3)ScenarioLine:Scenario/minimalistic/
6
+ (6:5)StepLine:Given /the minimalism/
7
+ EOF
@@ -0,0 +1,4 @@
1
+ Feature: Minimal
2
+
3
+ Scenario: minimalistic
4
+ Given the minimalism
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scenario","location":{"column":3,"line":3},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"the minimalism","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Minimal","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/minimal.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":3}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":11,"line":4}],"text":"the minimalism"}],"tags":[]},"type":"pickle","uri":"testdata/good/minimal.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Minimal\n\n Scenario: minimalistic\n Given the minimalism\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/minimal.feature"}
@@ -0,0 +1,5 @@
1
+ (1:1)FeatureLine:Feature/Minimal/
2
+ (2:1)Empty://
3
+ (3:3)ScenarioLine:Scenario/minimalistic/
4
+ (4:5)StepLine:Given /the minimalism/
5
+ EOF
@@ -0,0 +1,18 @@
1
+ @a
2
+ Feature:
3
+ @b @c
4
+ Scenario Outline:
5
+ Given <x>
6
+
7
+ Examples:
8
+ | x |
9
+ | y |
10
+
11
+ @d @e
12
+ Scenario Outline:
13
+ Given <m>
14
+
15
+ @f
16
+ Examples:
17
+ | m |
18
+ | n |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":5,"line":7},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":9},"type":"TableCell","value":"y"}],"location":{"column":7,"line":9},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":8},"type":"TableCell","value":"x"}],"location":{"column":7,"line":8},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":4},"name":"","steps":[{"keyword":"Given ","location":{"column":5,"line":5},"text":"<x>","type":"Step"}],"tags":[{"location":{"column":3,"line":3},"name":"@b","type":"Tag"},{"location":{"column":6,"line":3},"name":"@c","type":"Tag"}],"type":"ScenarioOutline"},{"examples":[{"keyword":"Examples","location":{"column":5,"line":16},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":18},"type":"TableCell","value":"n"}],"location":{"column":7,"line":18},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":17},"type":"TableCell","value":"m"}],"location":{"column":7,"line":17},"type":"TableRow"},"tags":[{"location":{"column":5,"line":15},"name":"@f","type":"Tag"}],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":12},"name":"","steps":[{"keyword":"Given ","location":{"column":5,"line":13},"text":"<m>","type":"Step"}],"tags":[{"location":{"column":3,"line":11},"name":"@d","type":"Tag"},{"location":{"column":6,"line":11},"name":"@e","type":"Tag"}],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":2},"name":"","tags":[{"location":{"column":1,"line":1},"name":"@a","type":"Tag"}],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/readme_example.feature"}
@@ -0,0 +1,2 @@
1
+ {"pickle":{"language":"en","locations":[{"column":7,"line":9},{"column":3,"line":4}],"name":"","steps":[{"arguments":[],"locations":[{"column":7,"line":9},{"column":11,"line":5}],"text":"y"}],"tags":[{"location":{"column":1,"line":1},"name":"@a"},{"location":{"column":3,"line":3},"name":"@b"},{"location":{"column":6,"line":3},"name":"@c"}]},"type":"pickle","uri":"testdata/good/readme_example.feature"}
2
+ {"pickle":{"language":"en","locations":[{"column":7,"line":18},{"column":3,"line":12}],"name":"","steps":[{"arguments":[],"locations":[{"column":7,"line":18},{"column":11,"line":13}],"text":"n"}],"tags":[{"location":{"column":1,"line":1},"name":"@a"},{"location":{"column":3,"line":11},"name":"@d"},{"location":{"column":6,"line":11},"name":"@e"},{"location":{"column":5,"line":15},"name":"@f"}]},"type":"pickle","uri":"testdata/good/readme_example.feature"}
@@ -0,0 +1 @@
1
+ {"data":"@a\nFeature:\n @b @c\n Scenario Outline:\n Given <x>\n\n Examples:\n | x |\n | y |\n\n @d @e\n Scenario Outline:\n Given <m>\n\n @f\n Examples:\n | m |\n | n |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/readme_example.feature"}
@@ -0,0 +1,19 @@
1
+ (1:1)TagLine://1:@a
2
+ (2:1)FeatureLine:Feature//
3
+ (3:3)TagLine://3:@b,6:@c
4
+ (4:3)ScenarioOutlineLine:Scenario Outline//
5
+ (5:5)StepLine:Given /<x>/
6
+ (6:1)Empty://
7
+ (7:5)ExamplesLine:Examples//
8
+ (8:7)TableRow://9:x
9
+ (9:7)TableRow://9:y
10
+ (10:1)Empty://
11
+ (11:3)TagLine://3:@d,6:@e
12
+ (12:3)ScenarioOutlineLine:Scenario Outline//
13
+ (13:5)StepLine:Given /<m>/
14
+ (14:1)Empty://
15
+ (15:5)TagLine://5:@f
16
+ (16:5)ExamplesLine:Examples//
17
+ (17:7)TableRow://9:m
18
+ (18:7)TableRow://9:n
19
+ EOF
@@ -0,0 +1,8 @@
1
+ Feature: Minimal Scenario Outline
2
+
3
+ Scenario Outline: minimalistic
4
+ Given the <what>
5
+
6
+ Examples:
7
+ | what |
8
+ | minimalism |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":1,"line":6},"name":"","tableBody":[{"cells":[{"location":{"column":5,"line":8},"type":"TableCell","value":"minimalism"}],"location":{"column":3,"line":8},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":5,"line":7},"type":"TableCell","value":"what"}],"location":{"column":3,"line":7},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":1,"line":3},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"the <what>","type":"Step"}],"tags":[],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Minimal Scenario Outline","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/scenario_outline.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":8},{"column":1,"line":3}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":3,"line":8},{"column":11,"line":4}],"text":"the minimalism"}],"tags":[]},"type":"pickle","uri":"testdata/good/scenario_outline.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Minimal Scenario Outline\n\nScenario Outline: minimalistic\n Given the <what>\n\nExamples:\n | what |\n | minimalism |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/scenario_outline.feature"}
@@ -0,0 +1,9 @@
1
+ (1:1)FeatureLine:Feature/Minimal Scenario Outline/
2
+ (2:1)Empty://
3
+ (3:1)ScenarioOutlineLine:Scenario Outline/minimalistic/
4
+ (4:5)StepLine:Given /the <what>/
5
+ (5:1)Empty://
6
+ (6:1)ExamplesLine:Examples//
7
+ (7:3)TableRow://5:what
8
+ (8:3)TableRow://5:minimalism
9
+ EOF
@@ -0,0 +1,8 @@
1
+ Feature: Minimal Scenario Outline
2
+
3
+ Scenario Outline: minimalistic
4
+ Given the <what>
5
+
6
+ Examples:
7
+ | what |
8
+ | minimalism |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":1,"line":6},"name":"","tableBody":[{"cells":[{"location":{"column":5,"line":8},"type":"TableCell","value":"minimalism"}],"location":{"column":3,"line":8},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":5,"line":7},"type":"TableCell","value":"what"}],"location":{"column":3,"line":7},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":1,"line":3},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"the <what>","type":"Step"}],"tags":[],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Minimal Scenario Outline","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/scenario_outline_no_newline.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":8},{"column":1,"line":3}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":3,"line":8},{"column":11,"line":4}],"text":"the minimalism"}],"tags":[]},"type":"pickle","uri":"testdata/good/scenario_outline_no_newline.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Minimal Scenario Outline\n\nScenario Outline: minimalistic\n Given the <what>\n\nExamples:\n | what |\n | minimalism |","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/scenario_outline_no_newline.feature"}
@@ -0,0 +1,9 @@
1
+ (1:1)FeatureLine:Feature/Minimal Scenario Outline/
2
+ (2:1)Empty://
3
+ (3:1)ScenarioOutlineLine:Scenario Outline/minimalistic/
4
+ (4:5)StepLine:Given /the <what>/
5
+ (5:1)Empty://
6
+ (6:1)ExamplesLine:Examples//
7
+ (7:3)TableRow://5:what
8
+ (8:3)TableRow://5:minimalism
9
+ EOF
@@ -0,0 +1,18 @@
1
+ @a
2
+ Feature:
3
+ @b @c
4
+ Scenario Outline:
5
+ Given <x>
6
+
7
+ Examples:
8
+ | x |
9
+ | y |
10
+
11
+ @d @e
12
+ Scenario Outline:
13
+ Given <m>
14
+
15
+ @f
16
+ Examples:
17
+ | m |
18
+ | n |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":5,"line":7},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":9},"type":"TableCell","value":"y"}],"location":{"column":7,"line":9},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":8},"type":"TableCell","value":"x"}],"location":{"column":7,"line":8},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":4},"name":"","steps":[{"keyword":"Given ","location":{"column":5,"line":5},"text":"<x>","type":"Step"}],"tags":[{"location":{"column":3,"line":3},"name":"@b","type":"Tag"},{"location":{"column":6,"line":3},"name":"@c","type":"Tag"}],"type":"ScenarioOutline"},{"examples":[{"keyword":"Examples","location":{"column":5,"line":16},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":18},"type":"TableCell","value":"n"}],"location":{"column":7,"line":18},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":17},"type":"TableCell","value":"m"}],"location":{"column":7,"line":17},"type":"TableRow"},"tags":[{"location":{"column":5,"line":15},"name":"@f","type":"Tag"}],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":12},"name":"","steps":[{"keyword":"Given ","location":{"column":5,"line":13},"text":"<m>","type":"Step"}],"tags":[{"location":{"column":3,"line":11},"name":"@d","type":"Tag"},{"location":{"column":6,"line":11},"name":"@e","type":"Tag"}],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":2},"name":"","tags":[{"location":{"column":1,"line":1},"name":"@a","type":"Tag"}],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/scenario_outlines_with_tags.feature"}
@@ -0,0 +1,2 @@
1
+ {"pickle":{"language":"en","locations":[{"column":7,"line":9},{"column":3,"line":4}],"name":"","steps":[{"arguments":[],"locations":[{"column":7,"line":9},{"column":11,"line":5}],"text":"y"}],"tags":[{"location":{"column":1,"line":1},"name":"@a"},{"location":{"column":3,"line":3},"name":"@b"},{"location":{"column":6,"line":3},"name":"@c"}]},"type":"pickle","uri":"testdata/good/scenario_outlines_with_tags.feature"}
2
+ {"pickle":{"language":"en","locations":[{"column":7,"line":18},{"column":3,"line":12}],"name":"","steps":[{"arguments":[],"locations":[{"column":7,"line":18},{"column":11,"line":13}],"text":"n"}],"tags":[{"location":{"column":1,"line":1},"name":"@a"},{"location":{"column":3,"line":11},"name":"@d"},{"location":{"column":6,"line":11},"name":"@e"},{"location":{"column":5,"line":15},"name":"@f"}]},"type":"pickle","uri":"testdata/good/scenario_outlines_with_tags.feature"}
@@ -0,0 +1 @@
1
+ {"data":"@a\nFeature:\n @b @c\n Scenario Outline:\n Given <x>\n\n Examples:\n | x |\n | y |\n\n @d @e\n Scenario Outline:\n Given <m>\n\n @f\n Examples:\n | m |\n | n |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/scenario_outlines_with_tags.feature"}
@@ -0,0 +1,19 @@
1
+ (1:1)TagLine://1:@a
2
+ (2:1)FeatureLine:Feature//
3
+ (3:3)TagLine://3:@b,6:@c
4
+ (4:3)ScenarioOutlineLine:Scenario Outline//
5
+ (5:5)StepLine:Given /<x>/
6
+ (6:1)Empty://
7
+ (7:5)ExamplesLine:Examples//
8
+ (8:7)TableRow://9:x
9
+ (9:7)TableRow://9:y
10
+ (10:1)Empty://
11
+ (11:3)TagLine://3:@d,6:@e
12
+ (12:3)ScenarioOutlineLine:Scenario Outline//
13
+ (13:5)StepLine:Given /<m>/
14
+ (14:1)Empty://
15
+ (15:5)TagLine://5:@f
16
+ (16:5)ExamplesLine:Examples//
17
+ (17:7)TableRow://9:m
18
+ (18:7)TableRow://9:n
19
+ EOF
@@ -0,0 +1,17 @@
1
+ Feature: Tagged Examples
2
+
3
+ Scenario Outline: minimalistic
4
+ Given the <what>
5
+
6
+ @foo
7
+ Examples:
8
+ | what |
9
+ | foo |
10
+
11
+ @bar
12
+ Examples:
13
+ | what |
14
+ | bar |
15
+
16
+ @zap
17
+ Scenario: ha ok
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":5,"line":7},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":9},"type":"TableCell","value":"foo"}],"location":{"column":7,"line":9},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":8},"type":"TableCell","value":"what"}],"location":{"column":7,"line":8},"type":"TableRow"},"tags":[{"location":{"column":5,"line":6},"name":"@foo","type":"Tag"}],"type":"Examples"},{"keyword":"Examples","location":{"column":5,"line":12},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":14},"type":"TableCell","value":"bar"}],"location":{"column":7,"line":14},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":13},"type":"TableCell","value":"what"}],"location":{"column":7,"line":13},"type":"TableRow"},"tags":[{"location":{"column":5,"line":11},"name":"@bar","type":"Tag"}],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":3},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"the <what>","type":"Step"}],"tags":[],"type":"ScenarioOutline"},{"keyword":"Scenario","location":{"column":3,"line":17},"name":"ha ok","steps":[],"tags":[{"location":{"column":3,"line":16},"name":"@zap","type":"Tag"}],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Tagged Examples","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/several_examples.feature"}
@@ -0,0 +1,2 @@
1
+ {"pickle":{"language":"en","locations":[{"column":7,"line":9},{"column":3,"line":3}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":7,"line":9},{"column":11,"line":4}],"text":"the foo"}],"tags":[{"location":{"column":5,"line":6},"name":"@foo"}]},"type":"pickle","uri":"testdata/good/several_examples.feature"}
2
+ {"pickle":{"language":"en","locations":[{"column":7,"line":14},{"column":3,"line":3}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":7,"line":14},{"column":11,"line":4}],"text":"the bar"}],"tags":[{"location":{"column":5,"line":11},"name":"@bar"}]},"type":"pickle","uri":"testdata/good/several_examples.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Tagged Examples\n\n Scenario Outline: minimalistic\n Given the <what>\n\n @foo\n Examples:\n | what |\n | foo |\n\n @bar\n Examples:\n | what |\n | bar |\n\n @zap\n Scenario: ha ok\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/several_examples.feature"}
@@ -0,0 +1,18 @@
1
+ (1:1)FeatureLine:Feature/Tagged Examples/
2
+ (2:1)Empty://
3
+ (3:3)ScenarioOutlineLine:Scenario Outline/minimalistic/
4
+ (4:5)StepLine:Given /the <what>/
5
+ (5:1)Empty://
6
+ (6:5)TagLine://5:@foo
7
+ (7:5)ExamplesLine:Examples//
8
+ (8:7)TableRow://9:what
9
+ (9:7)TableRow://9:foo
10
+ (10:1)Empty://
11
+ (11:5)TagLine://5:@bar
12
+ (12:5)ExamplesLine:Examples//
13
+ (13:7)TableRow://9:what
14
+ (14:7)TableRow://9:bar
15
+ (15:1)Empty://
16
+ (16:3)TagLine://3:@zap
17
+ (17:3)ScenarioLine:Scenario/ha ok/
18
+ EOF
@@ -0,0 +1,2 @@
1
+ # language : en-lol
2
+ OH HAI: STUFFING
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[],"keyword":"OH HAI","language":"en-lol","location":{"column":1,"line":2},"name":"STUFFING","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/spaces_in_language.feature"}
@@ -0,0 +1 @@
1
+ {"data":" # language : en-lol\nOH HAI: STUFFING\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/spaces_in_language.feature"}
@@ -0,0 +1,3 @@
1
+ (1:3)Language:/en-lol/
2
+ (2:1)FeatureLine:OH HAI/STUFFING/
3
+ EOF
@@ -0,0 +1,25 @@
1
+ @feature_tag1 @feature_tag2
2
+ @feature_tag3
3
+ Feature: Minimal Scenario Outline
4
+
5
+ @scenario_tag1 @scenario_tag2
6
+ @scenario_tag3
7
+ Scenario: minimalistic
8
+ Given the minimalism
9
+
10
+ @so_tag1 @so_tag2
11
+ @so_tag3
12
+ Scenario Outline: minimalistic outline
13
+ Given the <what>
14
+
15
+ @ex_tag1 @ex_tag2
16
+ @ex_tag3
17
+ Examples:
18
+ | what |
19
+ | minimalism |
20
+
21
+ @ex_tag4 @ex_tag5
22
+ @ex_tag6
23
+ Examples:
24
+ | what |
25
+ | more minimalism |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scenario","location":{"column":1,"line":7},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":8},"text":"the minimalism","type":"Step"}],"tags":[{"location":{"column":1,"line":5},"name":"@scenario_tag1","type":"Tag"},{"location":{"column":16,"line":5},"name":"@scenario_tag2","type":"Tag"},{"location":{"column":3,"line":6},"name":"@scenario_tag3","type":"Tag"}],"type":"Scenario"},{"examples":[{"keyword":"Examples","location":{"column":1,"line":17},"name":"","tableBody":[{"cells":[{"location":{"column":5,"line":19},"type":"TableCell","value":"minimalism"}],"location":{"column":3,"line":19},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":5,"line":18},"type":"TableCell","value":"what"}],"location":{"column":3,"line":18},"type":"TableRow"},"tags":[{"location":{"column":1,"line":15},"name":"@ex_tag1","type":"Tag"},{"location":{"column":10,"line":15},"name":"@ex_tag2","type":"Tag"},{"location":{"column":3,"line":16},"name":"@ex_tag3","type":"Tag"}],"type":"Examples"},{"keyword":"Examples","location":{"column":1,"line":23},"name":"","tableBody":[{"cells":[{"location":{"column":5,"line":25},"type":"TableCell","value":"more minimalism"}],"location":{"column":3,"line":25},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":5,"line":24},"type":"TableCell","value":"what"}],"location":{"column":3,"line":24},"type":"TableRow"},"tags":[{"location":{"column":1,"line":21},"name":"@ex_tag4","type":"Tag"},{"location":{"column":10,"line":21},"name":"@ex_tag5","type":"Tag"},{"location":{"column":3,"line":22},"name":"@ex_tag6","type":"Tag"}],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":1,"line":12},"name":"minimalistic outline","steps":[{"keyword":"Given ","location":{"column":5,"line":13},"text":"the <what>","type":"Step"}],"tags":[{"location":{"column":1,"line":10},"name":"@so_tag1","type":"Tag"},{"location":{"column":11,"line":10},"name":"@so_tag2","type":"Tag"},{"location":{"column":3,"line":11},"name":"@so_tag3","type":"Tag"}],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":3},"name":"Minimal Scenario Outline","tags":[{"location":{"column":1,"line":1},"name":"@feature_tag1","type":"Tag"},{"location":{"column":15,"line":1},"name":"@feature_tag2","type":"Tag"},{"location":{"column":3,"line":2},"name":"@feature_tag3","type":"Tag"}],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/tags.feature"}
@@ -0,0 +1,3 @@
1
+ {"pickle":{"language":"en","locations":[{"column":1,"line":7}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":11,"line":8}],"text":"the minimalism"}],"tags":[{"location":{"column":1,"line":1},"name":"@feature_tag1"},{"location":{"column":15,"line":1},"name":"@feature_tag2"},{"location":{"column":3,"line":2},"name":"@feature_tag3"},{"location":{"column":1,"line":5},"name":"@scenario_tag1"},{"location":{"column":16,"line":5},"name":"@scenario_tag2"},{"location":{"column":3,"line":6},"name":"@scenario_tag3"}]},"type":"pickle","uri":"testdata/good/tags.feature"}
2
+ {"pickle":{"language":"en","locations":[{"column":3,"line":19},{"column":1,"line":12}],"name":"minimalistic outline","steps":[{"arguments":[],"locations":[{"column":3,"line":19},{"column":11,"line":13}],"text":"the minimalism"}],"tags":[{"location":{"column":1,"line":1},"name":"@feature_tag1"},{"location":{"column":15,"line":1},"name":"@feature_tag2"},{"location":{"column":3,"line":2},"name":"@feature_tag3"},{"location":{"column":1,"line":10},"name":"@so_tag1"},{"location":{"column":11,"line":10},"name":"@so_tag2"},{"location":{"column":3,"line":11},"name":"@so_tag3"},{"location":{"column":1,"line":15},"name":"@ex_tag1"},{"location":{"column":10,"line":15},"name":"@ex_tag2"},{"location":{"column":3,"line":16},"name":"@ex_tag3"}]},"type":"pickle","uri":"testdata/good/tags.feature"}
3
+ {"pickle":{"language":"en","locations":[{"column":3,"line":25},{"column":1,"line":12}],"name":"minimalistic outline","steps":[{"arguments":[],"locations":[{"column":3,"line":25},{"column":11,"line":13}],"text":"the more minimalism"}],"tags":[{"location":{"column":1,"line":1},"name":"@feature_tag1"},{"location":{"column":15,"line":1},"name":"@feature_tag2"},{"location":{"column":3,"line":2},"name":"@feature_tag3"},{"location":{"column":1,"line":10},"name":"@so_tag1"},{"location":{"column":11,"line":10},"name":"@so_tag2"},{"location":{"column":3,"line":11},"name":"@so_tag3"},{"location":{"column":1,"line":21},"name":"@ex_tag4"},{"location":{"column":10,"line":21},"name":"@ex_tag5"},{"location":{"column":3,"line":22},"name":"@ex_tag6"}]},"type":"pickle","uri":"testdata/good/tags.feature"}
@@ -0,0 +1 @@
1
+ {"data":"@feature_tag1 @feature_tag2\n @feature_tag3\nFeature: Minimal Scenario Outline\n\n@scenario_tag1 @scenario_tag2\n @scenario_tag3\nScenario: minimalistic\n Given the minimalism\n\n@so_tag1 @so_tag2 \n @so_tag3\nScenario Outline: minimalistic outline\n Given the <what>\n\n@ex_tag1 @ex_tag2\n @ex_tag3\nExamples: \n | what |\n | minimalism |\n\n@ex_tag4 @ex_tag5\n @ex_tag6\nExamples: \n | what |\n | more minimalism |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/tags.feature"}
@@ -0,0 +1,26 @@
1
+ (1:1)TagLine://1:@feature_tag1,15:@feature_tag2
2
+ (2:3)TagLine://3:@feature_tag3
3
+ (3:1)FeatureLine:Feature/Minimal Scenario Outline/
4
+ (4:1)Empty://
5
+ (5:1)TagLine://1:@scenario_tag1,16:@scenario_tag2
6
+ (6:3)TagLine://3:@scenario_tag3
7
+ (7:1)ScenarioLine:Scenario/minimalistic/
8
+ (8:5)StepLine:Given /the minimalism/
9
+ (9:1)Empty://
10
+ (10:1)TagLine://1:@so_tag1,11:@so_tag2
11
+ (11:3)TagLine://3:@so_tag3
12
+ (12:1)ScenarioOutlineLine:Scenario Outline/minimalistic outline/
13
+ (13:5)StepLine:Given /the <what>/
14
+ (14:1)Empty://
15
+ (15:1)TagLine://1:@ex_tag1,10:@ex_tag2
16
+ (16:3)TagLine://3:@ex_tag3
17
+ (17:1)ExamplesLine:Examples//
18
+ (18:3)TableRow://5:what
19
+ (19:3)TableRow://5:minimalism
20
+ (20:1)Empty://
21
+ (21:1)TagLine://1:@ex_tag4,10:@ex_tag5
22
+ (22:3)TagLine://3:@ex_tag6
23
+ (23:1)ExamplesLine:Examples//
24
+ (24:3)TableRow://5:what
25
+ (25:3)TableRow://5:more minimalism
26
+ EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gherkin
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gáspár Nagy
@@ -10,76 +10,71 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-04-10 00:00:00.000000000 Z
13
+ date: 2017-03-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '1.7'
21
+ version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '1.7'
28
+ version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '10.4'
35
+ version: '10.5'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '10.4'
42
+ version: '10.5'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rspec
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '3.3'
49
+ version: '3.5'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '3.3'
56
+ version: '3.5'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: coveralls
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - "~>"
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: '0.8'
64
- - - "<"
65
- - !ruby/object:Gem::Version
66
- version: 0.8.8
63
+ version: '0'
67
64
  type: :development
68
65
  prerelease: false
69
66
  version_requirements: !ruby/object:Gem::Requirement
70
67
  requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '0.8'
74
- - - "<"
68
+ - - ">="
75
69
  - !ruby/object:Gem::Version
76
- version: 0.8.8
70
+ version: '0'
77
71
  description: Gherkin parser
78
72
  email: cukes@googlegroups.com
79
73
  executables: []
80
74
  extensions: []
81
75
  extra_rdoc_files: []
82
76
  files:
77
+ - ".rsync"
83
78
  - ".travis.yml"
84
79
  - CONTRIBUTING.md
85
80
  - Gemfile
@@ -87,10 +82,17 @@ files:
87
82
  - Makefile
88
83
  - README.md
89
84
  - Rakefile
90
- - bin/gherkin-generate-ast
91
- - bin/gherkin-generate-pickles
85
+ - berp/CommandLine.dll
86
+ - berp/RazorEngine.dll
87
+ - berp/RazorEngine.pdb
88
+ - berp/System.Web.Razor.dll
89
+ - berp/berp.exe
90
+ - berp/berp.pdb
91
+ - bin/gherkin
92
92
  - bin/gherkin-generate-tokens
93
+ - gherkin-languages.json
93
94
  - gherkin-ruby.razor
95
+ - gherkin.berp
94
96
  - gherkin.gemspec
95
97
  - lib/gherkin/ast_builder.rb
96
98
  - lib/gherkin/ast_node.rb
@@ -100,6 +102,8 @@ files:
100
102
  - lib/gherkin/gherkin_line.rb
101
103
  - lib/gherkin/parser.rb
102
104
  - lib/gherkin/pickles/compiler.rb
105
+ - lib/gherkin/stream/gherkin_events.rb
106
+ - lib/gherkin/stream/source_events.rb
103
107
  - lib/gherkin/token.rb
104
108
  - lib/gherkin/token_formatter_builder.rb
105
109
  - lib/gherkin/token_matcher.rb
@@ -107,7 +111,154 @@ files:
107
111
  - spec/capture_warnings.rb
108
112
  - spec/coverage.rb
109
113
  - spec/gherkin/parser_spec.rb
110
- homepage: https://github.com/cucumber/gherkin
114
+ - testdata/bad/inconsistent_cell_count.feature
115
+ - testdata/bad/inconsistent_cell_count.feature.errors.ndjson
116
+ - testdata/bad/invalid_language.feature
117
+ - testdata/bad/invalid_language.feature.errors.ndjson
118
+ - testdata/bad/multiple_parser_errors.feature
119
+ - testdata/bad/multiple_parser_errors.feature.errors.ndjson
120
+ - testdata/bad/not_gherkin.feature
121
+ - testdata/bad/not_gherkin.feature.errors.ndjson
122
+ - testdata/bad/single_parser_error.feature
123
+ - testdata/bad/single_parser_error.feature.errors.ndjson
124
+ - testdata/bad/unexpected_eof.feature
125
+ - testdata/bad/unexpected_eof.feature.errors.ndjson
126
+ - testdata/good/background.feature
127
+ - testdata/good/background.feature.ast.ndjson
128
+ - testdata/good/background.feature.pickles.ndjson
129
+ - testdata/good/background.feature.source.ndjson
130
+ - testdata/good/background.feature.tokens
131
+ - testdata/good/datatables.feature
132
+ - testdata/good/datatables.feature.ast.ndjson
133
+ - testdata/good/datatables.feature.pickles.ndjson
134
+ - testdata/good/datatables.feature.source.ndjson
135
+ - testdata/good/datatables.feature.tokens
136
+ - testdata/good/descriptions.feature
137
+ - testdata/good/descriptions.feature.ast.ndjson
138
+ - testdata/good/descriptions.feature.pickles.ndjson
139
+ - testdata/good/descriptions.feature.source.ndjson
140
+ - testdata/good/descriptions.feature.tokens
141
+ - testdata/good/docstrings.feature
142
+ - testdata/good/docstrings.feature.ast.ndjson
143
+ - testdata/good/docstrings.feature.pickles.ndjson
144
+ - testdata/good/docstrings.feature.source.ndjson
145
+ - testdata/good/docstrings.feature.tokens
146
+ - testdata/good/empty.feature
147
+ - testdata/good/empty.feature.ast.ndjson
148
+ - testdata/good/empty.feature.pickles.ndjson
149
+ - testdata/good/empty.feature.source.ndjson
150
+ - testdata/good/empty.feature.tokens
151
+ - testdata/good/escaped_pipes.feature
152
+ - testdata/good/escaped_pipes.feature.ast.ndjson
153
+ - testdata/good/escaped_pipes.feature.pickles.ndjson
154
+ - testdata/good/escaped_pipes.feature.source.ndjson
155
+ - testdata/good/escaped_pipes.feature.tokens
156
+ - testdata/good/example_token_multiple.feature
157
+ - testdata/good/example_token_multiple.feature.ast.ndjson
158
+ - testdata/good/example_token_multiple.feature.pickles.ndjson
159
+ - testdata/good/example_token_multiple.feature.source.ndjson
160
+ - testdata/good/example_token_multiple.feature.tokens
161
+ - testdata/good/example_tokens_everywhere.feature
162
+ - testdata/good/example_tokens_everywhere.feature.ast.ndjson
163
+ - testdata/good/example_tokens_everywhere.feature.pickles.ndjson
164
+ - testdata/good/example_tokens_everywhere.feature.source.ndjson
165
+ - testdata/good/example_tokens_everywhere.feature.tokens
166
+ - testdata/good/i18n_emoji.feature
167
+ - testdata/good/i18n_emoji.feature.ast.ndjson
168
+ - testdata/good/i18n_emoji.feature.pickles.ndjson
169
+ - testdata/good/i18n_emoji.feature.source.ndjson
170
+ - testdata/good/i18n_emoji.feature.tokens
171
+ - testdata/good/i18n_fr.feature
172
+ - testdata/good/i18n_fr.feature.ast.ndjson
173
+ - testdata/good/i18n_fr.feature.pickles.ndjson
174
+ - testdata/good/i18n_fr.feature.source.ndjson
175
+ - testdata/good/i18n_fr.feature.tokens
176
+ - testdata/good/i18n_no.feature
177
+ - testdata/good/i18n_no.feature.ast.ndjson
178
+ - testdata/good/i18n_no.feature.pickles.ndjson
179
+ - testdata/good/i18n_no.feature.source.ndjson
180
+ - testdata/good/i18n_no.feature.tokens
181
+ - testdata/good/incomplete_background_1.feature
182
+ - testdata/good/incomplete_background_1.feature.ast.ndjson
183
+ - testdata/good/incomplete_background_1.feature.pickles.ndjson
184
+ - testdata/good/incomplete_background_1.feature.source.ndjson
185
+ - testdata/good/incomplete_background_1.feature.tokens
186
+ - testdata/good/incomplete_background_2.feature
187
+ - testdata/good/incomplete_background_2.feature.ast.ndjson
188
+ - testdata/good/incomplete_background_2.feature.pickles.ndjson
189
+ - testdata/good/incomplete_background_2.feature.source.ndjson
190
+ - testdata/good/incomplete_background_2.feature.tokens
191
+ - testdata/good/incomplete_feature_1.feature
192
+ - testdata/good/incomplete_feature_1.feature.ast.ndjson
193
+ - testdata/good/incomplete_feature_1.feature.pickles.ndjson
194
+ - testdata/good/incomplete_feature_1.feature.source.ndjson
195
+ - testdata/good/incomplete_feature_1.feature.tokens
196
+ - testdata/good/incomplete_feature_2.feature
197
+ - testdata/good/incomplete_feature_2.feature.ast.ndjson
198
+ - testdata/good/incomplete_feature_2.feature.pickles.ndjson
199
+ - testdata/good/incomplete_feature_2.feature.source.ndjson
200
+ - testdata/good/incomplete_feature_2.feature.tokens
201
+ - testdata/good/incomplete_feature_3.feature
202
+ - testdata/good/incomplete_feature_3.feature.ast.ndjson
203
+ - testdata/good/incomplete_feature_3.feature.pickles.ndjson
204
+ - testdata/good/incomplete_feature_3.feature.source.ndjson
205
+ - testdata/good/incomplete_feature_3.feature.tokens
206
+ - testdata/good/incomplete_scenario.feature
207
+ - testdata/good/incomplete_scenario.feature.ast.ndjson
208
+ - testdata/good/incomplete_scenario.feature.pickles.ndjson
209
+ - testdata/good/incomplete_scenario.feature.source.ndjson
210
+ - testdata/good/incomplete_scenario.feature.tokens
211
+ - testdata/good/incomplete_scenario_outline.feature
212
+ - testdata/good/incomplete_scenario_outline.feature.ast.ndjson
213
+ - testdata/good/incomplete_scenario_outline.feature.pickles.ndjson
214
+ - testdata/good/incomplete_scenario_outline.feature.source.ndjson
215
+ - testdata/good/incomplete_scenario_outline.feature.tokens
216
+ - testdata/good/language.feature
217
+ - testdata/good/language.feature.ast.ndjson
218
+ - testdata/good/language.feature.pickles.ndjson
219
+ - testdata/good/language.feature.source.ndjson
220
+ - testdata/good/language.feature.tokens
221
+ - testdata/good/minimal.feature
222
+ - testdata/good/minimal.feature.ast.ndjson
223
+ - testdata/good/minimal.feature.pickles.ndjson
224
+ - testdata/good/minimal.feature.source.ndjson
225
+ - testdata/good/minimal.feature.tokens
226
+ - testdata/good/readme_example.feature
227
+ - testdata/good/readme_example.feature.ast.ndjson
228
+ - testdata/good/readme_example.feature.pickles.ndjson
229
+ - testdata/good/readme_example.feature.source.ndjson
230
+ - testdata/good/readme_example.feature.tokens
231
+ - testdata/good/scenario_outline.feature
232
+ - testdata/good/scenario_outline.feature.ast.ndjson
233
+ - testdata/good/scenario_outline.feature.pickles.ndjson
234
+ - testdata/good/scenario_outline.feature.source.ndjson
235
+ - testdata/good/scenario_outline.feature.tokens
236
+ - testdata/good/scenario_outline_no_newline.feature
237
+ - testdata/good/scenario_outline_no_newline.feature.ast.ndjson
238
+ - testdata/good/scenario_outline_no_newline.feature.pickles.ndjson
239
+ - testdata/good/scenario_outline_no_newline.feature.source.ndjson
240
+ - testdata/good/scenario_outline_no_newline.feature.tokens
241
+ - testdata/good/scenario_outlines_with_tags.feature
242
+ - testdata/good/scenario_outlines_with_tags.feature.ast.ndjson
243
+ - testdata/good/scenario_outlines_with_tags.feature.pickles.ndjson
244
+ - testdata/good/scenario_outlines_with_tags.feature.source.ndjson
245
+ - testdata/good/scenario_outlines_with_tags.feature.tokens
246
+ - testdata/good/several_examples.feature
247
+ - testdata/good/several_examples.feature.ast.ndjson
248
+ - testdata/good/several_examples.feature.pickles.ndjson
249
+ - testdata/good/several_examples.feature.source.ndjson
250
+ - testdata/good/several_examples.feature.tokens
251
+ - testdata/good/spaces_in_language.feature
252
+ - testdata/good/spaces_in_language.feature.ast.ndjson
253
+ - testdata/good/spaces_in_language.feature.pickles.ndjson
254
+ - testdata/good/spaces_in_language.feature.source.ndjson
255
+ - testdata/good/spaces_in_language.feature.tokens
256
+ - testdata/good/tags.feature
257
+ - testdata/good/tags.feature.ast.ndjson
258
+ - testdata/good/tags.feature.pickles.ndjson
259
+ - testdata/good/tags.feature.source.ndjson
260
+ - testdata/good/tags.feature.tokens
261
+ homepage: https://github.com/cucumber/gherkin-ruby
111
262
  licenses:
112
263
  - MIT
113
264
  metadata: {}
@@ -128,10 +279,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
279
  version: '0'
129
280
  requirements: []
130
281
  rubyforge_project:
131
- rubygems_version: 2.4.5
282
+ rubygems_version: 2.5.2
132
283
  signing_key:
133
284
  specification_version: 4
134
- summary: gherkin-4.0.0
285
+ summary: gherkin-4.1.0
135
286
  test_files:
136
287
  - spec/capture_warnings.rb
137
288
  - spec/coverage.rb