xcfit 2.0.4 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -9
  3. data/Docs/InitialVersion.md +340 -0
  4. data/Package.swift +5 -0
  5. data/README.md +348 -145
  6. data/XCFit.gemspec +1 -1
  7. data/XCFit.podspec +17 -9
  8. data/XCFit/Classes/Cucumberish/Core/CCIBlockDefinitions.h +400 -0
  9. data/XCFit/Classes/Cucumberish/Core/Managers/CCIFeaturesManager.h +72 -0
  10. data/XCFit/Classes/Cucumberish/Core/Managers/CCIFeaturesManager.m +141 -0
  11. data/XCFit/Classes/Cucumberish/Core/Managers/CCIStepsManager.h +51 -0
  12. data/XCFit/Classes/Cucumberish/Core/Managers/CCIStepsManager.m +245 -0
  13. data/XCFit/Classes/Cucumberish/Core/Models/CCIArgument.h +62 -0
  14. data/XCFit/Classes/Cucumberish/Core/Models/CCIArgument.m +117 -0
  15. data/XCFit/Classes/Cucumberish/Core/Models/CCIAroundHock.h +37 -0
  16. data/XCFit/Classes/Cucumberish/Core/Models/CCIAroundHock.m +37 -0
  17. data/XCFit/Classes/Cucumberish/Core/Models/CCIBackground.h +46 -0
  18. data/XCFit/Classes/Cucumberish/Core/Models/CCIBackground.m +117 -0
  19. data/XCFit/Classes/Cucumberish/Core/Models/CCIExample.h +89 -0
  20. data/XCFit/Classes/Cucumberish/Core/Models/CCIExample.m +128 -0
  21. data/XCFit/Classes/Cucumberish/Core/Models/CCIFeature.h +49 -0
  22. data/XCFit/Classes/Cucumberish/Core/Models/CCIFeature.m +174 -0
  23. data/XCFit/Classes/Cucumberish/Core/Models/CCIHock.h +36 -0
  24. data/XCFit/Classes/Cucumberish/Core/Models/CCIHock.m +34 -0
  25. data/XCFit/Classes/Cucumberish/Core/Models/CCILocation.h +61 -0
  26. data/XCFit/Classes/Cucumberish/Core/Models/CCILocation.m +91 -0
  27. data/XCFit/Classes/Cucumberish/Core/Models/CCIScenarioDefinition.h +97 -0
  28. data/XCFit/Classes/Cucumberish/Core/Models/CCIScenarioDefinition.m +224 -0
  29. data/XCFit/Classes/Cucumberish/Core/Models/CCIStep.h +85 -0
  30. data/XCFit/Classes/Cucumberish/Core/Models/CCIStep.m +98 -0
  31. data/XCFit/Classes/Cucumberish/Core/Models/CCIStepDefinition.h +43 -0
  32. data/XCFit/Classes/Cucumberish/Core/Models/CCIStepDefinition.m +65 -0
  33. data/XCFit/Classes/Cucumberish/Cucumberish.h +133 -0
  34. data/XCFit/Classes/Cucumberish/Cucumberish.m +604 -0
  35. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHAstBuilder.h +15 -0
  36. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHAstBuilder.m +312 -0
  37. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHAstNode.h +20 -0
  38. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHAstNode.m +79 -0
  39. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHBackground.h +12 -0
  40. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHBackground.m +18 -0
  41. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHComment.h +11 -0
  42. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHComment.m +27 -0
  43. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHDataTable.h +14 -0
  44. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHDataTable.m +30 -0
  45. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHDocString.h +14 -0
  46. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHDocString.m +29 -0
  47. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHExamples.h +24 -0
  48. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHExamples.m +49 -0
  49. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHFeature.h +24 -0
  50. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHFeature.m +50 -0
  51. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinDialect.h +25 -0
  52. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinDialect.m +64 -0
  53. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinDialectProvider.h +9 -0
  54. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinDialectProvider.m +124 -0
  55. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinDialectProviderProtocol.h +10 -0
  56. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLanguageConstants.h +9 -0
  57. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLanguageConstants.m +10 -0
  58. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLanguageSetting.h +17 -0
  59. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLanguageSetting.m +18 -0
  60. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLine.h +12 -0
  61. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLine.m +179 -0
  62. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLineProtocol.h +64 -0
  63. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLineSpan.h +9 -0
  64. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHGherkinLineSpan.m +26 -0
  65. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHHasDescriptionProtocol.h +8 -0
  66. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHHasLocationProtocol.h +8 -0
  67. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHHasRowsProtocol.h +8 -0
  68. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHHasStepsProtocol.h +8 -0
  69. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHHasTagsProtocol.h +8 -0
  70. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHLocation.h +12 -0
  71. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHLocation.m +41 -0
  72. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHNode.h +4 -0
  73. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHNode.m +5 -0
  74. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParser+Extensions.h +10 -0
  75. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParser+Extensions.m +18 -0
  76. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParser.h +132 -0
  77. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParser.m +2735 -0
  78. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParserException.h +55 -0
  79. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHParserException.m +192 -0
  80. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenario.h +14 -0
  81. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenario.m +18 -0
  82. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenarioDefinition.h +23 -0
  83. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenarioDefinition.m +41 -0
  84. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenarioDefinition_Private.h +6 -0
  85. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenarioOutline.h +15 -0
  86. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHScenarioOutline.m +26 -0
  87. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHStep.h +16 -0
  88. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHStep.m +35 -0
  89. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHStepArgument.h +4 -0
  90. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHStepArgument.m +5 -0
  91. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTableCell.h +13 -0
  92. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTableCell.m +28 -0
  93. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTableRow.h +13 -0
  94. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTableRow.m +29 -0
  95. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTag.h +13 -0
  96. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTag.m +28 -0
  97. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHToken.h +26 -0
  98. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHToken.m +50 -0
  99. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTokenMatcher.h +29 -0
  100. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTokenMatcher.m +283 -0
  101. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTokenScanner.h +12 -0
  102. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/GHTokenScanner.m +59 -0
  103. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/NSString+Trim.h +7 -0
  104. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/NSString+Trim.m +28 -0
  105. data/XCFit/Classes/Cucumberish/Dependencies/Gherkin/gherkin-languages.json +2969 -0
  106. data/XCFit/Classes/Cucumberish/Utils/NSArray+Hashes.h +24 -0
  107. data/XCFit/Classes/Cucumberish/Utils/NSArray+Hashes.m +44 -0
  108. data/XCFit/Classes/Cucumberish/Utils/NSObject+Dictionary.h +7 -0
  109. data/XCFit/Classes/Cucumberish/Utils/NSObject+Dictionary.m +83 -0
  110. data/XCFit/Classes/Cucumberish/Utils/NSString+Formatter.h +32 -0
  111. data/XCFit/Classes/Cucumberish/Utils/NSString+Formatter.m +70 -0
  112. data/Xcode7-Templates/XCFit/Cucumberish UI Test Bundle Base.xctemplate/TemplateInfo.plist +13 -0
  113. data/Xcode7-Templates/XCFit/iOS UI Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +11 -0
  114. data/lib/XCFit/version.rb +1 -1
  115. metadata +108 -38
  116. data/XCFit/Assets/.gitkeep +0 -0
  117. data/XCFit/Assets/Gherkin/Cucumber Feature.xctemplate/TemplateIcon.png +0 -0
  118. data/XCFit/Assets/Gherkin/Cucumber Feature.xctemplate/TemplateIcon@2x.png +0 -0
  119. data/XCFit/Assets/Gherkin/Cucumber Feature.xctemplate/TemplateInfo.plist +0 -22
  120. data/XCFit/Assets/Gherkin/Cucumber Feature.xctemplate/___FILEBASENAME___.feature +0 -20
  121. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/AcceptanceTests-Bridging-Header.h +0 -1
  122. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/FixtureExample.swift +0 -31
  123. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/SlimTables.h +0 -28
  124. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon.png +0 -0
  125. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon@2x.png +0 -0
  126. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/TemplateInfo.plist +0 -150
  127. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +0 -1
  128. data/XCFit/Assets/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +0 -15
  129. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon.png +0 -0
  130. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon@2x.png +0 -0
  131. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateInfo.plist +0 -123
  132. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +0 -7
  133. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.feature +0 -11
  134. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.h +0 -14
  135. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +0 -17
  136. data/XCFit/Assets/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +0 -23
  137. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/TemplateIcon.png +0 -0
  138. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/TemplateIcon@2x.png +0 -0
  139. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/TemplateInfo.plist +0 -123
  140. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +0 -7
  141. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.feature +0 -11
  142. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.h +0 -14
  143. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +0 -17
  144. data/XCFit/Assets/XCFit/Cucumberish UI Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +0 -25
  145. data/XCFit/Assets/XCFit/Mac Acceptance Tests.xctemplate/Empty.xib +0 -12
  146. data/XCFit/Assets/XCFit/Mac Acceptance Tests.xctemplate/TemplateInfo.plist +0 -54
  147. data/XCFit/Assets/XCFit/MacOS API Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
  148. data/XCFit/Assets/XCFit/MacOS UI Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
  149. data/XCFit/Assets/XCFit/iOS API Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
  150. data/XCFit/Assets/XCFit/iOS Acceptance Tests.xctemplate/TemplateInfo.plist +0 -52
  151. data/XCFit/Assets/XCFit/iOS UI Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
@@ -0,0 +1,4 @@
1
+ #import <Foundation/Foundation.h>
2
+ @interface GHNode : NSObject
3
+
4
+ @end
@@ -0,0 +1,5 @@
1
+ #import "GHNode.h"
2
+
3
+ @implementation GHNode
4
+
5
+ @end
@@ -0,0 +1,10 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "GHParser.h"
3
+
4
+ @class GHFeature;
5
+
6
+ @interface GHParser (Extensions)
7
+
8
+ - (GHFeature *)parse:(NSString *)theSourceFile;
9
+
10
+ @end
@@ -0,0 +1,18 @@
1
+ #import "GHParser+Extensions.h"
2
+
3
+ #import "GHParser.h"
4
+ #import "GHTokenScanner.h"
5
+ #import "GHFeature.h"
6
+
7
+ @implementation GHParser (Extensions)
8
+
9
+ - (GHFeature *)parse:(NSString *)theSourceFile
10
+ {
11
+ GHFeature * feature = [self parseWithTokenScanner: [[GHTokenScanner alloc] initWithContentsOfFile: theSourceFile]];
12
+ if(![feature isKindOfClass:[GHFeature class]] || (![feature.name isKindOfClass:[NSString class]] || feature.name.length == 0)){
13
+ return nil;
14
+ }
15
+ return feature;
16
+ }
17
+
18
+ @end
@@ -0,0 +1,132 @@
1
+ // ------------------------------------------------------------------------------
2
+ // <auto-generated>
3
+ // This code was generated by Berp (http://https://github.com/gasparnagy/berp/).
4
+ //
5
+ // Changes to this file may cause incorrect behavior and will be lost if
6
+ // the code is regenerated.
7
+ // </auto-generated>
8
+ // ------------------------------------------------------------------------------
9
+ #import <Foundation/Foundation.h>
10
+
11
+ typedef enum GHTokenType
12
+ {
13
+ GHTokenTypeNone,
14
+ GHTokenTypeEOF,
15
+ GHTokenTypeEmpty,
16
+ GHTokenTypeComment,
17
+ GHTokenTypeTagLine,
18
+ GHTokenTypeFeatureLine,
19
+ GHTokenTypeBackgroundLine,
20
+ GHTokenTypeScenarioLine,
21
+ GHTokenTypeScenarioOutlineLine,
22
+ GHTokenTypeExamplesLine,
23
+ GHTokenTypeStepLine,
24
+ GHTokenTypeDocStringSeparator,
25
+ GHTokenTypeTableRow,
26
+ GHTokenTypeLanguage,
27
+ GHTokenTypeOther,
28
+ } GHTokenType;
29
+
30
+ typedef enum GHRuleType
31
+ {
32
+ GHRuleTypeNone,
33
+ GHRuleType_EOF, // #EOF
34
+ GHRuleType_Empty, // #Empty
35
+ GHRuleType_Comment, // #Comment
36
+ GHRuleType_TagLine, // #TagLine
37
+ GHRuleType_FeatureLine, // #FeatureLine
38
+ GHRuleType_BackgroundLine, // #BackgroundLine
39
+ GHRuleType_ScenarioLine, // #ScenarioLine
40
+ GHRuleType_ScenarioOutlineLine, // #ScenarioOutlineLine
41
+ GHRuleType_ExamplesLine, // #ExamplesLine
42
+ GHRuleType_StepLine, // #StepLine
43
+ GHRuleType_DocStringSeparator, // #DocStringSeparator
44
+ GHRuleType_TableRow, // #TableRow
45
+ GHRuleType_Language, // #Language
46
+ GHRuleType_Other, // #Other
47
+ GHRuleTypeFeature, // Feature! := Feature_Header Background? Scenario_Definition*
48
+ GHRuleTypeFeature_Header, // Feature_Header! := #Language? Tags? #FeatureLine Feature_Description
49
+ GHRuleTypeBackground, // Background! := #BackgroundLine Background_Description Scenario_Step*
50
+ GHRuleTypeScenario_Definition, // Scenario_Definition! := Tags? (Scenario | ScenarioOutline)
51
+ GHRuleTypeScenario, // Scenario! := #ScenarioLine Scenario_Description Scenario_Step*
52
+ GHRuleTypeScenarioOutline, // ScenarioOutline! := #ScenarioOutlineLine ScenarioOutline_Description ScenarioOutline_Step* Examples_Definition*
53
+ GHRuleTypeExamples_Definition, // Examples_Definition! [#Empty|#Comment|#TagLine-&gt;#ExamplesLine] := Tags? Examples
54
+ GHRuleTypeExamples, // Examples! := #ExamplesLine Examples_Description Examples_Table?
55
+ GHRuleTypeExamples_Table, // Examples_Table! := #TableRow #TableRow*
56
+ GHRuleTypeScenario_Step, // Scenario_Step := Step
57
+ GHRuleTypeScenarioOutline_Step, // ScenarioOutline_Step := Step
58
+ GHRuleTypeStep, // Step! := #StepLine Step_Arg?
59
+ GHRuleTypeStep_Arg, // Step_Arg := (DataTable | DocString)
60
+ GHRuleTypeDataTable, // DataTable! := #TableRow+
61
+ GHRuleTypeDocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator
62
+ GHRuleTypeTags, // Tags! := #TagLine+
63
+ GHRuleTypeFeature_Description, // Feature_Description := Description_Helper
64
+ GHRuleTypeBackground_Description, // Background_Description := Description_Helper
65
+ GHRuleTypeScenario_Description, // Scenario_Description := Description_Helper
66
+ GHRuleTypeScenarioOutline_Description, // ScenarioOutline_Description := Description_Helper
67
+ GHRuleTypeExamples_Description, // Examples_Description := Description_Helper
68
+ GHRuleTypeDescription_Helper, // Description_Helper := #Empty* Description? #Comment*
69
+ GHRuleTypeDescription, // Description! := #Other+
70
+ } GHRuleType;
71
+
72
+ #import "GHToken.h"
73
+ #import "GHParserException.h"
74
+
75
+ @protocol GHAstBuilderProtocol <NSObject>
76
+
77
+ - (void)buildWithToken:(GHToken *)theToken;
78
+ - (void)startRuleWithType:(GHRuleType)theRuleType;
79
+ - (void)endRuleWithType:(GHRuleType)theRuleType;
80
+ - (id)result;
81
+ - (void)reset;
82
+
83
+ @end
84
+
85
+ @protocol GHTokenScannerProtocol <NSObject>
86
+
87
+ - (GHToken *)read;
88
+
89
+ @end
90
+
91
+ @protocol GHTokenMatcherProtocol <NSObject>
92
+
93
+ - (BOOL)matchEOFWithToken:(GHToken *)theToken;
94
+ - (BOOL)matchEmptyWithToken:(GHToken *)theToken;
95
+ - (BOOL)matchCommentWithToken:(GHToken *)theToken;
96
+ - (BOOL)matchTagLineWithToken:(GHToken *)theToken;
97
+ - (BOOL)matchFeatureLineWithToken:(GHToken *)theToken;
98
+ - (BOOL)matchBackgroundLineWithToken:(GHToken *)theToken;
99
+ - (BOOL)matchScenarioLineWithToken:(GHToken *)theToken;
100
+ - (BOOL)matchScenarioOutlineLineWithToken:(GHToken *)theToken;
101
+ - (BOOL)matchExamplesLineWithToken:(GHToken *)theToken;
102
+ - (BOOL)matchStepLineWithToken:(GHToken *)theToken;
103
+ - (BOOL)matchDocStringSeparatorWithToken:(GHToken *)theToken;
104
+ - (BOOL)matchTableRowWithToken:(GHToken *)theToken;
105
+ - (BOOL)matchLanguageWithToken:(GHToken *)theToken;
106
+ - (BOOL)matchOtherWithToken:(GHToken *)theToken;
107
+ - (void)reset;
108
+
109
+ @end
110
+
111
+ #import "GHAstBuilder.h"
112
+ #import "GHTokenMatcher.h"
113
+ #import "GHParserException.h"
114
+
115
+ @interface GHParserContext : NSObject
116
+
117
+ @property (nonatomic, strong) id<GHTokenScannerProtocol> tokenScanner;
118
+ @property (nonatomic, strong) id<GHTokenMatcherProtocol> tokenMatcher;
119
+ @property (nonatomic, strong) NSMutableArray<GHToken *> * tokenQueue;
120
+ @property (nonatomic, strong) NSMutableArray<GHParserException *> * errors;
121
+
122
+ @end
123
+
124
+ @interface GHParser : NSObject
125
+
126
+ @property (nonatomic, assign) BOOL stopAtFirstError;
127
+
128
+ - (id)initWithAstBuilder:(id<GHAstBuilderProtocol>)theAstBuilder;
129
+ - (id)parseWithTokenScanner:(id<GHTokenScannerProtocol>)theTokenScanner;
130
+ - (id)parseWithTokenScanner:(id<GHTokenScannerProtocol>)theTokenScanner tokenMatcher:(id<GHTokenMatcherProtocol>)theTokenMatcher;
131
+
132
+ @end
@@ -0,0 +1,2735 @@
1
+ // ------------------------------------------------------------------------------
2
+ // <auto-generated>
3
+ // This code was generated by Berp (http://https://github.com/gasparnagy/berp/).
4
+ //
5
+ // Changes to this file may cause incorrect behavior and will be lost if
6
+ // the code is regenerated.
7
+ // </auto-generated>
8
+ // ------------------------------------------------------------------------------
9
+
10
+
11
+ #import "GHParser.h"
12
+
13
+ #import "GHAstBuilder.h"
14
+ #import "GHToken.h"
15
+ #import "GHParserException.h"
16
+ @implementation GHParserContext
17
+
18
+ @synthesize tokenScanner;
19
+ @synthesize tokenMatcher;
20
+ @synthesize tokenQueue;
21
+ @synthesize errors;
22
+
23
+ @end
24
+
25
+ @implementation GHParser
26
+ {
27
+ id<GHAstBuilderProtocol> astBuilder;
28
+ }
29
+
30
+ @synthesize stopAtFirstError;
31
+
32
+ - (id)init
33
+ {
34
+ return [self initWithAstBuilder: [[GHAstBuilder alloc] init]];
35
+ }
36
+
37
+ - (id)initWithAstBuilder:(id<GHAstBuilderProtocol>)theAstBuilder
38
+ {
39
+ if (self = [super init])
40
+ {
41
+ astBuilder = theAstBuilder;
42
+ }
43
+
44
+ return self;
45
+ }
46
+
47
+ - (id)parseWithTokenScanner:(id<GHTokenScannerProtocol>)theTokenScanner
48
+ {
49
+ return [self parseWithTokenScanner: theTokenScanner tokenMatcher: [[GHTokenMatcher alloc] init]];
50
+ }
51
+
52
+ - (id)parseWithTokenScanner:(id<GHTokenScannerProtocol>)theTokenScanner tokenMatcher:(id<GHTokenMatcherProtocol>)theTokenMatcher
53
+ {
54
+ [theTokenMatcher reset];
55
+ [astBuilder reset];
56
+
57
+ GHParserContext * context = [[GHParserContext alloc] init];
58
+ [context setTokenScanner: theTokenScanner];
59
+ [context setTokenMatcher: theTokenMatcher];
60
+ [context setTokenQueue: [[NSMutableArray<GHToken *> alloc] init]];
61
+ [context setErrors: [[NSMutableArray<GHParserException *> alloc] init]];
62
+
63
+ [self startRuleWithContext: context ruleType: GHRuleTypeFeature];
64
+ NSUInteger state = 0;
65
+ GHToken * token;
66
+ do
67
+ {
68
+ token = [self readTokenWithContext: context];
69
+ state = [self matchToken: token withState: state context: context];
70
+ } while(![token isEOF]);
71
+
72
+ [self endRuleWithContext: context ruleType: GHRuleTypeFeature];
73
+
74
+ if ([[context errors] count])
75
+ {
76
+ @throw [[GHCompositeParserException alloc] initWithErrors: [context errors]];
77
+ }
78
+
79
+ return [self resultWithContext: context];
80
+ }
81
+
82
+ - (void)addError:(GHParserException *)theParserError withContext:(GHParserContext *)theContext
83
+ {
84
+ [[theContext errors] addObject: theParserError];
85
+ if ([[theContext errors] count] > 10)
86
+ @throw [[GHCompositeParserException alloc] initWithErrors: [theContext errors]];
87
+ }
88
+
89
+ - (void)handleAstErrorWithContext:(GHParserContext *)theContext actionBlock:(void (^)())theActionBlock
90
+ {
91
+ [self handleExternalErrorWithContext: theContext actionBlock: ^() { theActionBlock(); return YES; } defaultValue: NO];
92
+ }
93
+
94
+ - (BOOL)handleExternalErrorWithContext:(GHParserContext *)theContext actionBlock:(BOOL (^)())theActionBlock defaultValue:(BOOL)theDefaultValue
95
+ {
96
+ if (stopAtFirstError)
97
+ {
98
+ return theActionBlock();
99
+ }
100
+
101
+ @try
102
+ {
103
+ return theActionBlock();
104
+ }
105
+ @catch (GHCompositeParserException * compositeParserException)
106
+ {
107
+ for (GHParserException * error in [compositeParserException errors])
108
+ {
109
+ [self addError: error withContext: theContext];
110
+ }
111
+ }
112
+ @catch (GHParserException * error)
113
+ {
114
+ [self addError: error withContext: theContext];
115
+ }
116
+ return theDefaultValue;
117
+ }
118
+
119
+ - (void)buildWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
120
+ {
121
+ [self handleAstErrorWithContext: theContext actionBlock: ^() { [astBuilder buildWithToken: theToken]; }];
122
+ }
123
+
124
+ - (void)startRuleWithContext:(GHParserContext *)theContext ruleType:(GHRuleType)theRuleType
125
+ {
126
+ [self handleAstErrorWithContext: theContext actionBlock: ^() { [astBuilder startRuleWithType: theRuleType]; }];
127
+ }
128
+
129
+ - (void)endRuleWithContext:(GHParserContext *)theContext ruleType:(GHRuleType)theRuleType
130
+ {
131
+ [self handleAstErrorWithContext: theContext actionBlock: ^() { [astBuilder endRuleWithType: theRuleType]; }];
132
+ }
133
+
134
+ - (id)resultWithContext:(GHParserContext *)theContext
135
+ {
136
+ return [astBuilder result];
137
+ }
138
+
139
+ - (GHToken *)readTokenWithContext:(GHParserContext *)theContext
140
+ {
141
+ if ([[theContext tokenQueue] count] > 0)
142
+ {
143
+ id firstObject = [[theContext tokenQueue] firstObject];
144
+ [[theContext tokenQueue] removeObjectAtIndex: 0];
145
+ return firstObject;
146
+ }
147
+ else
148
+ return [[theContext tokenScanner] read];
149
+ }
150
+
151
+
152
+ - (BOOL)matchEOFWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
153
+ {
154
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchEOFWithToken: theToken]; } defaultValue: NO];
155
+ }
156
+
157
+ - (BOOL)matchEmptyWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
158
+ {
159
+ if ([theToken isEOF]) return NO;
160
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchEmptyWithToken: theToken]; } defaultValue: NO];
161
+ }
162
+
163
+ - (BOOL)matchCommentWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
164
+ {
165
+ if ([theToken isEOF]) return NO;
166
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchCommentWithToken: theToken]; } defaultValue: NO];
167
+ }
168
+
169
+ - (BOOL)matchTagLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
170
+ {
171
+ if ([theToken isEOF]) return NO;
172
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchTagLineWithToken: theToken]; } defaultValue: NO];
173
+ }
174
+
175
+ - (BOOL)matchFeatureLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
176
+ {
177
+ if ([theToken isEOF]) return NO;
178
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchFeatureLineWithToken: theToken]; } defaultValue: NO];
179
+ }
180
+
181
+ - (BOOL)matchBackgroundLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
182
+ {
183
+ if ([theToken isEOF]) return NO;
184
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchBackgroundLineWithToken: theToken]; } defaultValue: NO];
185
+ }
186
+
187
+ - (BOOL)matchScenarioLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
188
+ {
189
+ if ([theToken isEOF]) return NO;
190
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchScenarioLineWithToken: theToken]; } defaultValue: NO];
191
+ }
192
+
193
+ - (BOOL)matchScenarioOutlineLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
194
+ {
195
+ if ([theToken isEOF]) return NO;
196
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchScenarioOutlineLineWithToken: theToken]; } defaultValue: NO];
197
+ }
198
+
199
+ - (BOOL)matchExamplesLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
200
+ {
201
+ if ([theToken isEOF]) return NO;
202
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchExamplesLineWithToken: theToken]; } defaultValue: NO];
203
+ }
204
+
205
+ - (BOOL)matchStepLineWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
206
+ {
207
+ if ([theToken isEOF]) return NO;
208
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchStepLineWithToken: theToken]; } defaultValue: NO];
209
+ }
210
+
211
+ - (BOOL)matchDocStringSeparatorWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
212
+ {
213
+ if ([theToken isEOF]) return NO;
214
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchDocStringSeparatorWithToken: theToken]; } defaultValue: NO];
215
+ }
216
+
217
+ - (BOOL)matchTableRowWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
218
+ {
219
+ if ([theToken isEOF]) return NO;
220
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchTableRowWithToken: theToken]; } defaultValue: NO];
221
+ }
222
+
223
+ - (BOOL)matchLanguageWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
224
+ {
225
+ if ([theToken isEOF]) return NO;
226
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchLanguageWithToken: theToken]; } defaultValue: NO];
227
+ }
228
+
229
+ - (BOOL)matchOtherWithContext:(GHParserContext *)theContext token:(GHToken *)theToken
230
+ {
231
+ if ([theToken isEOF]) return NO;
232
+ return [self handleExternalErrorWithContext: theContext actionBlock: ^() { return [[theContext tokenMatcher] matchOtherWithToken: theToken]; } defaultValue: NO];
233
+ }
234
+
235
+ - (NSUInteger)matchToken:(GHToken *)theToken withState:(NSUInteger)theState context:(GHParserContext *)theContext
236
+ {
237
+ NSUInteger newState;
238
+ switch (theState)
239
+ {
240
+ case 0:
241
+ newState = [self matchTokenAt_0: theToken context: theContext];
242
+ break;
243
+ case 1:
244
+ newState = [self matchTokenAt_1: theToken context: theContext];
245
+ break;
246
+ case 2:
247
+ newState = [self matchTokenAt_2: theToken context: theContext];
248
+ break;
249
+ case 3:
250
+ newState = [self matchTokenAt_3: theToken context: theContext];
251
+ break;
252
+ case 4:
253
+ newState = [self matchTokenAt_4: theToken context: theContext];
254
+ break;
255
+ case 5:
256
+ newState = [self matchTokenAt_5: theToken context: theContext];
257
+ break;
258
+ case 6:
259
+ newState = [self matchTokenAt_6: theToken context: theContext];
260
+ break;
261
+ case 7:
262
+ newState = [self matchTokenAt_7: theToken context: theContext];
263
+ break;
264
+ case 8:
265
+ newState = [self matchTokenAt_8: theToken context: theContext];
266
+ break;
267
+ case 9:
268
+ newState = [self matchTokenAt_9: theToken context: theContext];
269
+ break;
270
+ case 10:
271
+ newState = [self matchTokenAt_10: theToken context: theContext];
272
+ break;
273
+ case 11:
274
+ newState = [self matchTokenAt_11: theToken context: theContext];
275
+ break;
276
+ case 12:
277
+ newState = [self matchTokenAt_12: theToken context: theContext];
278
+ break;
279
+ case 13:
280
+ newState = [self matchTokenAt_13: theToken context: theContext];
281
+ break;
282
+ case 14:
283
+ newState = [self matchTokenAt_14: theToken context: theContext];
284
+ break;
285
+ case 15:
286
+ newState = [self matchTokenAt_15: theToken context: theContext];
287
+ break;
288
+ case 16:
289
+ newState = [self matchTokenAt_16: theToken context: theContext];
290
+ break;
291
+ case 17:
292
+ newState = [self matchTokenAt_17: theToken context: theContext];
293
+ break;
294
+ case 18:
295
+ newState = [self matchTokenAt_18: theToken context: theContext];
296
+ break;
297
+ case 19:
298
+ newState = [self matchTokenAt_19: theToken context: theContext];
299
+ break;
300
+ case 20:
301
+ newState = [self matchTokenAt_20: theToken context: theContext];
302
+ break;
303
+ case 21:
304
+ newState = [self matchTokenAt_21: theToken context: theContext];
305
+ break;
306
+ case 22:
307
+ newState = [self matchTokenAt_22: theToken context: theContext];
308
+ break;
309
+ case 23:
310
+ newState = [self matchTokenAt_23: theToken context: theContext];
311
+ break;
312
+ case 24:
313
+ newState = [self matchTokenAt_24: theToken context: theContext];
314
+ break;
315
+ case 25:
316
+ newState = [self matchTokenAt_25: theToken context: theContext];
317
+ break;
318
+ case 26:
319
+ newState = [self matchTokenAt_26: theToken context: theContext];
320
+ break;
321
+ case 28:
322
+ newState = [self matchTokenAt_28: theToken context: theContext];
323
+ break;
324
+ case 29:
325
+ newState = [self matchTokenAt_29: theToken context: theContext];
326
+ break;
327
+ case 30:
328
+ newState = [self matchTokenAt_30: theToken context: theContext];
329
+ break;
330
+ case 31:
331
+ newState = [self matchTokenAt_31: theToken context: theContext];
332
+ break;
333
+ case 32:
334
+ newState = [self matchTokenAt_32: theToken context: theContext];
335
+ break;
336
+ case 33:
337
+ newState = [self matchTokenAt_33: theToken context: theContext];
338
+ break;
339
+ default:
340
+ @throw [NSException exceptionWithName: NSInvalidArgumentException reason: [@"Unknown state: " stringByAppendingFormat: @"%d", (int)theState] userInfo: nil];
341
+ }
342
+ return newState;
343
+ }
344
+
345
+
346
+ // Start
347
+ - (int)matchTokenAt_0:(GHToken *)theToken context:(GHParserContext *)theContext
348
+ {
349
+ if ([self matchLanguageWithContext: theContext token: theToken])
350
+ {
351
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
352
+ [self buildWithContext: theContext token: theToken];
353
+ return 1;
354
+ }
355
+ if ([self matchTagLineWithContext: theContext token: theToken])
356
+ {
357
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
358
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
359
+ [self buildWithContext: theContext token: theToken];
360
+ return 2;
361
+ }
362
+ if ([self matchFeatureLineWithContext: theContext token: theToken])
363
+ {
364
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
365
+ [self buildWithContext: theContext token: theToken];
366
+ return 3;
367
+ }
368
+ if ([self matchCommentWithContext: theContext token: theToken])
369
+ {
370
+ [self buildWithContext: theContext token: theToken];
371
+ return 0;
372
+ }
373
+ if ([self matchEmptyWithContext: theContext token: theToken])
374
+ {
375
+ [self buildWithContext: theContext token: theToken];
376
+ return 0;
377
+ }
378
+
379
+ if(theToken.matchedType == GHTokenTypeNone){
380
+ return 0;
381
+ }
382
+ NSString * stateComment = @"State: 0 - Start";
383
+ [theToken detach];
384
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#Language", @"#TagLine", @"#FeatureLine", @"#Comment", @"#Empty", nil];
385
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
386
+ if (stopAtFirstError)
387
+ @throw error;
388
+
389
+ [self addError: error withContext: theContext];
390
+ return 0;
391
+
392
+ }
393
+
394
+
395
+ // Feature:0>Feature_Header:0>#Language:0
396
+ - (int)matchTokenAt_1:(GHToken *)theToken context:(GHParserContext *)theContext
397
+ {
398
+ if ([self matchTagLineWithContext: theContext token: theToken])
399
+ {
400
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
401
+ [self buildWithContext: theContext token: theToken];
402
+ return 2;
403
+ }
404
+ if ([self matchFeatureLineWithContext: theContext token: theToken])
405
+ {
406
+ [self buildWithContext: theContext token: theToken];
407
+ return 3;
408
+ }
409
+ if ([self matchCommentWithContext: theContext token: theToken])
410
+ {
411
+ [self buildWithContext: theContext token: theToken];
412
+ return 1;
413
+ }
414
+ if ([self matchEmptyWithContext: theContext token: theToken])
415
+ {
416
+ [self buildWithContext: theContext token: theToken];
417
+ return 1;
418
+ }
419
+
420
+ NSString * stateComment = @"State: 1 - Feature:0>Feature_Header:0>#Language:0";
421
+ [theToken detach];
422
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#TagLine", @"#FeatureLine", @"#Comment", @"#Empty", nil];
423
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
424
+ if (stopAtFirstError)
425
+ @throw error;
426
+
427
+ [self addError: error withContext: theContext];
428
+ return 1;
429
+
430
+ }
431
+
432
+
433
+ // Feature:0>Feature_Header:1>Tags:0>#TagLine:0
434
+ - (int)matchTokenAt_2:(GHToken *)theToken context:(GHParserContext *)theContext
435
+ {
436
+ if ([self matchTagLineWithContext: theContext token: theToken])
437
+ {
438
+ [self buildWithContext: theContext token: theToken];
439
+ return 2;
440
+ }
441
+ if ([self matchFeatureLineWithContext: theContext token: theToken])
442
+ {
443
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeTags];
444
+ [self buildWithContext: theContext token: theToken];
445
+ return 3;
446
+ }
447
+ if ([self matchCommentWithContext: theContext token: theToken])
448
+ {
449
+ [self buildWithContext: theContext token: theToken];
450
+ return 2;
451
+ }
452
+ if ([self matchEmptyWithContext: theContext token: theToken])
453
+ {
454
+ [self buildWithContext: theContext token: theToken];
455
+ return 2;
456
+ }
457
+
458
+ NSString * stateComment = @"State: 2 - Feature:0>Feature_Header:1>Tags:0>#TagLine:0";
459
+ [theToken detach];
460
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#TagLine", @"#FeatureLine", @"#Comment", @"#Empty", nil];
461
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
462
+ if (stopAtFirstError)
463
+ @throw error;
464
+
465
+ [self addError: error withContext: theContext];
466
+ return 2;
467
+
468
+ }
469
+
470
+
471
+ // Feature:0>Feature_Header:2>#FeatureLine:0
472
+ - (int)matchTokenAt_3:(GHToken *)theToken context:(GHParserContext *)theContext
473
+ {
474
+ if ([self matchEOFWithContext: theContext token: theToken])
475
+ {
476
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
477
+ [self buildWithContext: theContext token: theToken];
478
+ return 27;
479
+ }
480
+ if ([self matchEmptyWithContext: theContext token: theToken])
481
+ {
482
+ [self buildWithContext: theContext token: theToken];
483
+ return 3;
484
+ }
485
+ if ([self matchCommentWithContext: theContext token: theToken])
486
+ {
487
+ [self buildWithContext: theContext token: theToken];
488
+ return 5;
489
+ }
490
+ if ([self matchBackgroundLineWithContext: theContext token: theToken])
491
+ {
492
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
493
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeBackground];
494
+ [self buildWithContext: theContext token: theToken];
495
+ return 6;
496
+ }
497
+ if ([self matchTagLineWithContext: theContext token: theToken])
498
+ {
499
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
500
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
501
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
502
+ [self buildWithContext: theContext token: theToken];
503
+ return 11;
504
+ }
505
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
506
+ {
507
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
508
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
509
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
510
+ [self buildWithContext: theContext token: theToken];
511
+ return 12;
512
+ }
513
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
514
+ {
515
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
516
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
517
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
518
+ [self buildWithContext: theContext token: theToken];
519
+ return 17;
520
+ }
521
+ if ([self matchOtherWithContext: theContext token: theToken])
522
+ {
523
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDescription];
524
+ [self buildWithContext: theContext token: theToken];
525
+ return 4;
526
+ }
527
+
528
+ NSString * stateComment = @"State: 3 - Feature:0>Feature_Header:2>#FeatureLine:0";
529
+ [theToken detach];
530
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Empty", @"#Comment", @"#BackgroundLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
531
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
532
+ if (stopAtFirstError)
533
+ @throw error;
534
+
535
+ [self addError: error withContext: theContext];
536
+ return 3;
537
+
538
+ }
539
+
540
+
541
+ // Feature:0>Feature_Header:3>Feature_Description:0>Description_Helper:1>Description:0>#Other:0
542
+ - (int)matchTokenAt_4:(GHToken *)theToken context:(GHParserContext *)theContext
543
+ {
544
+ if ([self matchEOFWithContext: theContext token: theToken])
545
+ {
546
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
547
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
548
+ [self buildWithContext: theContext token: theToken];
549
+ return 27;
550
+ }
551
+ if ([self matchCommentWithContext: theContext token: theToken])
552
+ {
553
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
554
+ [self buildWithContext: theContext token: theToken];
555
+ return 5;
556
+ }
557
+ if ([self matchBackgroundLineWithContext: theContext token: theToken])
558
+ {
559
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
560
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
561
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeBackground];
562
+ [self buildWithContext: theContext token: theToken];
563
+ return 6;
564
+ }
565
+ if ([self matchTagLineWithContext: theContext token: theToken])
566
+ {
567
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
568
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
569
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
570
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
571
+ [self buildWithContext: theContext token: theToken];
572
+ return 11;
573
+ }
574
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
575
+ {
576
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
577
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
578
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
579
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
580
+ [self buildWithContext: theContext token: theToken];
581
+ return 12;
582
+ }
583
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
584
+ {
585
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
586
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
587
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
588
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
589
+ [self buildWithContext: theContext token: theToken];
590
+ return 17;
591
+ }
592
+ if ([self matchOtherWithContext: theContext token: theToken])
593
+ {
594
+ [self buildWithContext: theContext token: theToken];
595
+ return 4;
596
+ }
597
+
598
+ NSString * stateComment = @"State: 4 - Feature:0>Feature_Header:3>Feature_Description:0>Description_Helper:1>Description:0>#Other:0";
599
+ [theToken detach];
600
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#BackgroundLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
601
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
602
+ if (stopAtFirstError)
603
+ @throw error;
604
+
605
+ [self addError: error withContext: theContext];
606
+ return 4;
607
+
608
+ }
609
+
610
+
611
+ // Feature:0>Feature_Header:3>Feature_Description:0>Description_Helper:2>#Comment:0
612
+ - (int)matchTokenAt_5:(GHToken *)theToken context:(GHParserContext *)theContext
613
+ {
614
+ if ([self matchEOFWithContext: theContext token: theToken])
615
+ {
616
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
617
+ [self buildWithContext: theContext token: theToken];
618
+ return 27;
619
+ }
620
+ if ([self matchCommentWithContext: theContext token: theToken])
621
+ {
622
+ [self buildWithContext: theContext token: theToken];
623
+ return 5;
624
+ }
625
+ if ([self matchBackgroundLineWithContext: theContext token: theToken])
626
+ {
627
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
628
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeBackground];
629
+ [self buildWithContext: theContext token: theToken];
630
+ return 6;
631
+ }
632
+ if ([self matchTagLineWithContext: theContext token: theToken])
633
+ {
634
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
635
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
636
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
637
+ [self buildWithContext: theContext token: theToken];
638
+ return 11;
639
+ }
640
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
641
+ {
642
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
643
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
644
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
645
+ [self buildWithContext: theContext token: theToken];
646
+ return 12;
647
+ }
648
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
649
+ {
650
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeFeature_Header];
651
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
652
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
653
+ [self buildWithContext: theContext token: theToken];
654
+ return 17;
655
+ }
656
+ if ([self matchEmptyWithContext: theContext token: theToken])
657
+ {
658
+ [self buildWithContext: theContext token: theToken];
659
+ return 5;
660
+ }
661
+
662
+ NSString * stateComment = @"State: 5 - Feature:0>Feature_Header:3>Feature_Description:0>Description_Helper:2>#Comment:0";
663
+ [theToken detach];
664
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#BackgroundLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Empty", nil];
665
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
666
+ if (stopAtFirstError)
667
+ @throw error;
668
+
669
+ [self addError: error withContext: theContext];
670
+ return 5;
671
+
672
+ }
673
+
674
+
675
+ // Feature:1>Background:0>#BackgroundLine:0
676
+ - (int)matchTokenAt_6:(GHToken *)theToken context:(GHParserContext *)theContext
677
+ {
678
+ if ([self matchEOFWithContext: theContext token: theToken])
679
+ {
680
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
681
+ [self buildWithContext: theContext token: theToken];
682
+ return 27;
683
+ }
684
+ if ([self matchEmptyWithContext: theContext token: theToken])
685
+ {
686
+ [self buildWithContext: theContext token: theToken];
687
+ return 6;
688
+ }
689
+ if ([self matchCommentWithContext: theContext token: theToken])
690
+ {
691
+ [self buildWithContext: theContext token: theToken];
692
+ return 8;
693
+ }
694
+ if ([self matchStepLineWithContext: theContext token: theToken])
695
+ {
696
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
697
+ [self buildWithContext: theContext token: theToken];
698
+ return 9;
699
+ }
700
+ if ([self matchTagLineWithContext: theContext token: theToken])
701
+ {
702
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
703
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
704
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
705
+ [self buildWithContext: theContext token: theToken];
706
+ return 11;
707
+ }
708
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
709
+ {
710
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
711
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
712
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
713
+ [self buildWithContext: theContext token: theToken];
714
+ return 12;
715
+ }
716
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
717
+ {
718
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
719
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
720
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
721
+ [self buildWithContext: theContext token: theToken];
722
+ return 17;
723
+ }
724
+ if ([self matchOtherWithContext: theContext token: theToken])
725
+ {
726
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDescription];
727
+ [self buildWithContext: theContext token: theToken];
728
+ return 7;
729
+ }
730
+
731
+ NSString * stateComment = @"State: 6 - Feature:1>Background:0>#BackgroundLine:0";
732
+ [theToken detach];
733
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Empty", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
734
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
735
+ if (stopAtFirstError)
736
+ @throw error;
737
+
738
+ [self addError: error withContext: theContext];
739
+ return 6;
740
+
741
+ }
742
+
743
+
744
+ // Feature:1>Background:1>Background_Description:0>Description_Helper:1>Description:0>#Other:0
745
+ - (int)matchTokenAt_7:(GHToken *)theToken context:(GHParserContext *)theContext
746
+ {
747
+ if ([self matchEOFWithContext: theContext token: theToken])
748
+ {
749
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
750
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
751
+ [self buildWithContext: theContext token: theToken];
752
+ return 27;
753
+ }
754
+ if ([self matchCommentWithContext: theContext token: theToken])
755
+ {
756
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
757
+ [self buildWithContext: theContext token: theToken];
758
+ return 8;
759
+ }
760
+ if ([self matchStepLineWithContext: theContext token: theToken])
761
+ {
762
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
763
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
764
+ [self buildWithContext: theContext token: theToken];
765
+ return 9;
766
+ }
767
+ if ([self matchTagLineWithContext: theContext token: theToken])
768
+ {
769
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
770
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
771
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
772
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
773
+ [self buildWithContext: theContext token: theToken];
774
+ return 11;
775
+ }
776
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
777
+ {
778
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
779
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
780
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
781
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
782
+ [self buildWithContext: theContext token: theToken];
783
+ return 12;
784
+ }
785
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
786
+ {
787
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
788
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
789
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
790
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
791
+ [self buildWithContext: theContext token: theToken];
792
+ return 17;
793
+ }
794
+ if ([self matchOtherWithContext: theContext token: theToken])
795
+ {
796
+ [self buildWithContext: theContext token: theToken];
797
+ return 7;
798
+ }
799
+
800
+ NSString * stateComment = @"State: 7 - Feature:1>Background:1>Background_Description:0>Description_Helper:1>Description:0>#Other:0";
801
+ [theToken detach];
802
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
803
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
804
+ if (stopAtFirstError)
805
+ @throw error;
806
+
807
+ [self addError: error withContext: theContext];
808
+ return 7;
809
+
810
+ }
811
+
812
+
813
+ // Feature:1>Background:1>Background_Description:0>Description_Helper:2>#Comment:0
814
+ - (int)matchTokenAt_8:(GHToken *)theToken context:(GHParserContext *)theContext
815
+ {
816
+ if ([self matchEOFWithContext: theContext token: theToken])
817
+ {
818
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
819
+ [self buildWithContext: theContext token: theToken];
820
+ return 27;
821
+ }
822
+ if ([self matchCommentWithContext: theContext token: theToken])
823
+ {
824
+ [self buildWithContext: theContext token: theToken];
825
+ return 8;
826
+ }
827
+ if ([self matchStepLineWithContext: theContext token: theToken])
828
+ {
829
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
830
+ [self buildWithContext: theContext token: theToken];
831
+ return 9;
832
+ }
833
+ if ([self matchTagLineWithContext: theContext token: theToken])
834
+ {
835
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
836
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
837
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
838
+ [self buildWithContext: theContext token: theToken];
839
+ return 11;
840
+ }
841
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
842
+ {
843
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
844
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
845
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
846
+ [self buildWithContext: theContext token: theToken];
847
+ return 12;
848
+ }
849
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
850
+ {
851
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
852
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
853
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
854
+ [self buildWithContext: theContext token: theToken];
855
+ return 17;
856
+ }
857
+ if ([self matchEmptyWithContext: theContext token: theToken])
858
+ {
859
+ [self buildWithContext: theContext token: theToken];
860
+ return 8;
861
+ }
862
+
863
+ NSString * stateComment = @"State: 8 - Feature:1>Background:1>Background_Description:0>Description_Helper:2>#Comment:0";
864
+ [theToken detach];
865
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Empty", nil];
866
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
867
+ if (stopAtFirstError)
868
+ @throw error;
869
+
870
+ [self addError: error withContext: theContext];
871
+ return 8;
872
+
873
+ }
874
+
875
+
876
+ // Feature:1>Background:2>Scenario_Step:0>Step:0>#StepLine:0
877
+ - (int)matchTokenAt_9:(GHToken *)theToken context:(GHParserContext *)theContext
878
+ {
879
+ if ([self matchEOFWithContext: theContext token: theToken])
880
+ {
881
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
882
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
883
+ [self buildWithContext: theContext token: theToken];
884
+ return 27;
885
+ }
886
+ if ([self matchTableRowWithContext: theContext token: theToken])
887
+ {
888
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
889
+ [self buildWithContext: theContext token: theToken];
890
+ return 10;
891
+ }
892
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
893
+ {
894
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDocString];
895
+ [self buildWithContext: theContext token: theToken];
896
+ return 32;
897
+ }
898
+ if ([self matchStepLineWithContext: theContext token: theToken])
899
+ {
900
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
901
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
902
+ [self buildWithContext: theContext token: theToken];
903
+ return 9;
904
+ }
905
+ if ([self matchTagLineWithContext: theContext token: theToken])
906
+ {
907
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
908
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
909
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
910
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
911
+ [self buildWithContext: theContext token: theToken];
912
+ return 11;
913
+ }
914
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
915
+ {
916
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
917
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
918
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
919
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
920
+ [self buildWithContext: theContext token: theToken];
921
+ return 12;
922
+ }
923
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
924
+ {
925
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
926
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
927
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
928
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
929
+ [self buildWithContext: theContext token: theToken];
930
+ return 17;
931
+ }
932
+ if ([self matchCommentWithContext: theContext token: theToken])
933
+ {
934
+ [self buildWithContext: theContext token: theToken];
935
+ return 9;
936
+ }
937
+ if ([self matchEmptyWithContext: theContext token: theToken])
938
+ {
939
+ [self buildWithContext: theContext token: theToken];
940
+ return 9;
941
+ }
942
+
943
+ NSString * stateComment = @"State: 9 - Feature:1>Background:2>Scenario_Step:0>Step:0>#StepLine:0";
944
+ [theToken detach];
945
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#DocStringSeparator", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
946
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
947
+ if (stopAtFirstError)
948
+ @throw error;
949
+
950
+ [self addError: error withContext: theContext];
951
+ return 9;
952
+
953
+ }
954
+
955
+
956
+ // Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0
957
+ - (int)matchTokenAt_10:(GHToken *)theToken context:(GHParserContext *)theContext
958
+ {
959
+ if ([self matchEOFWithContext: theContext token: theToken])
960
+ {
961
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
962
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
963
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
964
+ [self buildWithContext: theContext token: theToken];
965
+ return 27;
966
+ }
967
+ if ([self matchTableRowWithContext: theContext token: theToken])
968
+ {
969
+ [self buildWithContext: theContext token: theToken];
970
+ return 10;
971
+ }
972
+ if ([self matchStepLineWithContext: theContext token: theToken])
973
+ {
974
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
975
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
976
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
977
+ [self buildWithContext: theContext token: theToken];
978
+ return 9;
979
+ }
980
+ if ([self matchTagLineWithContext: theContext token: theToken])
981
+ {
982
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
983
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
984
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
985
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
986
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
987
+ [self buildWithContext: theContext token: theToken];
988
+ return 11;
989
+ }
990
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
991
+ {
992
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
993
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
994
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
995
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
996
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
997
+ [self buildWithContext: theContext token: theToken];
998
+ return 12;
999
+ }
1000
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1001
+ {
1002
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1003
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1004
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
1005
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1006
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1007
+ [self buildWithContext: theContext token: theToken];
1008
+ return 17;
1009
+ }
1010
+ if ([self matchCommentWithContext: theContext token: theToken])
1011
+ {
1012
+ [self buildWithContext: theContext token: theToken];
1013
+ return 10;
1014
+ }
1015
+ if ([self matchEmptyWithContext: theContext token: theToken])
1016
+ {
1017
+ [self buildWithContext: theContext token: theToken];
1018
+ return 10;
1019
+ }
1020
+
1021
+ NSString * stateComment = @"State: 10 - Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";
1022
+ [theToken detach];
1023
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1024
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1025
+ if (stopAtFirstError)
1026
+ @throw error;
1027
+
1028
+ [self addError: error withContext: theContext];
1029
+ return 10;
1030
+
1031
+ }
1032
+
1033
+
1034
+ // Feature:2>Scenario_Definition:0>Tags:0>#TagLine:0
1035
+ - (int)matchTokenAt_11:(GHToken *)theToken context:(GHParserContext *)theContext
1036
+ {
1037
+ if ([self matchTagLineWithContext: theContext token: theToken])
1038
+ {
1039
+ [self buildWithContext: theContext token: theToken];
1040
+ return 11;
1041
+ }
1042
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1043
+ {
1044
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeTags];
1045
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1046
+ [self buildWithContext: theContext token: theToken];
1047
+ return 12;
1048
+ }
1049
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1050
+ {
1051
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeTags];
1052
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1053
+ [self buildWithContext: theContext token: theToken];
1054
+ return 17;
1055
+ }
1056
+ if ([self matchCommentWithContext: theContext token: theToken])
1057
+ {
1058
+ [self buildWithContext: theContext token: theToken];
1059
+ return 11;
1060
+ }
1061
+ if ([self matchEmptyWithContext: theContext token: theToken])
1062
+ {
1063
+ [self buildWithContext: theContext token: theToken];
1064
+ return 11;
1065
+ }
1066
+
1067
+ NSString * stateComment = @"State: 11 - Feature:2>Scenario_Definition:0>Tags:0>#TagLine:0";
1068
+ [theToken detach];
1069
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1070
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1071
+ if (stopAtFirstError)
1072
+ @throw error;
1073
+
1074
+ [self addError: error withContext: theContext];
1075
+ return 11;
1076
+
1077
+ }
1078
+
1079
+
1080
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:0>#ScenarioLine:0
1081
+ - (int)matchTokenAt_12:(GHToken *)theToken context:(GHParserContext *)theContext
1082
+ {
1083
+ if ([self matchEOFWithContext: theContext token: theToken])
1084
+ {
1085
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1086
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1087
+ [self buildWithContext: theContext token: theToken];
1088
+ return 27;
1089
+ }
1090
+ if ([self matchEmptyWithContext: theContext token: theToken])
1091
+ {
1092
+ [self buildWithContext: theContext token: theToken];
1093
+ return 12;
1094
+ }
1095
+ if ([self matchCommentWithContext: theContext token: theToken])
1096
+ {
1097
+ [self buildWithContext: theContext token: theToken];
1098
+ return 14;
1099
+ }
1100
+ if ([self matchStepLineWithContext: theContext token: theToken])
1101
+ {
1102
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1103
+ [self buildWithContext: theContext token: theToken];
1104
+ return 15;
1105
+ }
1106
+ if ([self matchTagLineWithContext: theContext token: theToken])
1107
+ {
1108
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1109
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1110
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1111
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1112
+ [self buildWithContext: theContext token: theToken];
1113
+ return 11;
1114
+ }
1115
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1116
+ {
1117
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1118
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1119
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1120
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1121
+ [self buildWithContext: theContext token: theToken];
1122
+ return 12;
1123
+ }
1124
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1125
+ {
1126
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1127
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1128
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1129
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1130
+ [self buildWithContext: theContext token: theToken];
1131
+ return 17;
1132
+ }
1133
+ if ([self matchOtherWithContext: theContext token: theToken])
1134
+ {
1135
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1136
+ [self buildWithContext: theContext token: theToken];
1137
+ return 13;
1138
+ }
1139
+
1140
+ NSString * stateComment = @"State: 12 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:0>#ScenarioLine:0";
1141
+ [theToken detach];
1142
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Empty", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
1143
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1144
+ if (stopAtFirstError)
1145
+ @throw error;
1146
+
1147
+ [self addError: error withContext: theContext];
1148
+ return 12;
1149
+
1150
+ }
1151
+
1152
+
1153
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Scenario_Description:0>Description_Helper:1>Description:0>#Other:0
1154
+ - (int)matchTokenAt_13:(GHToken *)theToken context:(GHParserContext *)theContext
1155
+ {
1156
+ if ([self matchEOFWithContext: theContext token: theToken])
1157
+ {
1158
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1159
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1160
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1161
+ [self buildWithContext: theContext token: theToken];
1162
+ return 27;
1163
+ }
1164
+ if ([self matchCommentWithContext: theContext token: theToken])
1165
+ {
1166
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1167
+ [self buildWithContext: theContext token: theToken];
1168
+ return 14;
1169
+ }
1170
+ if ([self matchStepLineWithContext: theContext token: theToken])
1171
+ {
1172
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1173
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1174
+ [self buildWithContext: theContext token: theToken];
1175
+ return 15;
1176
+ }
1177
+ if ([self matchTagLineWithContext: theContext token: theToken])
1178
+ {
1179
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1180
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1181
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1182
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1183
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1184
+ [self buildWithContext: theContext token: theToken];
1185
+ return 11;
1186
+ }
1187
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1188
+ {
1189
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1190
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1191
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1192
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1193
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1194
+ [self buildWithContext: theContext token: theToken];
1195
+ return 12;
1196
+ }
1197
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1198
+ {
1199
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1200
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1201
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1202
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1203
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1204
+ [self buildWithContext: theContext token: theToken];
1205
+ return 17;
1206
+ }
1207
+ if ([self matchOtherWithContext: theContext token: theToken])
1208
+ {
1209
+ [self buildWithContext: theContext token: theToken];
1210
+ return 13;
1211
+ }
1212
+
1213
+ NSString * stateComment = @"State: 13 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Scenario_Description:0>Description_Helper:1>Description:0>#Other:0";
1214
+ [theToken detach];
1215
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
1216
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1217
+ if (stopAtFirstError)
1218
+ @throw error;
1219
+
1220
+ [self addError: error withContext: theContext];
1221
+ return 13;
1222
+
1223
+ }
1224
+
1225
+
1226
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Scenario_Description:0>Description_Helper:2>#Comment:0
1227
+ - (int)matchTokenAt_14:(GHToken *)theToken context:(GHParserContext *)theContext
1228
+ {
1229
+ if ([self matchEOFWithContext: theContext token: theToken])
1230
+ {
1231
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1232
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1233
+ [self buildWithContext: theContext token: theToken];
1234
+ return 27;
1235
+ }
1236
+ if ([self matchCommentWithContext: theContext token: theToken])
1237
+ {
1238
+ [self buildWithContext: theContext token: theToken];
1239
+ return 14;
1240
+ }
1241
+ if ([self matchStepLineWithContext: theContext token: theToken])
1242
+ {
1243
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1244
+ [self buildWithContext: theContext token: theToken];
1245
+ return 15;
1246
+ }
1247
+ if ([self matchTagLineWithContext: theContext token: theToken])
1248
+ {
1249
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1250
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1251
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1252
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1253
+ [self buildWithContext: theContext token: theToken];
1254
+ return 11;
1255
+ }
1256
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1257
+ {
1258
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1259
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1260
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1261
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1262
+ [self buildWithContext: theContext token: theToken];
1263
+ return 12;
1264
+ }
1265
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1266
+ {
1267
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1268
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1269
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1270
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1271
+ [self buildWithContext: theContext token: theToken];
1272
+ return 17;
1273
+ }
1274
+ if ([self matchEmptyWithContext: theContext token: theToken])
1275
+ {
1276
+ [self buildWithContext: theContext token: theToken];
1277
+ return 14;
1278
+ }
1279
+
1280
+ NSString * stateComment = @"State: 14 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Scenario_Description:0>Description_Helper:2>#Comment:0";
1281
+ [theToken detach];
1282
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Empty", nil];
1283
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1284
+ if (stopAtFirstError)
1285
+ @throw error;
1286
+
1287
+ [self addError: error withContext: theContext];
1288
+ return 14;
1289
+
1290
+ }
1291
+
1292
+
1293
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:0>#StepLine:0
1294
+ - (int)matchTokenAt_15:(GHToken *)theToken context:(GHParserContext *)theContext
1295
+ {
1296
+ if ([self matchEOFWithContext: theContext token: theToken])
1297
+ {
1298
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1299
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1300
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1301
+ [self buildWithContext: theContext token: theToken];
1302
+ return 27;
1303
+ }
1304
+ if ([self matchTableRowWithContext: theContext token: theToken])
1305
+ {
1306
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1307
+ [self buildWithContext: theContext token: theToken];
1308
+ return 16;
1309
+ }
1310
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
1311
+ {
1312
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDocString];
1313
+ [self buildWithContext: theContext token: theToken];
1314
+ return 30;
1315
+ }
1316
+ if ([self matchStepLineWithContext: theContext token: theToken])
1317
+ {
1318
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1319
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1320
+ [self buildWithContext: theContext token: theToken];
1321
+ return 15;
1322
+ }
1323
+ if ([self matchTagLineWithContext: theContext token: theToken])
1324
+ {
1325
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1326
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1327
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1328
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1329
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1330
+ [self buildWithContext: theContext token: theToken];
1331
+ return 11;
1332
+ }
1333
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1334
+ {
1335
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1336
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1337
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1338
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1339
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1340
+ [self buildWithContext: theContext token: theToken];
1341
+ return 12;
1342
+ }
1343
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1344
+ {
1345
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1346
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1347
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1348
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1349
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1350
+ [self buildWithContext: theContext token: theToken];
1351
+ return 17;
1352
+ }
1353
+ if ([self matchCommentWithContext: theContext token: theToken])
1354
+ {
1355
+ [self buildWithContext: theContext token: theToken];
1356
+ return 15;
1357
+ }
1358
+ if ([self matchEmptyWithContext: theContext token: theToken])
1359
+ {
1360
+ [self buildWithContext: theContext token: theToken];
1361
+ return 15;
1362
+ }
1363
+
1364
+ NSString * stateComment = @"State: 15 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:0>#StepLine:0";
1365
+ [theToken detach];
1366
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#DocStringSeparator", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1367
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1368
+ if (stopAtFirstError)
1369
+ @throw error;
1370
+
1371
+ [self addError: error withContext: theContext];
1372
+ return 15;
1373
+
1374
+ }
1375
+
1376
+
1377
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0
1378
+ - (int)matchTokenAt_16:(GHToken *)theToken context:(GHParserContext *)theContext
1379
+ {
1380
+ if ([self matchEOFWithContext: theContext token: theToken])
1381
+ {
1382
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1383
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1384
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1385
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1386
+ [self buildWithContext: theContext token: theToken];
1387
+ return 27;
1388
+ }
1389
+ if ([self matchTableRowWithContext: theContext token: theToken])
1390
+ {
1391
+ [self buildWithContext: theContext token: theToken];
1392
+ return 16;
1393
+ }
1394
+ if ([self matchStepLineWithContext: theContext token: theToken])
1395
+ {
1396
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1397
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1398
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1399
+ [self buildWithContext: theContext token: theToken];
1400
+ return 15;
1401
+ }
1402
+ if ([self matchTagLineWithContext: theContext token: theToken])
1403
+ {
1404
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1405
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1406
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1407
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1408
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1409
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1410
+ [self buildWithContext: theContext token: theToken];
1411
+ return 11;
1412
+ }
1413
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1414
+ {
1415
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1416
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1417
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1418
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1419
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1420
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1421
+ [self buildWithContext: theContext token: theToken];
1422
+ return 12;
1423
+ }
1424
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1425
+ {
1426
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1427
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1428
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1429
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1430
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1431
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1432
+ [self buildWithContext: theContext token: theToken];
1433
+ return 17;
1434
+ }
1435
+ if ([self matchCommentWithContext: theContext token: theToken])
1436
+ {
1437
+ [self buildWithContext: theContext token: theToken];
1438
+ return 16;
1439
+ }
1440
+ if ([self matchEmptyWithContext: theContext token: theToken])
1441
+ {
1442
+ [self buildWithContext: theContext token: theToken];
1443
+ return 16;
1444
+ }
1445
+
1446
+ NSString * stateComment = @"State: 16 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";
1447
+ [theToken detach];
1448
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1449
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1450
+ if (stopAtFirstError)
1451
+ @throw error;
1452
+
1453
+ [self addError: error withContext: theContext];
1454
+ return 16;
1455
+
1456
+ }
1457
+
1458
+
1459
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:0>#ScenarioOutlineLine:0
1460
+ - (int)matchTokenAt_17:(GHToken *)theToken context:(GHParserContext *)theContext
1461
+ {
1462
+ if ([self matchEOFWithContext: theContext token: theToken])
1463
+ {
1464
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1465
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1466
+ [self buildWithContext: theContext token: theToken];
1467
+ return 27;
1468
+ }
1469
+ if ([self matchEmptyWithContext: theContext token: theToken])
1470
+ {
1471
+ [self buildWithContext: theContext token: theToken];
1472
+ return 17;
1473
+ }
1474
+ if ([self matchCommentWithContext: theContext token: theToken])
1475
+ {
1476
+ [self buildWithContext: theContext token: theToken];
1477
+ return 19;
1478
+ }
1479
+ if ([self matchStepLineWithContext: theContext token: theToken])
1480
+ {
1481
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1482
+ [self buildWithContext: theContext token: theToken];
1483
+ return 20;
1484
+ }
1485
+ if ([self matchTagLineWithContext: theContext token: theToken])
1486
+ {
1487
+ if ([self lookAheadWithContext_0: theContext token: theToken])
1488
+ {
1489
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1490
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1491
+ [self buildWithContext: theContext token: theToken];
1492
+ return 22;
1493
+ }
1494
+ }
1495
+ if ([self matchTagLineWithContext: theContext token: theToken])
1496
+ {
1497
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1498
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1499
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1500
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1501
+ [self buildWithContext: theContext token: theToken];
1502
+ return 11;
1503
+ }
1504
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1505
+ {
1506
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1507
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1508
+ [self buildWithContext: theContext token: theToken];
1509
+ return 23;
1510
+ }
1511
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1512
+ {
1513
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1514
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1515
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1516
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1517
+ [self buildWithContext: theContext token: theToken];
1518
+ return 12;
1519
+ }
1520
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1521
+ {
1522
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1523
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1524
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1525
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1526
+ [self buildWithContext: theContext token: theToken];
1527
+ return 17;
1528
+ }
1529
+ if ([self matchOtherWithContext: theContext token: theToken])
1530
+ {
1531
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1532
+ [self buildWithContext: theContext token: theToken];
1533
+ return 18;
1534
+ }
1535
+
1536
+ NSString * stateComment = @"State: 17 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:0>#ScenarioOutlineLine:0";
1537
+ [theToken detach];
1538
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Empty", @"#Comment", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
1539
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1540
+ if (stopAtFirstError)
1541
+ @throw error;
1542
+
1543
+ [self addError: error withContext: theContext];
1544
+ return 17;
1545
+
1546
+ }
1547
+
1548
+
1549
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>ScenarioOutline_Description:0>Description_Helper:1>Description:0>#Other:0
1550
+ - (int)matchTokenAt_18:(GHToken *)theToken context:(GHParserContext *)theContext
1551
+ {
1552
+ if ([self matchEOFWithContext: theContext token: theToken])
1553
+ {
1554
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1555
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1556
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1557
+ [self buildWithContext: theContext token: theToken];
1558
+ return 27;
1559
+ }
1560
+ if ([self matchCommentWithContext: theContext token: theToken])
1561
+ {
1562
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1563
+ [self buildWithContext: theContext token: theToken];
1564
+ return 19;
1565
+ }
1566
+ if ([self matchStepLineWithContext: theContext token: theToken])
1567
+ {
1568
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1569
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1570
+ [self buildWithContext: theContext token: theToken];
1571
+ return 20;
1572
+ }
1573
+ if ([self matchTagLineWithContext: theContext token: theToken])
1574
+ {
1575
+ if ([self lookAheadWithContext_0: theContext token: theToken])
1576
+ {
1577
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1578
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1579
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1580
+ [self buildWithContext: theContext token: theToken];
1581
+ return 22;
1582
+ }
1583
+ }
1584
+ if ([self matchTagLineWithContext: theContext token: theToken])
1585
+ {
1586
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1587
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1588
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1589
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1590
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1591
+ [self buildWithContext: theContext token: theToken];
1592
+ return 11;
1593
+ }
1594
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1595
+ {
1596
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1597
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1598
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1599
+ [self buildWithContext: theContext token: theToken];
1600
+ return 23;
1601
+ }
1602
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1603
+ {
1604
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1605
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1606
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1607
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1608
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1609
+ [self buildWithContext: theContext token: theToken];
1610
+ return 12;
1611
+ }
1612
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1613
+ {
1614
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
1615
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1616
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1617
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1618
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1619
+ [self buildWithContext: theContext token: theToken];
1620
+ return 17;
1621
+ }
1622
+ if ([self matchOtherWithContext: theContext token: theToken])
1623
+ {
1624
+ [self buildWithContext: theContext token: theToken];
1625
+ return 18;
1626
+ }
1627
+
1628
+ NSString * stateComment = @"State: 18 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>ScenarioOutline_Description:0>Description_Helper:1>Description:0>#Other:0";
1629
+ [theToken detach];
1630
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
1631
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1632
+ if (stopAtFirstError)
1633
+ @throw error;
1634
+
1635
+ [self addError: error withContext: theContext];
1636
+ return 18;
1637
+
1638
+ }
1639
+
1640
+
1641
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>ScenarioOutline_Description:0>Description_Helper:2>#Comment:0
1642
+ - (int)matchTokenAt_19:(GHToken *)theToken context:(GHParserContext *)theContext
1643
+ {
1644
+ if ([self matchEOFWithContext: theContext token: theToken])
1645
+ {
1646
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1647
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1648
+ [self buildWithContext: theContext token: theToken];
1649
+ return 27;
1650
+ }
1651
+ if ([self matchCommentWithContext: theContext token: theToken])
1652
+ {
1653
+ [self buildWithContext: theContext token: theToken];
1654
+ return 19;
1655
+ }
1656
+ if ([self matchStepLineWithContext: theContext token: theToken])
1657
+ {
1658
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1659
+ [self buildWithContext: theContext token: theToken];
1660
+ return 20;
1661
+ }
1662
+ if ([self matchTagLineWithContext: theContext token: theToken])
1663
+ {
1664
+ if ([self lookAheadWithContext_0: theContext token: theToken])
1665
+ {
1666
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1667
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1668
+ [self buildWithContext: theContext token: theToken];
1669
+ return 22;
1670
+ }
1671
+ }
1672
+ if ([self matchTagLineWithContext: theContext token: theToken])
1673
+ {
1674
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1675
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1676
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1677
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1678
+ [self buildWithContext: theContext token: theToken];
1679
+ return 11;
1680
+ }
1681
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1682
+ {
1683
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1684
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1685
+ [self buildWithContext: theContext token: theToken];
1686
+ return 23;
1687
+ }
1688
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1689
+ {
1690
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1691
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1692
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1693
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1694
+ [self buildWithContext: theContext token: theToken];
1695
+ return 12;
1696
+ }
1697
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1698
+ {
1699
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1700
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1701
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1702
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1703
+ [self buildWithContext: theContext token: theToken];
1704
+ return 17;
1705
+ }
1706
+ if ([self matchEmptyWithContext: theContext token: theToken])
1707
+ {
1708
+ [self buildWithContext: theContext token: theToken];
1709
+ return 19;
1710
+ }
1711
+
1712
+ NSString * stateComment = @"State: 19 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>ScenarioOutline_Description:0>Description_Helper:2>#Comment:0";
1713
+ [theToken detach];
1714
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Empty", nil];
1715
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1716
+ if (stopAtFirstError)
1717
+ @throw error;
1718
+
1719
+ [self addError: error withContext: theContext];
1720
+ return 19;
1721
+
1722
+ }
1723
+
1724
+
1725
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:0>#StepLine:0
1726
+ - (int)matchTokenAt_20:(GHToken *)theToken context:(GHParserContext *)theContext
1727
+ {
1728
+ if ([self matchEOFWithContext: theContext token: theToken])
1729
+ {
1730
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1731
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1732
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1733
+ [self buildWithContext: theContext token: theToken];
1734
+ return 27;
1735
+ }
1736
+ if ([self matchTableRowWithContext: theContext token: theToken])
1737
+ {
1738
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1739
+ [self buildWithContext: theContext token: theToken];
1740
+ return 21;
1741
+ }
1742
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
1743
+ {
1744
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDocString];
1745
+ [self buildWithContext: theContext token: theToken];
1746
+ return 28;
1747
+ }
1748
+ if ([self matchStepLineWithContext: theContext token: theToken])
1749
+ {
1750
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1751
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1752
+ [self buildWithContext: theContext token: theToken];
1753
+ return 20;
1754
+ }
1755
+ if ([self matchTagLineWithContext: theContext token: theToken])
1756
+ {
1757
+ if ([self lookAheadWithContext_0: theContext token: theToken])
1758
+ {
1759
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1760
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1761
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1762
+ [self buildWithContext: theContext token: theToken];
1763
+ return 22;
1764
+ }
1765
+ }
1766
+ if ([self matchTagLineWithContext: theContext token: theToken])
1767
+ {
1768
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1769
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1770
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1771
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1772
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1773
+ [self buildWithContext: theContext token: theToken];
1774
+ return 11;
1775
+ }
1776
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1777
+ {
1778
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1779
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1780
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1781
+ [self buildWithContext: theContext token: theToken];
1782
+ return 23;
1783
+ }
1784
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1785
+ {
1786
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1787
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1788
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1789
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1790
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1791
+ [self buildWithContext: theContext token: theToken];
1792
+ return 12;
1793
+ }
1794
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1795
+ {
1796
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1797
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1798
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1799
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1800
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1801
+ [self buildWithContext: theContext token: theToken];
1802
+ return 17;
1803
+ }
1804
+ if ([self matchCommentWithContext: theContext token: theToken])
1805
+ {
1806
+ [self buildWithContext: theContext token: theToken];
1807
+ return 20;
1808
+ }
1809
+ if ([self matchEmptyWithContext: theContext token: theToken])
1810
+ {
1811
+ [self buildWithContext: theContext token: theToken];
1812
+ return 20;
1813
+ }
1814
+
1815
+ NSString * stateComment = @"State: 20 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:0>#StepLine:0";
1816
+ [theToken detach];
1817
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#DocStringSeparator", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1818
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1819
+ if (stopAtFirstError)
1820
+ @throw error;
1821
+
1822
+ [self addError: error withContext: theContext];
1823
+ return 20;
1824
+
1825
+ }
1826
+
1827
+
1828
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0
1829
+ - (int)matchTokenAt_21:(GHToken *)theToken context:(GHParserContext *)theContext
1830
+ {
1831
+ if ([self matchEOFWithContext: theContext token: theToken])
1832
+ {
1833
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1834
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1835
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1836
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1837
+ [self buildWithContext: theContext token: theToken];
1838
+ return 27;
1839
+ }
1840
+ if ([self matchTableRowWithContext: theContext token: theToken])
1841
+ {
1842
+ [self buildWithContext: theContext token: theToken];
1843
+ return 21;
1844
+ }
1845
+ if ([self matchStepLineWithContext: theContext token: theToken])
1846
+ {
1847
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1848
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1849
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
1850
+ [self buildWithContext: theContext token: theToken];
1851
+ return 20;
1852
+ }
1853
+ if ([self matchTagLineWithContext: theContext token: theToken])
1854
+ {
1855
+ if ([self lookAheadWithContext_0: theContext token: theToken])
1856
+ {
1857
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1858
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1859
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1860
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1861
+ [self buildWithContext: theContext token: theToken];
1862
+ return 22;
1863
+ }
1864
+ }
1865
+ if ([self matchTagLineWithContext: theContext token: theToken])
1866
+ {
1867
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1868
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1869
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1870
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1871
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1872
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
1873
+ [self buildWithContext: theContext token: theToken];
1874
+ return 11;
1875
+ }
1876
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1877
+ {
1878
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1879
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1880
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1881
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1882
+ [self buildWithContext: theContext token: theToken];
1883
+ return 23;
1884
+ }
1885
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
1886
+ {
1887
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1888
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1889
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1890
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1891
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1892
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
1893
+ [self buildWithContext: theContext token: theToken];
1894
+ return 12;
1895
+ }
1896
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
1897
+ {
1898
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDataTable];
1899
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
1900
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1901
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1902
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1903
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1904
+ [self buildWithContext: theContext token: theToken];
1905
+ return 17;
1906
+ }
1907
+ if ([self matchCommentWithContext: theContext token: theToken])
1908
+ {
1909
+ [self buildWithContext: theContext token: theToken];
1910
+ return 21;
1911
+ }
1912
+ if ([self matchEmptyWithContext: theContext token: theToken])
1913
+ {
1914
+ [self buildWithContext: theContext token: theToken];
1915
+ return 21;
1916
+ }
1917
+
1918
+ NSString * stateComment = @"State: 21 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";
1919
+ [theToken detach];
1920
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
1921
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1922
+ if (stopAtFirstError)
1923
+ @throw error;
1924
+
1925
+ [self addError: error withContext: theContext];
1926
+ return 21;
1927
+
1928
+ }
1929
+
1930
+
1931
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:0>Tags:0>#TagLine:0
1932
+ - (int)matchTokenAt_22:(GHToken *)theToken context:(GHParserContext *)theContext
1933
+ {
1934
+ if ([self matchTagLineWithContext: theContext token: theToken])
1935
+ {
1936
+ [self buildWithContext: theContext token: theToken];
1937
+ return 22;
1938
+ }
1939
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
1940
+ {
1941
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeTags];
1942
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1943
+ [self buildWithContext: theContext token: theToken];
1944
+ return 23;
1945
+ }
1946
+ if ([self matchCommentWithContext: theContext token: theToken])
1947
+ {
1948
+ [self buildWithContext: theContext token: theToken];
1949
+ return 22;
1950
+ }
1951
+ if ([self matchEmptyWithContext: theContext token: theToken])
1952
+ {
1953
+ [self buildWithContext: theContext token: theToken];
1954
+ return 22;
1955
+ }
1956
+
1957
+ NSString * stateComment = @"State: 22 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:0>Tags:0>#TagLine:0";
1958
+ [theToken detach];
1959
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#TagLine", @"#ExamplesLine", @"#Comment", @"#Empty", nil];
1960
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
1961
+ if (stopAtFirstError)
1962
+ @throw error;
1963
+
1964
+ [self addError: error withContext: theContext];
1965
+ return 22;
1966
+
1967
+ }
1968
+
1969
+
1970
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:0>#ExamplesLine:0
1971
+ - (int)matchTokenAt_23:(GHToken *)theToken context:(GHParserContext *)theContext
1972
+ {
1973
+ if ([self matchEOFWithContext: theContext token: theToken])
1974
+ {
1975
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
1976
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
1977
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
1978
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
1979
+ [self buildWithContext: theContext token: theToken];
1980
+ return 27;
1981
+ }
1982
+ if ([self matchEmptyWithContext: theContext token: theToken])
1983
+ {
1984
+ [self buildWithContext: theContext token: theToken];
1985
+ return 23;
1986
+ }
1987
+ if ([self matchCommentWithContext: theContext token: theToken])
1988
+ {
1989
+ [self buildWithContext: theContext token: theToken];
1990
+ return 25;
1991
+ }
1992
+ if ([self matchTableRowWithContext: theContext token: theToken])
1993
+ {
1994
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
1995
+ [self buildWithContext: theContext token: theToken];
1996
+ return 26;
1997
+ }
1998
+ if ([self matchTagLineWithContext: theContext token: theToken])
1999
+ {
2000
+ if ([self lookAheadWithContext_0: theContext token: theToken])
2001
+ {
2002
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2003
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2004
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2005
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2006
+ [self buildWithContext: theContext token: theToken];
2007
+ return 22;
2008
+ }
2009
+ }
2010
+ if ([self matchTagLineWithContext: theContext token: theToken])
2011
+ {
2012
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2013
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2014
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2015
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2016
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2017
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2018
+ [self buildWithContext: theContext token: theToken];
2019
+ return 11;
2020
+ }
2021
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
2022
+ {
2023
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2024
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2025
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2026
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2027
+ [self buildWithContext: theContext token: theToken];
2028
+ return 23;
2029
+ }
2030
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2031
+ {
2032
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2033
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2034
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2035
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2036
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2037
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2038
+ [self buildWithContext: theContext token: theToken];
2039
+ return 12;
2040
+ }
2041
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2042
+ {
2043
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2044
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2045
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2046
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2047
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2048
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2049
+ [self buildWithContext: theContext token: theToken];
2050
+ return 17;
2051
+ }
2052
+ if ([self matchOtherWithContext: theContext token: theToken])
2053
+ {
2054
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2055
+ [self buildWithContext: theContext token: theToken];
2056
+ return 24;
2057
+ }
2058
+
2059
+ NSString * stateComment = @"State: 23 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:0>#ExamplesLine:0";
2060
+ [theToken detach];
2061
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Empty", @"#Comment", @"#TableRow", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
2062
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2063
+ if (stopAtFirstError)
2064
+ @throw error;
2065
+
2066
+ [self addError: error withContext: theContext];
2067
+ return 23;
2068
+
2069
+ }
2070
+
2071
+
2072
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Examples_Description:0>Description_Helper:1>Description:0>#Other:0
2073
+ - (int)matchTokenAt_24:(GHToken *)theToken context:(GHParserContext *)theContext
2074
+ {
2075
+ if ([self matchEOFWithContext: theContext token: theToken])
2076
+ {
2077
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2078
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2079
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2080
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2081
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2082
+ [self buildWithContext: theContext token: theToken];
2083
+ return 27;
2084
+ }
2085
+ if ([self matchCommentWithContext: theContext token: theToken])
2086
+ {
2087
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2088
+ [self buildWithContext: theContext token: theToken];
2089
+ return 25;
2090
+ }
2091
+ if ([self matchTableRowWithContext: theContext token: theToken])
2092
+ {
2093
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2094
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2095
+ [self buildWithContext: theContext token: theToken];
2096
+ return 26;
2097
+ }
2098
+ if ([self matchTagLineWithContext: theContext token: theToken])
2099
+ {
2100
+ if ([self lookAheadWithContext_0: theContext token: theToken])
2101
+ {
2102
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2103
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2104
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2105
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2106
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2107
+ [self buildWithContext: theContext token: theToken];
2108
+ return 22;
2109
+ }
2110
+ }
2111
+ if ([self matchTagLineWithContext: theContext token: theToken])
2112
+ {
2113
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2114
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2115
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2116
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2117
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2118
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2119
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2120
+ [self buildWithContext: theContext token: theToken];
2121
+ return 11;
2122
+ }
2123
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
2124
+ {
2125
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2126
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2127
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2128
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2129
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2130
+ [self buildWithContext: theContext token: theToken];
2131
+ return 23;
2132
+ }
2133
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2134
+ {
2135
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2136
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2137
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2138
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2139
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2140
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2141
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2142
+ [self buildWithContext: theContext token: theToken];
2143
+ return 12;
2144
+ }
2145
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2146
+ {
2147
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDescription];
2148
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2149
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2150
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2151
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2152
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2153
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2154
+ [self buildWithContext: theContext token: theToken];
2155
+ return 17;
2156
+ }
2157
+ if ([self matchOtherWithContext: theContext token: theToken])
2158
+ {
2159
+ [self buildWithContext: theContext token: theToken];
2160
+ return 24;
2161
+ }
2162
+
2163
+ NSString * stateComment = @"State: 24 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Examples_Description:0>Description_Helper:1>Description:0>#Other:0";
2164
+ [theToken detach];
2165
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#TableRow", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Other", nil];
2166
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2167
+ if (stopAtFirstError)
2168
+ @throw error;
2169
+
2170
+ [self addError: error withContext: theContext];
2171
+ return 24;
2172
+
2173
+ }
2174
+
2175
+
2176
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Examples_Description:0>Description_Helper:2>#Comment:0
2177
+ - (int)matchTokenAt_25:(GHToken *)theToken context:(GHParserContext *)theContext
2178
+ {
2179
+ if ([self matchEOFWithContext: theContext token: theToken])
2180
+ {
2181
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2182
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2183
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2184
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2185
+ [self buildWithContext: theContext token: theToken];
2186
+ return 27;
2187
+ }
2188
+ if ([self matchCommentWithContext: theContext token: theToken])
2189
+ {
2190
+ [self buildWithContext: theContext token: theToken];
2191
+ return 25;
2192
+ }
2193
+ if ([self matchTableRowWithContext: theContext token: theToken])
2194
+ {
2195
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2196
+ [self buildWithContext: theContext token: theToken];
2197
+ return 26;
2198
+ }
2199
+ if ([self matchTagLineWithContext: theContext token: theToken])
2200
+ {
2201
+ if ([self lookAheadWithContext_0: theContext token: theToken])
2202
+ {
2203
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2204
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2205
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2206
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2207
+ [self buildWithContext: theContext token: theToken];
2208
+ return 22;
2209
+ }
2210
+ }
2211
+ if ([self matchTagLineWithContext: theContext token: theToken])
2212
+ {
2213
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2214
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2215
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2216
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2217
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2218
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2219
+ [self buildWithContext: theContext token: theToken];
2220
+ return 11;
2221
+ }
2222
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
2223
+ {
2224
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2225
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2226
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2227
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2228
+ [self buildWithContext: theContext token: theToken];
2229
+ return 23;
2230
+ }
2231
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2232
+ {
2233
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2234
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2235
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2236
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2237
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2238
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2239
+ [self buildWithContext: theContext token: theToken];
2240
+ return 12;
2241
+ }
2242
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2243
+ {
2244
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2245
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2246
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2247
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2248
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2249
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2250
+ [self buildWithContext: theContext token: theToken];
2251
+ return 17;
2252
+ }
2253
+ if ([self matchEmptyWithContext: theContext token: theToken])
2254
+ {
2255
+ [self buildWithContext: theContext token: theToken];
2256
+ return 25;
2257
+ }
2258
+
2259
+ NSString * stateComment = @"State: 25 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Examples_Description:0>Description_Helper:2>#Comment:0";
2260
+ [theToken detach];
2261
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#Comment", @"#TableRow", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Empty", nil];
2262
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2263
+ if (stopAtFirstError)
2264
+ @throw error;
2265
+
2266
+ [self addError: error withContext: theContext];
2267
+ return 25;
2268
+
2269
+ }
2270
+
2271
+
2272
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:2>Examples_Table:0>#TableRow:0
2273
+ - (int)matchTokenAt_26:(GHToken *)theToken context:(GHParserContext *)theContext
2274
+ {
2275
+ if ([self matchEOFWithContext: theContext token: theToken])
2276
+ {
2277
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2278
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2279
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2280
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2281
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2282
+ [self buildWithContext: theContext token: theToken];
2283
+ return 27;
2284
+ }
2285
+ if ([self matchTableRowWithContext: theContext token: theToken])
2286
+ {
2287
+ [self buildWithContext: theContext token: theToken];
2288
+ return 26;
2289
+ }
2290
+ if ([self matchTagLineWithContext: theContext token: theToken])
2291
+ {
2292
+ if ([self lookAheadWithContext_0: theContext token: theToken])
2293
+ {
2294
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2295
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2296
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2297
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2298
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2299
+ [self buildWithContext: theContext token: theToken];
2300
+ return 22;
2301
+ }
2302
+ }
2303
+ if ([self matchTagLineWithContext: theContext token: theToken])
2304
+ {
2305
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2306
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2307
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2308
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2309
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2310
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2311
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2312
+ [self buildWithContext: theContext token: theToken];
2313
+ return 11;
2314
+ }
2315
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
2316
+ {
2317
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2318
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2319
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2320
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2321
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2322
+ [self buildWithContext: theContext token: theToken];
2323
+ return 23;
2324
+ }
2325
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2326
+ {
2327
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2328
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2329
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2330
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2331
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2332
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2333
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2334
+ [self buildWithContext: theContext token: theToken];
2335
+ return 12;
2336
+ }
2337
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2338
+ {
2339
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Table];
2340
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2341
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2342
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2343
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2344
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2345
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2346
+ [self buildWithContext: theContext token: theToken];
2347
+ return 17;
2348
+ }
2349
+ if ([self matchCommentWithContext: theContext token: theToken])
2350
+ {
2351
+ [self buildWithContext: theContext token: theToken];
2352
+ return 26;
2353
+ }
2354
+ if ([self matchEmptyWithContext: theContext token: theToken])
2355
+ {
2356
+ [self buildWithContext: theContext token: theToken];
2357
+ return 26;
2358
+ }
2359
+
2360
+ NSString * stateComment = @"State: 26 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:2>Examples_Table:0>#TableRow:0";
2361
+ [theToken detach];
2362
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#TableRow", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
2363
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2364
+ if (stopAtFirstError)
2365
+ @throw error;
2366
+
2367
+ [self addError: error withContext: theContext];
2368
+ return 26;
2369
+
2370
+ }
2371
+
2372
+
2373
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0
2374
+ - (int)matchTokenAt_28:(GHToken *)theToken context:(GHParserContext *)theContext
2375
+ {
2376
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
2377
+ {
2378
+ [self buildWithContext: theContext token: theToken];
2379
+ return 29;
2380
+ }
2381
+ if ([self matchOtherWithContext: theContext token: theToken])
2382
+ {
2383
+ [self buildWithContext: theContext token: theToken];
2384
+ return 28;
2385
+ }
2386
+
2387
+ NSString * stateComment = @"State: 28 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";
2388
+ [theToken detach];
2389
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#DocStringSeparator", @"#Other", nil];
2390
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2391
+ if (stopAtFirstError)
2392
+ @throw error;
2393
+
2394
+ [self addError: error withContext: theContext];
2395
+ return 28;
2396
+
2397
+ }
2398
+
2399
+
2400
+ // Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0
2401
+ - (int)matchTokenAt_29:(GHToken *)theToken context:(GHParserContext *)theContext
2402
+ {
2403
+ if ([self matchEOFWithContext: theContext token: theToken])
2404
+ {
2405
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2406
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2407
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2408
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2409
+ [self buildWithContext: theContext token: theToken];
2410
+ return 27;
2411
+ }
2412
+ if ([self matchStepLineWithContext: theContext token: theToken])
2413
+ {
2414
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2415
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2416
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
2417
+ [self buildWithContext: theContext token: theToken];
2418
+ return 20;
2419
+ }
2420
+ if ([self matchTagLineWithContext: theContext token: theToken])
2421
+ {
2422
+ if ([self lookAheadWithContext_0: theContext token: theToken])
2423
+ {
2424
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2425
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2426
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2427
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2428
+ [self buildWithContext: theContext token: theToken];
2429
+ return 22;
2430
+ }
2431
+ }
2432
+ if ([self matchTagLineWithContext: theContext token: theToken])
2433
+ {
2434
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2435
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2436
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2437
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2438
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2439
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2440
+ [self buildWithContext: theContext token: theToken];
2441
+ return 11;
2442
+ }
2443
+ if ([self matchExamplesLineWithContext: theContext token: theToken])
2444
+ {
2445
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2446
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2447
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples_Definition];
2448
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeExamples];
2449
+ [self buildWithContext: theContext token: theToken];
2450
+ return 23;
2451
+ }
2452
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2453
+ {
2454
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2455
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2456
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2457
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2458
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2459
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2460
+ [self buildWithContext: theContext token: theToken];
2461
+ return 12;
2462
+ }
2463
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2464
+ {
2465
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2466
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2467
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2468
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2469
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2470
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2471
+ [self buildWithContext: theContext token: theToken];
2472
+ return 17;
2473
+ }
2474
+ if ([self matchCommentWithContext: theContext token: theToken])
2475
+ {
2476
+ [self buildWithContext: theContext token: theToken];
2477
+ return 29;
2478
+ }
2479
+ if ([self matchEmptyWithContext: theContext token: theToken])
2480
+ {
2481
+ [self buildWithContext: theContext token: theToken];
2482
+ return 29;
2483
+ }
2484
+
2485
+ NSString * stateComment = @"State: 29 - Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>ScenarioOutline_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";
2486
+ [theToken detach];
2487
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#StepLine", @"#TagLine", @"#ExamplesLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
2488
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2489
+ if (stopAtFirstError)
2490
+ @throw error;
2491
+
2492
+ [self addError: error withContext: theContext];
2493
+ return 29;
2494
+
2495
+ }
2496
+
2497
+
2498
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0
2499
+ - (int)matchTokenAt_30:(GHToken *)theToken context:(GHParserContext *)theContext
2500
+ {
2501
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
2502
+ {
2503
+ [self buildWithContext: theContext token: theToken];
2504
+ return 31;
2505
+ }
2506
+ if ([self matchOtherWithContext: theContext token: theToken])
2507
+ {
2508
+ [self buildWithContext: theContext token: theToken];
2509
+ return 30;
2510
+ }
2511
+
2512
+ NSString * stateComment = @"State: 30 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";
2513
+ [theToken detach];
2514
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#DocStringSeparator", @"#Other", nil];
2515
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2516
+ if (stopAtFirstError)
2517
+ @throw error;
2518
+
2519
+ [self addError: error withContext: theContext];
2520
+ return 30;
2521
+
2522
+ }
2523
+
2524
+
2525
+ // Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0
2526
+ - (int)matchTokenAt_31:(GHToken *)theToken context:(GHParserContext *)theContext
2527
+ {
2528
+ if ([self matchEOFWithContext: theContext token: theToken])
2529
+ {
2530
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2531
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2532
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2533
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2534
+ [self buildWithContext: theContext token: theToken];
2535
+ return 27;
2536
+ }
2537
+ if ([self matchStepLineWithContext: theContext token: theToken])
2538
+ {
2539
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2540
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2541
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
2542
+ [self buildWithContext: theContext token: theToken];
2543
+ return 15;
2544
+ }
2545
+ if ([self matchTagLineWithContext: theContext token: theToken])
2546
+ {
2547
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2548
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2549
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2550
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2551
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2552
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2553
+ [self buildWithContext: theContext token: theToken];
2554
+ return 11;
2555
+ }
2556
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2557
+ {
2558
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2559
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2560
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2561
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2562
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2563
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2564
+ [self buildWithContext: theContext token: theToken];
2565
+ return 12;
2566
+ }
2567
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2568
+ {
2569
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2570
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2571
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2572
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2573
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2574
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2575
+ [self buildWithContext: theContext token: theToken];
2576
+ return 17;
2577
+ }
2578
+ if ([self matchCommentWithContext: theContext token: theToken])
2579
+ {
2580
+ [self buildWithContext: theContext token: theToken];
2581
+ return 31;
2582
+ }
2583
+ if ([self matchEmptyWithContext: theContext token: theToken])
2584
+ {
2585
+ [self buildWithContext: theContext token: theToken];
2586
+ return 31;
2587
+ }
2588
+
2589
+ NSString * stateComment = @"State: 31 - Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";
2590
+ [theToken detach];
2591
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
2592
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2593
+ if (stopAtFirstError)
2594
+ @throw error;
2595
+
2596
+ [self addError: error withContext: theContext];
2597
+ return 31;
2598
+
2599
+ }
2600
+
2601
+
2602
+ // Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0
2603
+ - (int)matchTokenAt_32:(GHToken *)theToken context:(GHParserContext *)theContext
2604
+ {
2605
+ if ([self matchDocStringSeparatorWithContext: theContext token: theToken])
2606
+ {
2607
+ [self buildWithContext: theContext token: theToken];
2608
+ return 33;
2609
+ }
2610
+ if ([self matchOtherWithContext: theContext token: theToken])
2611
+ {
2612
+ [self buildWithContext: theContext token: theToken];
2613
+ return 32;
2614
+ }
2615
+
2616
+ NSString * stateComment = @"State: 32 - Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";
2617
+ [theToken detach];
2618
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#DocStringSeparator", @"#Other", nil];
2619
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2620
+ if (stopAtFirstError)
2621
+ @throw error;
2622
+
2623
+ [self addError: error withContext: theContext];
2624
+ return 32;
2625
+
2626
+ }
2627
+
2628
+
2629
+ // Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0
2630
+ - (int)matchTokenAt_33:(GHToken *)theToken context:(GHParserContext *)theContext
2631
+ {
2632
+ if ([self matchEOFWithContext: theContext token: theToken])
2633
+ {
2634
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2635
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2636
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
2637
+ [self buildWithContext: theContext token: theToken];
2638
+ return 27;
2639
+ }
2640
+ if ([self matchStepLineWithContext: theContext token: theToken])
2641
+ {
2642
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2643
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2644
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeStep];
2645
+ [self buildWithContext: theContext token: theToken];
2646
+ return 9;
2647
+ }
2648
+ if ([self matchTagLineWithContext: theContext token: theToken])
2649
+ {
2650
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2651
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2652
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
2653
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2654
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeTags];
2655
+ [self buildWithContext: theContext token: theToken];
2656
+ return 11;
2657
+ }
2658
+ if ([self matchScenarioLineWithContext: theContext token: theToken])
2659
+ {
2660
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2661
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2662
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
2663
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2664
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario];
2665
+ [self buildWithContext: theContext token: theToken];
2666
+ return 12;
2667
+ }
2668
+ if ([self matchScenarioOutlineLineWithContext: theContext token: theToken])
2669
+ {
2670
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeDocString];
2671
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeStep];
2672
+ [self endRuleWithContext: theContext ruleType: GHRuleTypeBackground];
2673
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenario_Definition];
2674
+ [self startRuleWithContext: theContext ruleType: GHRuleTypeScenarioOutline];
2675
+ [self buildWithContext: theContext token: theToken];
2676
+ return 17;
2677
+ }
2678
+ if ([self matchCommentWithContext: theContext token: theToken])
2679
+ {
2680
+ [self buildWithContext: theContext token: theToken];
2681
+ return 33;
2682
+ }
2683
+ if ([self matchEmptyWithContext: theContext token: theToken])
2684
+ {
2685
+ [self buildWithContext: theContext token: theToken];
2686
+ return 33;
2687
+ }
2688
+
2689
+ NSString * stateComment = @"State: 33 - Feature:1>Background:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";
2690
+ [theToken detach];
2691
+ NSArray<NSString *> * expectedTokens = [[NSArray<NSString *> alloc] initWithObjects: @"#EOF", @"#StepLine", @"#TagLine", @"#ScenarioLine", @"#ScenarioOutlineLine", @"#Comment", @"#Empty", nil];
2692
+ id error = [theToken isEOF] ? (GHParserException *)[[GHUnexpectedEOFException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment] : [[GHUnexpectedTokenException alloc] initWithToken: theToken expectedTokenTypes: expectedTokens stateComment: stateComment];
2693
+ if (stopAtFirstError)
2694
+ @throw error;
2695
+
2696
+ [self addError: error withContext: theContext];
2697
+ return 33;
2698
+
2699
+ }
2700
+
2701
+
2702
+
2703
+ - (BOOL)lookAheadWithContext_0:(GHParserContext *)theContext token:(GHToken *)currentToken
2704
+ {
2705
+ [currentToken detach];
2706
+ GHToken * theToken;
2707
+ NSMutableArray<GHToken *> * tokenBuffer = [[NSMutableArray<GHToken *> alloc] init];
2708
+ BOOL match = NO;
2709
+ do
2710
+ {
2711
+ theToken = [self readTokenWithContext: theContext];
2712
+ [theToken detach];
2713
+ [tokenBuffer addObject: theToken];
2714
+
2715
+ if (NO
2716
+ || [self matchExamplesLineWithContext: theContext token: theToken]
2717
+ )
2718
+ {
2719
+ match = YES;
2720
+ break;
2721
+ }
2722
+ } while (NO
2723
+ || [self matchEmptyWithContext: theContext token: theToken]
2724
+ || [self matchCommentWithContext: theContext token: theToken]
2725
+ || [self matchTagLineWithContext: theContext token: theToken]
2726
+ );
2727
+ for (GHToken * token in tokenBuffer)
2728
+ {
2729
+ [[theContext tokenQueue] addObject: token];
2730
+ }
2731
+ return match;
2732
+ }
2733
+
2734
+
2735
+ @end