diff --git a/CHANGELOG.md b/CHANGELOG.md index b743e54dd..f2df07c29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt ## [Unreleased] ### Added +- [All] Allow comment inside descriptions ([#334](https://github.com/cucumber/gherkin/pull/334)) - [.NET] Enabled overriding of parser's error-handling - [Python] Expose Python public API as package imports ([#352](https://github.com/cucumber/gherkin/pull/352)) diff --git a/c/gherkin.berp b/c/gherkin.berp index a1f7ecda3..1b97fce01 100644 --- a/c/gherkin.berp +++ b/c/gherkin.berp @@ -32,7 +32,7 @@ DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags! := #TagLine+ -// we need to explicitly mention comment, to avoid merging it into the description line's #Other token -// we also eat the leading empty lines, the tailing lines are not removed by the parser to avoid lookahead, this has to be done by the AST builder -DescriptionHelper := #Empty* Description? #Comment* -Description! := #Other+ +// descriptions should be allowed to be interspersed with comments +// if only comments are encountered, the description text will be empty +DescriptionHelper := #Empty* Description? +Description! := (#Other | #Comment)+ diff --git a/c/include/rule_type.h b/c/include/rule_type.h index d7654b5ed..56301ba4d 100644 --- a/c/include/rule_type.h +++ b/c/include/rule_type.h @@ -34,8 +34,8 @@ typedef enum RuleType { Rule_DataTable, /* DataTable! := #TableRow+ */ Rule_DocString, /* DocString! := #DocStringSeparator #Other* #DocStringSeparator */ Rule_Tags, /* Tags! := #TagLine+ */ - Rule_DescriptionHelper, /* DescriptionHelper := #Empty* Description? #Comment* */ - Rule_Description, /* Description! := #Other+ */ + Rule_DescriptionHelper, /* DescriptionHelper := #Empty* Description? */ + Rule_Description, /* Description! := (#Other | #Comment)+ */ Rule_Count } RuleType; diff --git a/c/src/parser.c b/c/src/parser.c index 96b23f486..5c21399dd 100644 --- a/c/src/parser.c +++ b/c/src/parser.c @@ -293,7 +293,7 @@ static bool lookahead_1(ParserContext* context) { static int match_token_at_0(Token* token, ParserContext* context) { if (match_EOF(context, token)) { build(context, token); - return 42; + return 34; } if (match_Language(context, token)) { start_rule(context, Rule_Feature); @@ -393,21 +393,22 @@ static int match_token_at_3(Token* token, ParserContext* context) { end_rule(context, Rule_FeatureHeader); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); return 3; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 5; + return 4; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Background); build(context, token); - return 6; + return 5; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -415,7 +416,7 @@ static int match_token_at_3(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -424,21 +425,21 @@ static int match_token_at_3(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); @@ -454,26 +455,25 @@ static int match_token_at_3(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 3;} -/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 */ +/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ static int match_token_at_4(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_FeatureHeader); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 5; + return 4; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Background); build(context, token); - return 6; + return 5; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -482,7 +482,7 @@ static int match_token_at_4(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -492,7 +492,7 @@ static int match_token_at_4(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -500,7 +500,7 @@ static int match_token_at_4(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -508,14 +508,14 @@ static int match_token_at_4(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); return 4; } - /* "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" */ + /* "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); @@ -523,88 +523,27 @@ static int match_token_at_4(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 4;} -/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_5(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_FeatureHeader); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 5; - } - if (match_BackgroundLine(context, token)) { - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_Background); - build(context, token); - return 6; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 5; - } - - /* "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 5;} /* GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 */ -static int match_token_at_6(Token* token, ParserContext* context) { +static int match_token_at_5(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 6; + return 5; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 8; + return 6; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -612,7 +551,7 @@ static int match_token_at_6(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -621,55 +560,54 @@ static int match_token_at_6(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 7; + return 6; } - /* "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" */ + /* "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 6;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_7(Token* token, ParserContext* context) { + return 5;} +/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_6(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 8; + return 6; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -678,7 +616,7 @@ static int match_token_at_7(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -688,7 +626,7 @@ static int match_token_at_7(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -696,7 +634,7 @@ static int match_token_at_7(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -704,106 +642,45 @@ static int match_token_at_7(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 7; + return 6; } - /* "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" */ + /* "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 7;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_8(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Background); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 8; - } - if (match_StepLine(context, token)) { - start_rule(context, Rule_Step); - build(context, token); - return 9; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 8; - } - - /* "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 8;} + return 6;} /* GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 */ -static int match_token_at_9(Token* token, ParserContext* context) { +static int match_token_at_7(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 10; + return 8; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 49; + return 41; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -812,7 +689,7 @@ static int match_token_at_9(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -822,7 +699,7 @@ static int match_token_at_9(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -830,7 +707,7 @@ static int match_token_at_9(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -838,45 +715,45 @@ static int match_token_at_9(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 9; + return 7; } if (match_Empty(context, token)) { build(context, token); - return 9; + return 7; } - /* "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" */ + /* "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 9;} + return 7;} /* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ -static int match_token_at_10(Token* token, ParserContext* context) { +static int match_token_at_8(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 10; + return 8; } if (match_StepLine(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -886,7 +763,7 @@ static int match_token_at_10(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -897,7 +774,7 @@ static int match_token_at_10(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -906,7 +783,7 @@ static int match_token_at_10(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -915,82 +792,83 @@ static int match_token_at_10(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 10; + return 8; } if (match_Empty(context, token)) { build(context, token); - return 10; + return 8; } - /* "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 10;} + return 8;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_11(Token* token, ParserContext* context) { +static int match_token_at_9(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 11; + return 9; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_Comment(context, token)) { build(context, token); - return 11; + return 9; } if (match_Empty(context, token)) { build(context, token); - return 11; + return 9; } - /* "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ const wchar_t* const expected_tokens = L"#TagLine, #ScenarioLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 11;} + return 9;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ -static int match_token_at_12(Token* token, ParserContext* context) { +static int match_token_at_10(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 12; + return 10; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 14; + return 11; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1000,7 +878,7 @@ static int match_token_at_12(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1010,13 +888,13 @@ static int match_token_at_12(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Scenario); @@ -1024,7 +902,7 @@ static int match_token_at_12(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Scenario); @@ -1032,42 +910,41 @@ static int match_token_at_12(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 13; + return 11; } - /* "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ + /* "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 12;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_13(Token* token, ParserContext* context) { + return 10;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_11(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 14; + return 11; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1075,7 +952,7 @@ static int match_token_at_13(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1086,7 +963,7 @@ static int match_token_at_13(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1097,14 +974,14 @@ static int match_token_at_13(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1113,7 +990,7 @@ static int match_token_at_13(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1122,126 +999,46 @@ static int match_token_at_13(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { - build(context, token); - return 13; - } - - /* "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 13;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_14(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 14; - } - if (match_StepLine(context, token)) { - start_rule(context, Rule_Step); - build(context, token); - return 15; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 17; - } - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); build(context, token); return 11; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 18; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 14; } - /* "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Empty"; + /* "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ + const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 14;} + return 11;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ -static int match_token_at_15(Token* token, ParserContext* context) { +static int match_token_at_12(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 16; + return 13; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 47; + return 39; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1249,7 +1046,7 @@ static int match_token_at_15(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1260,7 +1057,7 @@ static int match_token_at_15(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1271,14 +1068,14 @@ static int match_token_at_15(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -1287,7 +1084,7 @@ static int match_token_at_15(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -1296,27 +1093,27 @@ static int match_token_at_15(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 15; + return 12; } if (match_Empty(context, token)) { build(context, token); - return 15; + return 12; } - /* "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ + /* "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 15;} + return 12;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ -static int match_token_at_16(Token* token, ParserContext* context) { +static int match_token_at_13(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -1324,18 +1121,18 @@ static int match_token_at_16(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 16; + return 13; } if (match_StepLine(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1344,7 +1141,7 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1356,7 +1153,7 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1368,7 +1165,7 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1376,7 +1173,7 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1386,7 +1183,7 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1396,56 +1193,56 @@ static int match_token_at_16(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 16; + return 13; } if (match_Empty(context, token)) { build(context, token); - return 16; + return 13; } - /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 16;} + return 13;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_17(Token* token, ParserContext* context) { +static int match_token_at_14(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 17; + return 14; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_Comment(context, token)) { build(context, token); - return 17; + return 14; } if (match_Empty(context, token)) { build(context, token); - return 17; + return 14; } - /* "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ const wchar_t* const expected_tokens = L"#TagLine, #ExamplesLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 17;} + return 14;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ -static int match_token_at_18(Token* token, ParserContext* context) { +static int match_token_at_15(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); @@ -1453,20 +1250,21 @@ static int match_token_at_18(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 18; + return 15; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 20; + return 16; } if (match_TableRow(context, token)) { start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1475,7 +1273,7 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1487,7 +1285,7 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1499,7 +1297,7 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Examples); @@ -1507,7 +1305,7 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Examples); @@ -1517,7 +1315,7 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Examples); @@ -1527,24 +1325,24 @@ static int match_token_at_18(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 19; + return 16; } - /* "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ + /* "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 18;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_19(Token* token, ParserContext* context) { + return 15;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_16(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Examples); @@ -1553,18 +1351,17 @@ static int match_token_at_19(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 20; + return 16; } if (match_TableRow(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1574,7 +1371,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1587,7 +1384,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1600,7 +1397,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); @@ -1609,7 +1406,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1620,7 +1417,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1631,140 +1428,46 @@ static int match_token_at_19(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 19; + return 16; } - /* "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" */ + /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ const wchar_t* const expected_tokens = L"#EOF, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 19;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_20(Token* token, ParserContext* context) { + return 16;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 */ +static int match_token_at_17(Token* token, ParserContext* context) { if (match_EOF(context, token)) { + end_rule(context, Rule_ExamplesTable); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 20; + return 34; } if (match_TableRow(context, token)) { - start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { + end_rule(context, Rule_ExamplesTable); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; - } - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 18; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 20; - } - - /* "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 20;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 */ -static int match_token_at_21(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_ExamplesTable); - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_TableRow(context, token)) { - build(context, token); - return 21; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - end_rule(context, Rule_ExamplesTable); - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -1777,7 +1480,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -1790,7 +1493,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1799,7 +1502,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1810,7 +1513,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1821,75 +1524,76 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 21; + return 17; } if (match_Empty(context, token)) { build(context, token); - return 21; + return 17; } - /* "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ + /* "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 21;} + return 17;} /* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 */ -static int match_token_at_22(Token* token, ParserContext* context) { +static int match_token_at_18(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 22; + return 18; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Tags); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 22; + return 18; } if (match_Empty(context, token)) { build(context, token); - return 22; + return 18; } - /* "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" */ + /* "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" */ const wchar_t* const expected_tokens = L"#TagLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 22;} + return 18;} /* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 */ -static int match_token_at_23(Token* token, ParserContext* context) { +static int match_token_at_19(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 25; + return 20; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_RuleHeader); start_rule(context, Rule_Background); build(context, token); - return 26; + return 21; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -1897,7 +1601,7 @@ static int match_token_at_23(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -1907,14 +1611,14 @@ static int match_token_at_23(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_RuleHeader); @@ -1922,43 +1626,42 @@ static int match_token_at_23(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 24; + return 20; } - /* "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" */ + /* "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 23;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_24(Token* token, ParserContext* context) { + return 19;} +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_20(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 25; + return 20; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); start_rule(context, Rule_Background); build(context, token); - return 26; + return 21; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -1967,7 +1670,7 @@ static int match_token_at_24(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -1978,7 +1681,7 @@ static int match_token_at_24(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1986,7 +1689,7 @@ static int match_token_at_24(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1995,315 +1698,186 @@ static int match_token_at_24(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 24; + return 20; } - /* "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" */ + /* "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 24;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_25(Token* token, ParserContext* context) { + return 20;} +/* GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 */ +static int match_token_at_21(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_RuleHeader); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; + } + if (match_Empty(context, token)) { + build(context, token); + return 21; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 25; + return 22; } - if (match_BackgroundLine(context, token)) { - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Background); + if (match_StepLine(context, token)) { + start_rule(context, Rule_Step); build(context, token); - return 26; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_RuleHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_RuleHeader); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_RuleHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_RuleHeader); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 25; + return 22; } - /* "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Empty"; + /* "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" */ + const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 25;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 */ -static int match_token_at_26(Token* token, ParserContext* context) { + return 21;} +/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_22(Token* token, ParserContext* context) { if (match_EOF(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; - } - if (match_Empty(context, token)) { - build(context, token); - return 26; + return 34; } if (match_Comment(context, token)) { build(context, token); - return 28; + return 22; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 27; + return 22; } - /* "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ + const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 26;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_27(Token* token, ParserContext* context) { + return 22;} +/* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 */ +static int match_token_at_23(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } - if (match_Comment(context, token)) { - end_rule(context, Rule_Description); + if (match_TableRow(context, token)) { + start_rule(context, Rule_DataTable); build(context, token); - return 28; - } - if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_Step); - build(context, token); - return 29; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Other(context, token)) { - build(context, token); - return 27; - } - - /* "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 27;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_28(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 28; - } - if (match_StepLine(context, token)) { - start_rule(context, Rule_Step); - build(context, token); - return 29; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 28; - } - - /* "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 28;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 */ -static int match_token_at_29(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); - end_rule(context, Rule_Rule); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_TableRow(context, token)) { - start_rule(context, Rule_DataTable); - build(context, token); - return 30; + return 24; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 45; + return 37; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2312,7 +1886,7 @@ static int match_token_at_29(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -2323,7 +1897,7 @@ static int match_token_at_29(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -2331,7 +1905,7 @@ static int match_token_at_29(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -2340,27 +1914,27 @@ static int match_token_at_29(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 29; + return 23; } if (match_Empty(context, token)) { build(context, token); - return 29; + return 23; } - /* "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" */ + /* "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 29;} + return 23;} /* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ -static int match_token_at_30(Token* token, ParserContext* context) { +static int match_token_at_24(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -2368,18 +1942,18 @@ static int match_token_at_30(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 30; + return 24; } if (match_StepLine(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2389,7 +1963,7 @@ static int match_token_at_30(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -2401,7 +1975,7 @@ static int match_token_at_30(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2410,7 +1984,7 @@ static int match_token_at_30(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2420,83 +1994,84 @@ static int match_token_at_30(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 30; + return 24; } if (match_Empty(context, token)) { build(context, token); - return 30; + return 24; } - /* "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 30;} + return 24;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_31(Token* token, ParserContext* context) { +static int match_token_at_25(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 31; + return 25; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_Comment(context, token)) { build(context, token); - return 31; + return 25; } if (match_Empty(context, token)) { build(context, token); - return 31; + return 25; } - /* "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ const wchar_t* const expected_tokens = L"#TagLine, #ScenarioLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 31;} + return 25;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ -static int match_token_at_32(Token* token, ParserContext* context) { +static int match_token_at_26(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 32; + return 26; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 34; + return 27; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { @@ -2506,7 +2081,7 @@ static int match_token_at_32(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -2517,13 +2092,13 @@ static int match_token_at_32(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Scenario); @@ -2531,7 +2106,7 @@ static int match_token_at_32(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Scenario); @@ -2540,24 +2115,24 @@ static int match_token_at_32(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 33; + return 27; } - /* "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ + /* "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 32;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_33(Token* token, ParserContext* context) { + return 26;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_27(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); @@ -2565,18 +2140,17 @@ static int match_token_at_33(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 34; + return 27; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2584,7 +2158,7 @@ static int match_token_at_33(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { @@ -2595,7 +2169,7 @@ static int match_token_at_33(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -2607,14 +2181,14 @@ static int match_token_at_33(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -2623,7 +2197,7 @@ static int match_token_at_33(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -2633,106 +2207,23 @@ static int match_token_at_33(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 33; + return 27; } - /* "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" */ + /* "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 33;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_34(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) { - build(context, token); - return 34; - } - if (match_StepLine(context, token)) { - start_rule(context, Rule_Step); - build(context, token); - return 35; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 38; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) { - build(context, token); - return 34; - } - - /* "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 34;} + return 27;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ -static int match_token_at_35(Token* token, ParserContext* context) { +static int match_token_at_28(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); @@ -2740,23 +2231,23 @@ static int match_token_at_35(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 36; + return 29; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 43; + return 35; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2764,7 +2255,7 @@ static int match_token_at_35(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { @@ -2775,7 +2266,7 @@ static int match_token_at_35(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -2787,14 +2278,14 @@ static int match_token_at_35(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -2803,7 +2294,7 @@ static int match_token_at_35(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -2813,27 +2304,27 @@ static int match_token_at_35(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 35; + return 28; } if (match_Empty(context, token)) { build(context, token); - return 35; + return 28; } - /* "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ + /* "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 35;} + return 28;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ -static int match_token_at_36(Token* token, ParserContext* context) { +static int match_token_at_29(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -2842,18 +2333,18 @@ static int match_token_at_36(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 36; + return 29; } if (match_StepLine(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2862,158 +2353,24 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 38; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 23; - } - if (match_Comment(context, token)) { - build(context, token); - return 36; - } - if (match_Empty(context, token)) { - build(context, token); - return 36; - } - - /* "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ - const wchar_t* const expected_tokens = L"#EOF, #TableRow, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 36;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_37(Token* token, ParserContext* context) { - if (match_TagLine(context, token)) { - build(context, token); - return 37; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Tags); - start_rule(context, Rule_Examples); - build(context, token); - return 38; - } - if (match_Comment(context, token)) { - build(context, token); - return 37; - } - if (match_Empty(context, token)) { - build(context, token); - return 37; - } - - /* "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ - const wchar_t* const expected_tokens = L"#TagLine, #ExamplesLine, #Comment, #Empty"; - Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); - Token_delete(token); - if (context->stop_at_first_error) { - ErrorList_jump_to_global_rescue_env(context->errors); - } - return 37;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ -static int match_token_at_38(Token* token, ParserContext* context) { - if (match_EOF(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Rule); - end_rule(context, Rule_Feature); - build(context, token); - return 42; - } - if (match_Empty(context, token)) { - build(context, token); - return 38; - } - if (match_Comment(context, token)) { - build(context, token); - return 40; - } - if (match_TableRow(context, token)) { - start_rule(context, Rule_ExamplesTable); - build(context, token); - return 41; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); @@ -3021,55 +2378,86 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); + if (match_Comment(context, token)) { build(context, token); - return 39; + return 29; + } + if (match_Empty(context, token)) { + build(context, token); + return 29; } - /* "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + const wchar_t* const expected_tokens = L"#EOF, #TableRow, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 38;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_39(Token* token, ParserContext* context) { + return 29;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ +static int match_token_at_30(Token* token, ParserContext* context) { + if (match_TagLine(context, token)) { + build(context, token); + return 30; + } + if (match_ExamplesLine(context, token)) { + end_rule(context, Rule_Tags); + start_rule(context, Rule_Examples); + build(context, token); + return 31; + } + if (match_Comment(context, token)) { + build(context, token); + return 30; + } + if (match_Empty(context, token)) { + build(context, token); + return 30; + } + + /* "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ + const wchar_t* const expected_tokens = L"#TagLine, #ExamplesLine, #Comment, #Empty"; + Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); + Token_delete(token); + if (context->stop_at_first_error) { + ErrorList_jump_to_global_rescue_env(context->errors); + } + return 30;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ +static int match_token_at_31(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3077,33 +2465,34 @@ static int match_token_at_39(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; + } + if (match_Empty(context, token)) { + build(context, token); + return 31; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); + start_rule(context, Rule_Description); build(context, token); - return 40; + return 32; } if (match_TableRow(context, token)) { - end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3111,11 +2500,10 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3125,19 +2513,17 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3145,10 +2531,9 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3157,24 +2542,26 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 39; + return 32; } - /* "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ + const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 39;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_40(Token* token, ParserContext* context) { + return 31;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 */ +static int match_token_at_32(Token* token, ParserContext* context) { if (match_EOF(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3182,29 +2569,32 @@ static int match_token_at_40(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { build(context, token); - return 40; + return 32; } if (match_TableRow(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3212,10 +2602,11 @@ static int match_token_at_40(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3225,17 +2616,19 @@ static int match_token_at_40(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3243,9 +2636,10 @@ static int match_token_at_40(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); end_rule(context, Rule_Scenario); @@ -3254,23 +2648,23 @@ static int match_token_at_40(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 40; + return 32; } - /* "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Empty"; + /* "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" */ + const wchar_t* const expected_tokens = L"#EOF, #Comment, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 40;} + return 32;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 */ -static int match_token_at_41(Token* token, ParserContext* context) { +static int match_token_at_33(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_ExamplesTable); end_rule(context, Rule_Examples); @@ -3280,11 +2674,11 @@ static int match_token_at_41(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3294,7 +2688,7 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { @@ -3307,7 +2701,7 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -3321,7 +2715,7 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3330,7 +2724,7 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3341,7 +2735,7 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3353,46 +2747,46 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 41; + return 33; } if (match_Empty(context, token)) { build(context, token); - return 41; + return 33; } - /* "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ + /* "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ const wchar_t* const expected_tokens = L"#EOF, #TableRow, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 41;} + return 33;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 */ -static int match_token_at_43(Token* token, ParserContext* context) { +static int match_token_at_35(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 44; + return 36; } if (match_Other(context, token)) { build(context, token); - return 43; + return 35; } - /* "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#DocStringSeparator, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 43;} + return 35;} /* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 */ -static int match_token_at_44(Token* token, ParserContext* context) { +static int match_token_at_36(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3401,14 +2795,14 @@ static int match_token_at_44(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3417,7 +2811,7 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { @@ -3429,7 +2823,7 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -3442,7 +2836,7 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3450,7 +2844,7 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3460,7 +2854,7 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3471,46 +2865,46 @@ static int match_token_at_44(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 44; + return 36; } if (match_Empty(context, token)) { build(context, token); - return 44; + return 36; } - /* "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#EOF, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 44;} + return 36;} /* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 */ -static int match_token_at_45(Token* token, ParserContext* context) { +static int match_token_at_37(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 46; + return 38; } if (match_Other(context, token)) { build(context, token); - return 45; + return 37; } - /* "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#DocStringSeparator, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 45;} + return 37;} /* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 */ -static int match_token_at_46(Token* token, ParserContext* context) { +static int match_token_at_38(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3518,14 +2912,14 @@ static int match_token_at_46(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -3535,7 +2929,7 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { @@ -3547,7 +2941,7 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3556,7 +2950,7 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3566,46 +2960,46 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 46; + return 38; } if (match_Empty(context, token)) { build(context, token); - return 46; + return 38; } - /* "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#EOF, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 46;} + return 38;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 */ -static int match_token_at_47(Token* token, ParserContext* context) { +static int match_token_at_39(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 48; + return 40; } if (match_Other(context, token)) { build(context, token); - return 47; + return 39; } - /* "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#DocStringSeparator, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 47;} + return 39;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 */ -static int match_token_at_48(Token* token, ParserContext* context) { +static int match_token_at_40(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3613,14 +3007,14 @@ static int match_token_at_48(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3629,7 +3023,7 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { @@ -3641,7 +3035,7 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -3653,7 +3047,7 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3661,7 +3055,7 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3671,7 +3065,7 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3681,60 +3075,60 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 48; + return 40; } if (match_Empty(context, token)) { build(context, token); - return 48; + return 40; } - /* "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#EOF, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 48;} + return 40;} /* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 */ -static int match_token_at_49(Token* token, ParserContext* context) { +static int match_token_at_41(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 50; + return 42; } if (match_Other(context, token)) { build(context, token); - return 49; + return 41; } - /* "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#DocStringSeparator, #Other"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 49;} + return 41;} /* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 */ -static int match_token_at_50(Token* token, ParserContext* context) { +static int match_token_at_42(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -3744,7 +3138,7 @@ static int match_token_at_50(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { @@ -3755,7 +3149,7 @@ static int match_token_at_50(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3764,7 +3158,7 @@ static int match_token_at_50(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3773,25 +3167,25 @@ static int match_token_at_50(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 50; + return 42; } if (match_Empty(context, token)) { build(context, token); - return 50; + return 42; } - /* "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ const wchar_t* const expected_tokens = L"#EOF, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Comment, #Empty"; Token_is_eof(token) ? ErrorList_add_unexpected_eof_error(context->errors, token, expected_tokens) : ErrorList_add_unexpected_token_error(context->errors, token, expected_tokens); Token_delete(token); if (context->stop_at_first_error) { ErrorList_jump_to_global_rescue_env(context->errors); } - return 50;} + return 42;} static int match_token(int state, Token* token, ParserContext* context) { switch (state) { case 0: @@ -3862,8 +3256,6 @@ static int match_token(int state, Token* token, ParserContext* context) { return match_token_at_32(token, context); case 33: return match_token_at_33(token, context); - case 34: - return match_token_at_34(token, context); case 35: return match_token_at_35(token, context); case 36: @@ -3878,22 +3270,8 @@ static int match_token(int state, Token* token, ParserContext* context) { return match_token_at_40(token, context); case 41: return match_token_at_41(token, context); - case 43: - return match_token_at_43(token, context); - case 44: - return match_token_at_44(token, context); - case 45: - return match_token_at_45(token, context); - case 46: - return match_token_at_46(token, context); - case 47: - return match_token_at_47(token, context); - case 48: - return match_token_at_48(token, context); - case 49: - return match_token_at_49(token, context); - case 50: - return match_token_at_50(token, context); + case 42: + return match_token_at_42(token, context); default: ErrorList_add_invalid_operation_error(context->errors, state); ErrorList_jump_to_global_rescue_env(context->errors); diff --git a/dotnet/Gherkin/Parser.cs b/dotnet/Gherkin/Parser.cs index 6f5d966c2..48a67feb0 100644 --- a/dotnet/Gherkin/Parser.cs +++ b/dotnet/Gherkin/Parser.cs @@ -65,8 +65,8 @@ public enum RuleType DataTable, // DataTable! := #TableRow+ DocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags, // Tags! := #TagLine+ - DescriptionHelper, // DescriptionHelper := #Empty* Description? #Comment* - Description, // Description! := #Other+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ } [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] @@ -509,9 +509,6 @@ protected virtual int MatchToken(int state, Token token, ParserContext context) case 33: newState = MatchTokenAt_33(token, context); break; - case 34: - newState = MatchTokenAt_34(token, context); - break; case 35: newState = MatchTokenAt_35(token, context); break; @@ -533,29 +530,8 @@ protected virtual int MatchToken(int state, Token token, ParserContext context) case 41: newState = MatchTokenAt_41(token, context); break; - case 43: - newState = MatchTokenAt_43(token, context); - break; - case 44: - newState = MatchTokenAt_44(token, context); - break; - case 45: - newState = MatchTokenAt_45(token, context); - break; - case 46: - newState = MatchTokenAt_46(token, context); - break; - case 47: - newState = MatchTokenAt_47(token, context); - break; - case 48: - newState = MatchTokenAt_48(token, context); - break; - case 49: - newState = MatchTokenAt_49(token, context); - break; - case 50: - newState = MatchTokenAt_50(token, context); + case 42: + newState = MatchTokenAt_42(token, context); break; default: throw new InvalidOperationException("Unknown state: " + state); @@ -570,7 +546,7 @@ int MatchTokenAt_0(Token token, ParserContext context) if (Match_EOF(context, token)) { Build(context, token); - return 42; + return 34; } if (Match_Language(context, token)) { @@ -699,7 +675,7 @@ int MatchTokenAt_3(Token token, ParserContext context) EndRule(context, RuleType.FeatureHeader); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Empty(context, token)) { @@ -708,15 +684,16 @@ int MatchTokenAt_3(Token token, ParserContext context) } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 5; + return 4; } if (Match_BackgroundLine(context, token)) { EndRule(context, RuleType.FeatureHeader); StartRule(context, RuleType.Background); Build(context, token); - return 6; + return 5; } if (Match_TagLine(context, token)) { @@ -726,7 +703,7 @@ int MatchTokenAt_3(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -736,7 +713,7 @@ int MatchTokenAt_3(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -744,7 +721,7 @@ int MatchTokenAt_3(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -752,7 +729,7 @@ int MatchTokenAt_3(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { @@ -773,7 +750,7 @@ int MatchTokenAt_3(Token token, ParserContext context) return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 int MatchTokenAt_4(Token token, ParserContext context) { if (Match_EOF(context, token)) @@ -782,13 +759,12 @@ int MatchTokenAt_4(Token token, ParserContext context) EndRule(context, RuleType.FeatureHeader); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 5; + return 4; } if (Match_BackgroundLine(context, token)) { @@ -796,7 +772,7 @@ int MatchTokenAt_4(Token token, ParserContext context) EndRule(context, RuleType.FeatureHeader); StartRule(context, RuleType.Background); Build(context, token); - return 6; + return 5; } if (Match_TagLine(context, token)) { @@ -807,7 +783,7 @@ int MatchTokenAt_4(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -818,7 +794,7 @@ int MatchTokenAt_4(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -827,7 +803,7 @@ int MatchTokenAt_4(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -836,7 +812,7 @@ int MatchTokenAt_4(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { @@ -844,7 +820,7 @@ int MatchTokenAt_4(Token token, ParserContext context) return 4; } - const string stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -856,73 +832,79 @@ int MatchTokenAt_4(Token token, ParserContext context) return 4; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 + // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 int MatchTokenAt_5(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.FeatureHeader); + EndRule(context, RuleType.Background); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_Comment(context, token)) + if (Match_Empty(context, token)) { Build(context, token); return 5; } - if (Match_BackgroundLine(context, token)) + if (Match_Comment(context, token)) { - EndRule(context, RuleType.FeatureHeader); - StartRule(context, RuleType.Background); + StartRule(context, RuleType.Description); Build(context, token); return 6; } + if (Match_StepLine(context, token)) + { + StartRule(context, RuleType.Step); + Build(context, token); + return 7; + } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.FeatureHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.FeatureHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.FeatureHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.FeatureHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 5; + return 6; } - const string stateComment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -932,78 +914,78 @@ int MatchTokenAt_5(Token token, ParserContext context) return 5; } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 int MatchTokenAt_6(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); EndRule(context, RuleType.Feature); Build(context, token); - return 42; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 6; + return 34; } if (Match_Comment(context, token)) { Build(context, token); - return 8; + return 6; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.Description); StartRule(context, RuleType.Step); Build(context, token); - return 9; + return 7; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 7; + return 6; } - const string stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; + const string stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -1013,79 +995,90 @@ int MatchTokenAt_6(Token token, ParserContext context) return 6; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 int MatchTokenAt_7(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { - EndRule(context, RuleType.Description); + StartRule(context, RuleType.DataTable); Build(context, token); return 8; } + if (Match_DocStringSeparator(context, token)) + { + StartRule(context, RuleType.DocString); + Build(context, token); + return 41; + } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 9; + return 7; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Other(context, token)) + if (Match_Comment(context, token)) + { + Build(context, token); + return 7; + } + if (Match_Empty(context, token)) { Build(context, token); return 7; } - const string stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -1095,62 +1088,79 @@ int MatchTokenAt_7(Token token, ParserContext context) return 7; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 + // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 int MatchTokenAt_8(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { Build(context, token); return 8; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 9; + return 7; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; + } + if (Match_Comment(context, token)) + { + Build(context, token); + return 8; } if (Match_Empty(context, token)) { @@ -1158,9 +1168,9 @@ int MatchTokenAt_8(Token token, ParserContext context) return 8; } - const string stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -1170,75 +1180,20 @@ int MatchTokenAt_8(Token token, ParserContext context) return 8; } - // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 int MatchTokenAt_9(Token token, ParserContext context) { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_TableRow(context, token)) - { - StartRule(context, RuleType.DataTable); - Build(context, token); - return 10; - } - if (Match_DocStringSeparator(context, token)) - { - StartRule(context, RuleType.DocString); - Build(context, token); - return 49; - } - if (Match_StepLine(context, token)) - { - EndRule(context, RuleType.Step); - StartRule(context, RuleType.Step); - Build(context, token); - return 9; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 11; - } - } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 9; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.Tags); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; + return 10; } if (Match_Comment(context, token)) { @@ -1251,9 +1206,9 @@ int MatchTokenAt_9(Token token, ParserContext context) return 9; } - const string stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; + const string stateComment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; + var expectedTokens = new string[] {"#TagLine", "#ScenarioLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -1263,138 +1218,8 @@ int MatchTokenAt_9(Token token, ParserContext context) return 9; } - // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 int MatchTokenAt_10(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_TableRow(context, token)) - { - Build(context, token); - return 10; - } - if (Match_StepLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - StartRule(context, RuleType.Step); - Build(context, token); - return 9; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 11; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 12; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 10; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 10; - } - - const string stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 10; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - int MatchTokenAt_11(Token token, ParserContext context) - { - if (Match_TagLine(context, token)) - { - Build(context, token); - return 11; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.Tags); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 12; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 11; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 11; - } - - const string stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; - token.Detach(); - var expectedTokens = new string[] {"#TagLine", "#ScenarioLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 11; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - int MatchTokenAt_12(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -1402,23 +1227,24 @@ int MatchTokenAt_12(Token token, ParserContext context) EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Empty(context, token)) { Build(context, token); - return 12; + return 10; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 14; + return 11; } if (Match_StepLine(context, token)) { StartRule(context, RuleType.Step); Build(context, token); - return 15; + return 12; } if (Match_TagLine(context, token)) { @@ -1427,7 +1253,7 @@ int MatchTokenAt_12(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) @@ -1439,7 +1265,7 @@ int MatchTokenAt_12(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -1450,14 +1276,14 @@ int MatchTokenAt_12(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { @@ -1466,7 +1292,7 @@ int MatchTokenAt_12(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -1475,16 +1301,16 @@ int MatchTokenAt_12(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { StartRule(context, RuleType.Description); Build(context, token); - return 13; + return 11; } - const string stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; + const string stateComment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -1493,11 +1319,11 @@ int MatchTokenAt_12(Token token, ParserContext context) throw error; AddError(context, error); - return 12; + return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_13(Token token, ParserContext context) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_11(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -1506,20 +1332,19 @@ int MatchTokenAt_13(Token token, ParserContext context) EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 14; + return 11; } if (Match_StepLine(context, token)) { EndRule(context, RuleType.Description); StartRule(context, RuleType.Step); Build(context, token); - return 15; + return 12; } if (Match_TagLine(context, token)) { @@ -1529,7 +1354,7 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) @@ -1542,7 +1367,7 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -1554,7 +1379,7 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -1562,7 +1387,7 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { @@ -1572,7 +1397,7 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -1582,15 +1407,15 @@ int MatchTokenAt_13(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { Build(context, token); - return 13; + return 11; } - const string stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -1599,163 +1424,181 @@ int MatchTokenAt_13(Token token, ParserContext context) throw error; AddError(context, error); - return 13; + return 11; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_14(Token token, ParserContext context) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + int MatchTokenAt_12(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { + StartRule(context, RuleType.DataTable); Build(context, token); - return 14; + return 13; + } + if (Match_DocStringSeparator(context, token)) + { + StartRule(context, RuleType.DocString); + Build(context, token); + return 39; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 15; + return 12; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { + EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { + EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; + } + if (Match_Comment(context, token)) + { + Build(context, token); + return 12; } if (Match_Empty(context, token)) { Build(context, token); - return 14; + return 12; } - const string stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 14; + return 12; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - int MatchTokenAt_15(Token token, ParserContext context) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + int MatchTokenAt_13(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_TableRow(context, token)) { - StartRule(context, RuleType.DataTable); - Build(context, token); - return 16; - } - if (Match_DocStringSeparator(context, token)) - { - StartRule(context, RuleType.DocString); Build(context, token); - return 47; + return 13; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 15; + return 12; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); @@ -1763,142 +1606,27 @@ int MatchTokenAt_15(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 15; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 15; - } - - const string stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 15; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - int MatchTokenAt_16(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_TableRow(context, token)) - { - Build(context, token); - return 16; - } - if (Match_StepLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - StartRule(context, RuleType.Step); - Build(context, token); - return 15; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_1(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 17; - } - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 11; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ExamplesLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Examples); - Build(context, token); - return 18; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -1909,20 +1637,20 @@ int MatchTokenAt_16(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 16; + return 13; } if (Match_Empty(context, token)) { Build(context, token); - return 16; + return 13; } - const string stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + const string stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -1931,36 +1659,36 @@ int MatchTokenAt_16(Token token, ParserContext context) throw error; AddError(context, error); - return 16; + return 13; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - int MatchTokenAt_17(Token token, ParserContext context) + int MatchTokenAt_14(Token token, ParserContext context) { if (Match_TagLine(context, token)) { Build(context, token); - return 17; + return 14; } if (Match_ExamplesLine(context, token)) { EndRule(context, RuleType.Tags); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_Comment(context, token)) { Build(context, token); - return 17; + return 14; } if (Match_Empty(context, token)) { Build(context, token); - return 17; + return 14; } - const string stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + const string stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; token.Detach(); var expectedTokens = new string[] {"#TagLine", "#ExamplesLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -1969,11 +1697,11 @@ int MatchTokenAt_17(Token token, ParserContext context) throw error; AddError(context, error); - return 17; + return 14; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - int MatchTokenAt_18(Token token, ParserContext context) + int MatchTokenAt_15(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -1983,23 +1711,24 @@ int MatchTokenAt_18(Token token, ParserContext context) EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Empty(context, token)) { Build(context, token); - return 18; + return 15; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 20; + return 16; } if (Match_TableRow(context, token)) { StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 21; + return 17; } if (Match_TagLine(context, token)) { @@ -2010,7 +1739,7 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) @@ -2024,7 +1753,7 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -2037,7 +1766,7 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -2046,7 +1775,7 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { @@ -2057,7 +1786,7 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -2068,16 +1797,16 @@ int MatchTokenAt_18(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { StartRule(context, RuleType.Description); Build(context, token); - return 19; + return 16; } - const string stateComment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + const string stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -2086,11 +1815,11 @@ int MatchTokenAt_18(Token token, ParserContext context) throw error; AddError(context, error); - return 18; + return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_19(Token token, ParserContext context) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_16(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -2101,20 +1830,19 @@ int MatchTokenAt_19(Token token, ParserContext context) EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 20; + return 16; } if (Match_TableRow(context, token)) { EndRule(context, RuleType.Description); StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 21; + return 17; } if (Match_TagLine(context, token)) { @@ -2126,7 +1854,7 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) @@ -2141,7 +1869,7 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -2155,7 +1883,7 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -2165,7 +1893,7 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { @@ -2177,7 +1905,7 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -2189,15 +1917,15 @@ int MatchTokenAt_19(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { Build(context, token); - return 19; + return 16; } - const string stateComment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -2206,49 +1934,46 @@ int MatchTokenAt_19(Token token, ParserContext context) throw error; AddError(context, error); - return 19; + return 16; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_20(Token token, ParserContext context) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + int MatchTokenAt_17(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 20; + return 34; } if (Match_TableRow(context, token)) { - StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 21; + return 17; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2256,11 +1981,12 @@ int MatchTokenAt_20(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2269,19 +1995,21 @@ int MatchTokenAt_20(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2289,10 +2017,11 @@ int MatchTokenAt_20(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2300,169 +2029,57 @@ int MatchTokenAt_20(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; + } + if (Match_Comment(context, token)) + { + Build(context, token); + return 17; } if (Match_Empty(context, token)) { Build(context, token); - return 20; + return 17; } - const string stateComment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 20; + return 17; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - int MatchTokenAt_21(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 + int MatchTokenAt_18(Token token, ParserContext context) { - if (Match_EOF(context, token)) + if (Match_TagLine(context, token)) { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 18; } - if (Match_TableRow(context, token)) + if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.Tags); Build(context, token); - return 21; + return 19; } - if (Match_TagLine(context, token)) + if (Match_Comment(context, token)) { - if (LookAhead_1(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 17; - } - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 11; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ExamplesLine(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Examples); Build(context, token); return 18; } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 12; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.ExamplesTable); - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 21; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 21; - } - - const string stateComment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 21; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - int MatchTokenAt_22(Token token, ParserContext context) - { - if (Match_TagLine(context, token)) - { - Build(context, token); - return 22; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Tags); - Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 22; - } if (Match_Empty(context, token)) { Build(context, token); - return 22; + return 18; } - const string stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; + const string stateComment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; token.Detach(); var expectedTokens = new string[] {"#TagLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -2471,11 +2088,11 @@ int MatchTokenAt_22(Token token, ParserContext context) throw error; AddError(context, error); - return 22; + return 18; } // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - int MatchTokenAt_23(Token token, ParserContext context) + int MatchTokenAt_19(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -2483,24 +2100,25 @@ int MatchTokenAt_23(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Empty(context, token)) { Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 25; + return 20; } if (Match_BackgroundLine(context, token)) { EndRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Background); Build(context, token); - return 26; + return 21; } if (Match_TagLine(context, token)) { @@ -2510,7 +2128,7 @@ int MatchTokenAt_23(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -2521,7 +2139,7 @@ int MatchTokenAt_23(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -2529,7 +2147,7 @@ int MatchTokenAt_23(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -2538,16 +2156,16 @@ int MatchTokenAt_23(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { StartRule(context, RuleType.Description); Build(context, token); - return 24; + return 20; } - const string stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; + const string stateComment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -2556,11 +2174,11 @@ int MatchTokenAt_23(Token token, ParserContext context) throw error; AddError(context, error); - return 23; + return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_24(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_20(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -2569,13 +2187,12 @@ int MatchTokenAt_24(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 25; + return 20; } if (Match_BackgroundLine(context, token)) { @@ -2583,7 +2200,7 @@ int MatchTokenAt_24(Token token, ParserContext context) EndRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Background); Build(context, token); - return 26; + return 21; } if (Match_TagLine(context, token)) { @@ -2594,7 +2211,7 @@ int MatchTokenAt_24(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -2606,7 +2223,7 @@ int MatchTokenAt_24(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -2615,7 +2232,7 @@ int MatchTokenAt_24(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -2625,15 +2242,15 @@ int MatchTokenAt_24(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { Build(context, token); - return 24; + return 20; } - const string stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -2642,365 +2259,208 @@ int MatchTokenAt_24(Token token, ParserContext context) throw error; AddError(context, error); - return 24; + return 20; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_25(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 + int MatchTokenAt_21(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.RuleHeader); + EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 21; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 25; + return 22; } - if (Match_BackgroundLine(context, token)) + if (Match_StepLine(context, token)) { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Background); + StartRule(context, RuleType.Step); Build(context, token); - return 26; + return 23; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.RuleHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.RuleHeader); + EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.RuleHeader); + EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.RuleHeader); + EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 25; + return 22; } - const string stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 25; + return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - int MatchTokenAt_26(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_22(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 26; + return 34; } if (Match_Comment(context, token)) { Build(context, token); - return 28; + return 22; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.Description); StartRule(context, RuleType.Step); Build(context, token); - return 29; + return 23; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 27; + return 22; } - const string stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; + const string stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 26; + return 22; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_27(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 + int MatchTokenAt_23(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Description); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { - EndRule(context, RuleType.Description); + StartRule(context, RuleType.DataTable); Build(context, token); - return 28; + return 24; } - if (Match_StepLine(context, token)) + if (Match_DocStringSeparator(context, token)) { - EndRule(context, RuleType.Description); - StartRule(context, RuleType.Step); + StartRule(context, RuleType.DocString); Build(context, token); - return 29; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 32; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Other(context, token)) - { - Build(context, token); - return 27; - } - - const string stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 27; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_28(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 28; - } - if (Match_StepLine(context, token)) - { - StartRule(context, RuleType.Step); - Build(context, token); - return 29; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.Background); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 32; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 28; - } - - const string stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 28; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - int MatchTokenAt_29(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_TableRow(context, token)) - { - StartRule(context, RuleType.DataTable); - Build(context, token); - return 30; - } - if (Match_DocStringSeparator(context, token)) - { - StartRule(context, RuleType.DocString); - Build(context, token); - return 45; + return 37; } if (Match_StepLine(context, token)) { EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 29; + return 23; } if (Match_TagLine(context, token)) { @@ -3011,7 +2471,7 @@ int MatchTokenAt_29(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -3023,7 +2483,7 @@ int MatchTokenAt_29(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -3032,7 +2492,7 @@ int MatchTokenAt_29(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -3042,20 +2502,20 @@ int MatchTokenAt_29(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 29; + return 23; } if (Match_Empty(context, token)) { Build(context, token); - return 29; + return 23; } - const string stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; + const string stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -3064,11 +2524,11 @@ int MatchTokenAt_29(Token token, ParserContext context) throw error; AddError(context, error); - return 29; + return 23; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - int MatchTokenAt_30(Token token, ParserContext context) + int MatchTokenAt_24(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -3078,12 +2538,12 @@ int MatchTokenAt_30(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_TableRow(context, token)) { Build(context, token); - return 30; + return 24; } if (Match_StepLine(context, token)) { @@ -3091,7 +2551,7 @@ int MatchTokenAt_30(Token token, ParserContext context) EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 29; + return 23; } if (Match_TagLine(context, token)) { @@ -3103,7 +2563,7 @@ int MatchTokenAt_30(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -3116,7 +2576,7 @@ int MatchTokenAt_30(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -3126,7 +2586,7 @@ int MatchTokenAt_30(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -3137,20 +2597,20 @@ int MatchTokenAt_30(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 30; + return 24; } if (Match_Empty(context, token)) { Build(context, token); - return 30; + return 24; } - const string stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + const string stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -3159,264 +2619,49 @@ int MatchTokenAt_30(Token token, ParserContext context) throw error; AddError(context, error); - return 30; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - int MatchTokenAt_31(Token token, ParserContext context) - { - if (Match_TagLine(context, token)) - { - Build(context, token); - return 31; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.Tags); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 32; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 31; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 31; - } - - const string stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; - token.Detach(); - var expectedTokens = new string[] {"#TagLine", "#ScenarioLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 31; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - int MatchTokenAt_32(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 32; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 34; - } - if (Match_StepLine(context, token)) - { - StartRule(context, RuleType.Step); - Build(context, token); - return 35; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_1(context, token)) - { - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 37; - } - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ExamplesLine(context, token)) - { - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Examples); - Build(context, token); - return 38; - } - if (Match_ScenarioLine(context, token)) - { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 32; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - Build(context, token); - return 23; - } - if (Match_Other(context, token)) - { - StartRule(context, RuleType.Description); - Build(context, token); - return 33; - } - - const string stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 32; + return 24; } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_33(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_Comment(context, token)) - { - EndRule(context, RuleType.Description); - Build(context, token); - return 34; - } - if (Match_StepLine(context, token)) - { - EndRule(context, RuleType.Description); - StartRule(context, RuleType.Step); - Build(context, token); - return 35; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_1(context, token)) - { - EndRule(context, RuleType.Description); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 37; - } - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Tags); - Build(context, token); - return 22; - } - if (Match_ExamplesLine(context, token)) + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + int MatchTokenAt_25(Token token, ParserContext context) + { + if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Description); - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 25; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.Tags); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } - if (Match_RuleLine(context, token)) + if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 25; } - if (Match_Other(context, token)) + if (Match_Empty(context, token)) { Build(context, token); - return 33; + return 25; } - const string stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#TagLine", "#ScenarioLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 33; + return 25; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_34(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + int MatchTokenAt_26(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -3425,18 +2670,24 @@ int MatchTokenAt_34(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 26; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 34; + return 27; } if (Match_StepLine(context, token)) { StartRule(context, RuleType.Step); Build(context, token); - return 35; + return 28; } if (Match_TagLine(context, token)) { @@ -3445,7 +2696,7 @@ int MatchTokenAt_34(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) @@ -3457,7 +2708,7 @@ int MatchTokenAt_34(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -3469,14 +2720,14 @@ int MatchTokenAt_34(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { @@ -3485,7 +2736,7 @@ int MatchTokenAt_34(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -3495,85 +2746,79 @@ int MatchTokenAt_34(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 34; + return 27; } - const string stateComment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 34; + return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - int MatchTokenAt_35(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_27(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; - } - if (Match_TableRow(context, token)) - { - StartRule(context, RuleType.DataTable); - Build(context, token); - return 36; + return 34; } - if (Match_DocStringSeparator(context, token)) + if (Match_Comment(context, token)) { - StartRule(context, RuleType.DocString); Build(context, token); - return 43; + return 27; } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); StartRule(context, RuleType.Step); Build(context, token); - return 35; + return 28; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); @@ -3581,116 +2826,113 @@ int MatchTokenAt_35(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 35; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { Build(context, token); - return 35; + return 27; } - const string stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; + const string stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 35; + return 27; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - int MatchTokenAt_36(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + int MatchTokenAt_28(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_TableRow(context, token)) { + StartRule(context, RuleType.DataTable); Build(context, token); - return 36; + return 29; + } + if (Match_DocStringSeparator(context, token)) + { + StartRule(context, RuleType.DocString); + Build(context, token); + return 35; } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 35; + return 28; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); @@ -3699,31 +2941,28 @@ int MatchTokenAt_36(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); @@ -3731,129 +2970,88 @@ int MatchTokenAt_36(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 36; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 36; - } - - const string stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; - var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 36; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - int MatchTokenAt_37(Token token, ParserContext context) - { - if (Match_TagLine(context, token)) - { - Build(context, token); - return 37; - } - if (Match_ExamplesLine(context, token)) - { - EndRule(context, RuleType.Tags); - StartRule(context, RuleType.Examples); - Build(context, token); - return 38; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 37; + return 28; } if (Match_Empty(context, token)) { Build(context, token); - return 37; + return 28; } - const string stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + const string stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; token.Detach(); - var expectedTokens = new string[] {"#TagLine", "#ExamplesLine", "#Comment", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 37; + return 28; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - int MatchTokenAt_38(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + int MatchTokenAt_29(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 38; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { Build(context, token); - return 40; + return 29; } - if (Match_TableRow(context, token)) + if (Match_StepLine(context, token)) { - StartRule(context, RuleType.ExamplesTable); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); + StartRule(context, RuleType.Step); Build(context, token); - return 41; + return 28; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); @@ -3861,65 +3059,106 @@ int MatchTokenAt_38(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) - { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Examples); - EndRule(context, RuleType.ExamplesDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); EndRule(context, RuleType.Scenario); EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Other(context, token)) + if (Match_Comment(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 39; + return 29; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 29; } - const string stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + const string stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 38; + return 29; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_39(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + int MatchTokenAt_30(Token token, ParserContext context) + { + if (Match_TagLine(context, token)) + { + Build(context, token); + return 30; + } + if (Match_ExamplesLine(context, token)) + { + EndRule(context, RuleType.Tags); + StartRule(context, RuleType.Examples); + Build(context, token); + return 31; + } + if (Match_Comment(context, token)) + { + Build(context, token); + return 30; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 30; + } + + const string stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + token.Detach(); + var expectedTokens = new string[] {"#TagLine", "#ExamplesLine", "#Comment", "#Empty"}; + var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) + : new UnexpectedTokenException(token, expectedTokens, stateComment); + if (StopAtFirstError) + throw error; + + AddError(context, error); + return 30; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + int MatchTokenAt_31(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -3927,39 +3166,41 @@ int MatchTokenAt_39(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 31; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); + StartRule(context, RuleType.Description); Build(context, token); - return 40; + return 32; } if (Match_TableRow(context, token)) { - EndRule(context, RuleType.Description); StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 41; + return 33; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -3967,12 +3208,11 @@ int MatchTokenAt_39(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -3982,21 +3222,19 @@ int MatchTokenAt_39(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4004,11 +3242,10 @@ int MatchTokenAt_39(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4017,31 +3254,33 @@ int MatchTokenAt_39(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 39; + return 32; } - const string stateComment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 39; + return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_40(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + int MatchTokenAt_32(Token token, ParserContext context) { if (Match_EOF(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4049,35 +3288,38 @@ int MatchTokenAt_40(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Comment(context, token)) { Build(context, token); - return 40; + return 32; } if (Match_TableRow(context, token)) { + EndRule(context, RuleType.Description); StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 41; + return 33; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4085,11 +3327,12 @@ int MatchTokenAt_40(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4099,19 +3342,21 @@ int MatchTokenAt_40(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4119,10 +3364,11 @@ int MatchTokenAt_40(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { + EndRule(context, RuleType.Description); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -4131,28 +3377,28 @@ int MatchTokenAt_40(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { Build(context, token); - return 40; + return 32; } - const string stateComment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) throw error; AddError(context, error); - return 40; + return 32; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - int MatchTokenAt_41(Token token, ParserContext context) + int MatchTokenAt_33(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -4164,12 +3410,12 @@ int MatchTokenAt_41(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_TableRow(context, token)) { Build(context, token); - return 41; + return 33; } if (Match_TagLine(context, token)) { @@ -4181,7 +3427,7 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) @@ -4196,7 +3442,7 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -4211,7 +3457,7 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -4221,7 +3467,7 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { @@ -4233,7 +3479,7 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -4246,20 +3492,20 @@ int MatchTokenAt_41(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 41; + return 33; } if (Match_Empty(context, token)) { Build(context, token); - return 41; + return 33; } - const string stateComment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; + const string stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4268,24 +3514,24 @@ int MatchTokenAt_41(Token token, ParserContext context) throw error; AddError(context, error); - return 41; + return 33; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - int MatchTokenAt_43(Token token, ParserContext context) + int MatchTokenAt_35(Token token, ParserContext context) { if (Match_DocStringSeparator(context, token)) { Build(context, token); - return 44; + return 36; } if (Match_Other(context, token)) { Build(context, token); - return 43; + return 35; } - const string stateComment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + const string stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#DocStringSeparator", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4294,11 +3540,11 @@ int MatchTokenAt_43(Token token, ParserContext context) throw error; AddError(context, error); - return 43; + return 35; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - int MatchTokenAt_44(Token token, ParserContext context) + int MatchTokenAt_36(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -4309,7 +3555,7 @@ int MatchTokenAt_44(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_StepLine(context, token)) { @@ -4317,7 +3563,7 @@ int MatchTokenAt_44(Token token, ParserContext context) EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 35; + return 28; } if (Match_TagLine(context, token)) { @@ -4328,7 +3574,7 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 37; + return 30; } } if (Match_TagLine(context, token)) @@ -4342,7 +3588,7 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -4356,7 +3602,7 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -4365,7 +3611,7 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 38; + return 31; } if (Match_ScenarioLine(context, token)) { @@ -4376,7 +3622,7 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -4388,20 +3634,20 @@ int MatchTokenAt_44(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 44; + return 36; } if (Match_Empty(context, token)) { Build(context, token); - return 44; + return 36; } - const string stateComment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + const string stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4410,24 +3656,24 @@ int MatchTokenAt_44(Token token, ParserContext context) throw error; AddError(context, error); - return 44; + return 36; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - int MatchTokenAt_45(Token token, ParserContext context) + int MatchTokenAt_37(Token token, ParserContext context) { if (Match_DocStringSeparator(context, token)) { Build(context, token); - return 46; + return 38; } if (Match_Other(context, token)) { Build(context, token); - return 45; + return 37; } - const string stateComment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + const string stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#DocStringSeparator", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4436,11 +3682,11 @@ int MatchTokenAt_45(Token token, ParserContext context) throw error; AddError(context, error); - return 45; + return 37; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - int MatchTokenAt_46(Token token, ParserContext context) + int MatchTokenAt_38(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -4450,7 +3696,7 @@ int MatchTokenAt_46(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_StepLine(context, token)) { @@ -4458,7 +3704,7 @@ int MatchTokenAt_46(Token token, ParserContext context) EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 29; + return 23; } if (Match_TagLine(context, token)) { @@ -4470,7 +3716,7 @@ int MatchTokenAt_46(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -4483,7 +3729,7 @@ int MatchTokenAt_46(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -4493,7 +3739,7 @@ int MatchTokenAt_46(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -4504,20 +3750,20 @@ int MatchTokenAt_46(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 46; + return 38; } if (Match_Empty(context, token)) { Build(context, token); - return 46; + return 38; } - const string stateComment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + const string stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4526,24 +3772,24 @@ int MatchTokenAt_46(Token token, ParserContext context) throw error; AddError(context, error); - return 46; + return 38; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - int MatchTokenAt_47(Token token, ParserContext context) + int MatchTokenAt_39(Token token, ParserContext context) { if (Match_DocStringSeparator(context, token)) { Build(context, token); - return 48; + return 40; } if (Match_Other(context, token)) { Build(context, token); - return 47; + return 39; } - const string stateComment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + const string stateComment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#DocStringSeparator", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4552,11 +3798,11 @@ int MatchTokenAt_47(Token token, ParserContext context) throw error; AddError(context, error); - return 47; + return 39; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - int MatchTokenAt_48(Token token, ParserContext context) + int MatchTokenAt_40(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -4566,7 +3812,7 @@ int MatchTokenAt_48(Token token, ParserContext context) EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_StepLine(context, token)) { @@ -4574,7 +3820,7 @@ int MatchTokenAt_48(Token token, ParserContext context) EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 15; + return 12; } if (Match_TagLine(context, token)) { @@ -4585,7 +3831,7 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 17; + return 14; } } if (Match_TagLine(context, token)) @@ -4599,7 +3845,7 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -4612,7 +3858,7 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ExamplesLine(context, token)) { @@ -4621,7 +3867,7 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { @@ -4632,7 +3878,7 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -4643,20 +3889,20 @@ int MatchTokenAt_48(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 48; + return 40; } if (Match_Empty(context, token)) { Build(context, token); - return 48; + return 40; } - const string stateComment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + const string stateComment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4665,24 +3911,24 @@ int MatchTokenAt_48(Token token, ParserContext context) throw error; AddError(context, error); - return 48; + return 40; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - int MatchTokenAt_49(Token token, ParserContext context) + int MatchTokenAt_41(Token token, ParserContext context) { if (Match_DocStringSeparator(context, token)) { Build(context, token); - return 50; + return 42; } if (Match_Other(context, token)) { Build(context, token); - return 49; + return 41; } - const string stateComment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + const string stateComment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#DocStringSeparator", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4691,11 +3937,11 @@ int MatchTokenAt_49(Token token, ParserContext context) throw error; AddError(context, error); - return 49; + return 41; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - int MatchTokenAt_50(Token token, ParserContext context) + int MatchTokenAt_42(Token token, ParserContext context) { if (Match_EOF(context, token)) { @@ -4704,7 +3950,7 @@ int MatchTokenAt_50(Token token, ParserContext context) EndRule(context, RuleType.Background); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_StepLine(context, token)) { @@ -4712,7 +3958,7 @@ int MatchTokenAt_50(Token token, ParserContext context) EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 9; + return 7; } if (Match_TagLine(context, token)) { @@ -4724,7 +3970,7 @@ int MatchTokenAt_50(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 11; + return 9; } } if (Match_TagLine(context, token)) @@ -4736,7 +3982,7 @@ int MatchTokenAt_50(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -4746,7 +3992,7 @@ int MatchTokenAt_50(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 12; + return 10; } if (Match_RuleLine(context, token)) { @@ -4756,20 +4002,20 @@ int MatchTokenAt_50(Token token, ParserContext context) StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 50; + return 42; } if (Match_Empty(context, token)) { Build(context, token); - return 50; + return 42; } - const string stateComment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + const string stateComment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -4778,7 +4024,7 @@ int MatchTokenAt_50(Token token, ParserContext context) throw error; AddError(context, error); - return 50; + return 42; } diff --git a/elixir/lib/gherkin/parser.ex b/elixir/lib/gherkin/parser.ex index bda4a8fed..5e13bb8cb 100644 --- a/elixir/lib/gherkin/parser.ex +++ b/elixir/lib/gherkin/parser.ex @@ -90,7 +90,7 @@ TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Language , line, context) -> TokenMatcher.parse(Language , line, context) |> AstBuilder.start_rule(Feature) |> @@ -198,7 +198,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> @@ -206,16 +206,17 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(3) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(5) + update_next_state(4) TokenMatcher.match?(BackgroundLine , line, context) -> TokenMatcher.parse(BackgroundLine , line, context) |> AstBuilder.end_rule(FeatureHeader) |> AstBuilder.start_rule(Background) |> AstBuilder.build() |> - update_next_state(6) + update_next_state(5) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -225,7 +226,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(FeatureHeader) |> @@ -234,7 +235,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(FeatureHeader) |> @@ -242,7 +243,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(FeatureHeader) |> @@ -250,7 +251,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> @@ -273,13 +274,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(5) + update_next_state(4) TokenMatcher.match?(BackgroundLine , line, context) -> TokenMatcher.parse(BackgroundLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -287,7 +287,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Background) |> AstBuilder.build() |> - update_next_state(6) + update_next_state(5) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -298,7 +298,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -308,7 +308,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -317,7 +317,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -326,14 +326,14 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> update_next_state(4) true -> - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end @@ -341,97 +341,30 @@ TokenMatcher.match?(EOF , line, context) -> defp match_token(%Line{} = line, %ParserContext{state: 5} = context) do cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(5) - TokenMatcher.match?(BackgroundLine , line, context) -> - TokenMatcher.parse(BackgroundLine , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.start_rule(Background) |> - AstBuilder.build() |> - - update_next_state(6) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(11) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(12) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(FeatureHeader) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(5) - true -> - state_comment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 6} = context) do - cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> AstBuilder.end_rule(Background) |> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(6) + update_next_state(5) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(8) + update_next_state(6) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -441,7 +374,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -450,7 +383,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -458,7 +391,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -466,21 +399,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(7) + update_next_state(6) true -> - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" + state_comment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 7} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 6} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -489,20 +422,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(8) + update_next_state(6) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -513,7 +445,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -523,7 +455,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -532,7 +464,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -541,87 +473,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(7) + update_next_state(6) true -> - state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 8} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(8) - TokenMatcher.match?(StepLine , line, context) -> - TokenMatcher.parse(StepLine , line, context) |> - AstBuilder.start_rule(Step) |> - AstBuilder.build() |> - - update_next_state(9) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(11) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(12) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(8) - true -> - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 9} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 7} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -630,26 +495,26 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(DataTable) |> AstBuilder.build() |> - update_next_state(10) + update_next_state(8) TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.start_rule(DocString) |> AstBuilder.build() |> - update_next_state(49) + update_next_state(41) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Step) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -660,7 +525,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -670,7 +535,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -679,7 +544,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -688,25 +553,25 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) true -> - state_comment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 10} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 8} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -716,12 +581,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(10) + update_next_state(8) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -729,7 +594,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -741,7 +606,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -752,7 +617,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -762,7 +627,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -772,56 +637,56 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(10) + update_next_state(8) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(10) + update_next_state(8) true -> - state_comment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 11} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 9} = context) do cond do TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Tags) |> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) true -> - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 12} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 10} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -830,23 +695,24 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(14) + update_next_state(11) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -855,7 +721,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -866,7 +732,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -876,14 +742,14 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.start_rule(ExamplesDefinition) |> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -892,7 +758,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -901,21 +767,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(13) + update_next_state(11) true -> - state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 13} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 11} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -925,20 +791,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(14) + update_next_state(11) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -948,7 +813,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -960,7 +825,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -971,7 +836,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -979,7 +844,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -989,7 +854,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -999,108 +864,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(13) - true -> - state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 14} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(14) - TokenMatcher.match?(StepLine , line, context) -> - TokenMatcher.parse(StepLine , line, context) |> - AstBuilder.start_rule(Step) |> - AstBuilder.build() |> - - update_next_state(15) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(17) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - update_next_state(11) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ExamplesLine , line, context) -> - TokenMatcher.parse(ExamplesLine , line, context) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Examples) |> - AstBuilder.build() |> - - update_next_state(18) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(12) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(14) true -> - state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" + expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 15} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 12} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1110,26 +887,26 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(DataTable) |> AstBuilder.build() |> - update_next_state(16) + update_next_state(13) TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.start_rule(DocString) |> AstBuilder.build() |> - update_next_state(47) + update_next_state(39) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Step) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -1139,7 +916,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1151,7 +928,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -1162,7 +939,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -1170,7 +947,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -1180,7 +957,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -1190,25 +967,25 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) true -> - state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 16} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 13} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1219,12 +996,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(16) + update_next_state(13) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -1232,7 +1009,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -1243,7 +1020,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1256,7 +1033,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -1268,7 +1045,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -1277,7 +1054,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -1288,7 +1065,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -1299,56 +1076,56 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(16) + update_next_state(13) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(16) + update_next_state(13) true -> - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 17} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 14} = context) do cond do TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Tags) |> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) true -> - state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 18} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 15} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1359,23 +1136,24 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(20) + update_next_state(16) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(ExamplesTable) |> AstBuilder.build() |> - update_next_state(21) + update_next_state(17) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -1386,7 +1164,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1399,7 +1177,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -1411,7 +1189,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -1420,7 +1198,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -1431,7 +1209,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -1442,21 +1220,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(19) + update_next_state(16) true -> - state_comment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 19} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 16} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1468,20 +1246,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(20) + update_next_state(16) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(ExamplesTable) |> AstBuilder.build() |> - update_next_state(21) + update_next_state(17) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -1493,7 +1270,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1507,7 +1284,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1520,7 +1297,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1530,7 +1307,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1542,7 +1319,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1554,122 +1331,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(19) + update_next_state(16) true -> - state_comment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 20} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(20) - TokenMatcher.match?(TableRow , line, context) -> - TokenMatcher.parse(TableRow , line, context) |> - AstBuilder.start_rule(ExamplesTable) |> - AstBuilder.build() |> - - update_next_state(21) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(17) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(11) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ExamplesLine , line, context) -> - TokenMatcher.parse(ExamplesLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Examples) |> - AstBuilder.build() |> - - update_next_state(18) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(12) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(20) - true -> - state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 21} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 17} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1681,12 +1356,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(21) + update_next_state(17) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -1698,7 +1373,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1712,7 +1387,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -1725,7 +1400,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -1735,7 +1410,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -1747,7 +1422,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -1759,55 +1434,55 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(21) + update_next_state(17) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(21) + update_next_state(17) true -> - state_comment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 22} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 18} = context) do cond do TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Tags) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) true -> - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" + state_comment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" expected_tokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 23} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 19} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1816,24 +1491,25 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(25) + update_next_state(20) TokenMatcher.match?(BackgroundLine , line, context) -> TokenMatcher.parse(BackgroundLine , line, context) |> AstBuilder.end_rule(RuleHeader) |> AstBuilder.start_rule(Background) |> AstBuilder.build() |> - update_next_state(26) + update_next_state(21) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1843,7 +1519,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(RuleHeader) |> @@ -1853,7 +1529,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(RuleHeader) |> @@ -1861,7 +1537,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(RuleHeader) |> @@ -1870,21 +1546,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(24) + update_next_state(20) true -> - state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" + state_comment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 24} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 20} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -1894,13 +1570,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(25) + update_next_state(20) TokenMatcher.match?(BackgroundLine , line, context) -> TokenMatcher.parse(BackgroundLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1908,7 +1583,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Background) |> AstBuilder.build() |> - update_next_state(26) + update_next_state(21) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -1919,7 +1594,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1930,7 +1605,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1939,7 +1614,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -1949,91 +1624,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(24) + update_next_state(20) true -> - state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 25} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(25) - TokenMatcher.match?(BackgroundLine , line, context) -> - TokenMatcher.parse(BackgroundLine , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.start_rule(Background) |> - AstBuilder.build() |> - - update_next_state(26) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(31) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(32) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(RuleHeader) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(25) - true -> - state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 26} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 21} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2042,23 +1646,24 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(26) + update_next_state(21) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(28) + update_next_state(22) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2068,7 +1673,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -2078,7 +1683,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -2086,7 +1691,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Background) |> @@ -2095,21 +1700,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(27) + update_next_state(22) true -> - state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" + state_comment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 27} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 22} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2119,20 +1724,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(28) + update_next_state(22) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2143,7 +1747,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2154,7 +1758,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2163,7 +1767,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2173,90 +1777,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) - TokenMatcher.match?(Other , line, context) -> - TokenMatcher.parse(Other , line, context) |> - AstBuilder.build() |> - - update_next_state(27) - true -> - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 28} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(28) - TokenMatcher.match?(StepLine , line, context) -> - TokenMatcher.parse(StepLine , line, context) |> - AstBuilder.start_rule(Step) |> - AstBuilder.build() |> - - update_next_state(29) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(31) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(32) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Background) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> + update_next_state(19) + TokenMatcher.match?(Other , line, context) -> + TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(28) + update_next_state(22) true -> - state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" + expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 29} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 23} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2266,26 +1800,26 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(DataTable) |> AstBuilder.build() |> - update_next_state(30) + update_next_state(24) TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.start_rule(DocString) |> AstBuilder.build() |> - update_next_state(45) + update_next_state(37) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Step) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2296,7 +1830,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2307,7 +1841,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2316,7 +1850,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2326,25 +1860,25 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) true -> - state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 30} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 24} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2355,12 +1889,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(30) + update_next_state(24) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2368,7 +1902,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2380,7 +1914,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2392,7 +1926,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2402,7 +1936,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2413,56 +1947,56 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(30) + update_next_state(24) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(30) + update_next_state(24) true -> - state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 31} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 25} = context) do cond do TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Tags) |> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) true -> - state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 32} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 26} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2472,23 +2006,24 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(34) + update_next_state(27) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -2497,7 +2032,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2508,7 +2043,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -2519,14 +2054,14 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.start_rule(ExamplesDefinition) |> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -2535,7 +2070,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Scenario) |> @@ -2545,21 +2080,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(33) + update_next_state(27) true -> - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 33} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 27} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2570,20 +2105,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(34) + update_next_state(27) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -2593,7 +2127,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2605,7 +2139,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2617,7 +2151,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2625,7 +2159,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2635,7 +2169,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -2646,111 +2180,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(33) + update_next_state(27) true -> - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 34} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(34) - TokenMatcher.match?(StepLine , line, context) -> - TokenMatcher.parse(StepLine , line, context) |> - AstBuilder.start_rule(Step) |> - AstBuilder.build() |> - - update_next_state(35) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(37) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(31) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ExamplesLine , line, context) -> - TokenMatcher.parse(ExamplesLine , line, context) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Examples) |> - AstBuilder.build() |> - - update_next_state(38) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - - update_next_state(32) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(34) - true -> - state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 35} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 28} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2761,26 +2204,26 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(DataTable) |> AstBuilder.build() |> - update_next_state(36) + update_next_state(29) TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.start_rule(DocString) |> AstBuilder.build() |> - update_next_state(43) + update_next_state(35) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(Step) |> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -2790,7 +2233,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2802,7 +2245,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2814,7 +2257,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2822,7 +2265,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2832,7 +2275,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Step) |> @@ -2843,25 +2286,25 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) true -> - state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 36} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 29} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -2873,12 +2316,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(36) + update_next_state(29) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2886,7 +2329,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -2897,7 +2340,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -2910,7 +2353,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2923,7 +2366,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2932,7 +2375,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2943,7 +2386,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DataTable) |> @@ -2955,56 +2398,56 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(36) + update_next_state(29) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(36) + update_next_state(29) true -> - state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 37} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 30} = context) do cond do TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Tags) |> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) true -> - state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 38} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 31} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3016,23 +2459,24 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(40) + update_next_state(32) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.start_rule(ExamplesTable) |> AstBuilder.build() |> - update_next_state(41) + update_next_state(33) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -3043,7 +2487,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3056,7 +2500,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -3069,7 +2513,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -3078,7 +2522,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -3089,7 +2533,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Examples) |> @@ -3101,21 +2545,21 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.start_rule(Description) |> AstBuilder.build() |> - update_next_state(39) + update_next_state(32) true -> - state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 39} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 32} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3128,20 +2572,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> - AstBuilder.end_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(40) + update_next_state(32) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.end_rule(Description) |> AstBuilder.start_rule(ExamplesTable) |> AstBuilder.build() |> - update_next_state(41) + update_next_state(33) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -3153,7 +2596,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3167,7 +2610,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -3181,7 +2624,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -3191,7 +2634,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -3203,7 +2646,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(Description) |> @@ -3216,125 +2659,20 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(39) - true -> - state_comment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] - handle_error(context, line, expected_tokens, state_comment) - end - end - - defp match_token(%Line{} = line, %ParserContext{state: 40} = context) do - cond do -TokenMatcher.match?(EOF , line, context) -> - TokenMatcher.parse(EOF , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.end_rule(Feature) |> - AstBuilder.build() |> - - update_next_state(42) - TokenMatcher.match?(Comment , line, context) -> - TokenMatcher.parse(Comment , line, context) |> - AstBuilder.build() |> - - update_next_state(40) - TokenMatcher.match?(TableRow , line, context) -> - TokenMatcher.parse(TableRow , line, context) |> - AstBuilder.start_rule(ExamplesTable) |> - AstBuilder.build() |> - - update_next_state(41) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(37) - - TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> - - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(31) - TokenMatcher.match?(TagLine , line, context) -> - TokenMatcher.parse(TagLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.start_rule(Tags) |> - AstBuilder.build() |> - - update_next_state(22) - TokenMatcher.match?(ExamplesLine , line, context) -> - TokenMatcher.parse(ExamplesLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.start_rule(ExamplesDefinition) |> - AstBuilder.start_rule(Examples) |> - AstBuilder.build() |> - - update_next_state(38) - TokenMatcher.match?(ScenarioLine , line, context) -> - TokenMatcher.parse(ScenarioLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.start_rule(ScenarioDefinition) |> - AstBuilder.start_rule(Scenario) |> - AstBuilder.build() |> - update_next_state(32) - TokenMatcher.match?(RuleLine , line, context) -> - TokenMatcher.parse(RuleLine , line, context) |> - AstBuilder.end_rule(Examples) |> - AstBuilder.end_rule(ExamplesDefinition) |> - AstBuilder.end_rule(Scenario) |> - AstBuilder.end_rule(ScenarioDefinition) |> - AstBuilder.end_rule(Rule) |> - AstBuilder.start_rule(Rule) |> - AstBuilder.start_rule(RuleHeader) |> - AstBuilder.build() |> - - update_next_state(23) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(40) true -> - state_comment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" + expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 41} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 33} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3347,12 +2685,12 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(TableRow , line, context) -> TokenMatcher.parse(TableRow , line, context) |> AstBuilder.build() |> - update_next_state(41) + update_next_state(33) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -3364,7 +2702,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3378,7 +2716,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -3392,7 +2730,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -3402,7 +2740,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -3414,7 +2752,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(ExamplesTable) |> @@ -3427,44 +2765,44 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(41) + update_next_state(33) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(41) + update_next_state(33) true -> - state_comment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 43} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 35} = context) do cond do TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.build() |> - update_next_state(44) + update_next_state(36) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(43) + update_next_state(35) true -> - state_comment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" expected_tokens = ["#DocStringSeparator", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 44} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 36} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3476,7 +2814,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3484,7 +2822,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(35) + update_next_state(28) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -3495,7 +2833,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(37) + update_next_state(30) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3508,7 +2846,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3521,7 +2859,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3530,7 +2868,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(38) + update_next_state(31) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3541,7 +2879,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3553,44 +2891,44 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(44) + update_next_state(36) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(44) + update_next_state(36) true -> - state_comment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 45} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 37} = context) do cond do TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.build() |> - update_next_state(46) + update_next_state(38) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(45) + update_next_state(37) true -> - state_comment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" expected_tokens = ["#DocStringSeparator", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 46} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 38} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3601,7 +2939,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3609,7 +2947,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(29) + update_next_state(23) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3621,7 +2959,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(31) + update_next_state(25) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3633,7 +2971,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3643,7 +2981,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(32) + update_next_state(26) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3654,44 +2992,44 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(46) + update_next_state(38) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(46) + update_next_state(38) true -> - state_comment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 47} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 39} = context) do cond do TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.build() |> - update_next_state(48) + update_next_state(40) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(47) + update_next_state(39) true -> - state_comment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" expected_tokens = ["#DocStringSeparator", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 48} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 40} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3702,7 +3040,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3710,7 +3048,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(15) + update_next_state(12) TokenMatcher.match?(TagLine , line, context) and (lookahead?(1, line, context) |> Map.fetch!(:match?) == true) -> @@ -3721,7 +3059,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(17) + update_next_state(14) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3734,7 +3072,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3746,7 +3084,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ExamplesLine , line, context) -> TokenMatcher.parse(ExamplesLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3755,7 +3093,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Examples) |> AstBuilder.build() |> - update_next_state(18) + update_next_state(15) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3766,7 +3104,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3777,44 +3115,44 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(48) + update_next_state(40) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(48) + update_next_state(40) true -> - state_comment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 49} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 41} = context) do cond do TokenMatcher.match?(DocStringSeparator , line, context) -> TokenMatcher.parse(DocStringSeparator , line, context) |> AstBuilder.build() |> - update_next_state(50) + update_next_state(42) TokenMatcher.match?(Other , line, context) -> TokenMatcher.parse(Other , line, context) |> AstBuilder.build() |> - update_next_state(49) + update_next_state(41) true -> - state_comment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" expected_tokens = ["#DocStringSeparator", "#Other"] handle_error(context, line, expected_tokens, state_comment) end end - defp match_token(%Line{} = line, %ParserContext{state: 50} = context) do + defp match_token(%Line{} = line, %ParserContext{state: 42} = context) do cond do TokenMatcher.match?(EOF , line, context) -> TokenMatcher.parse(EOF , line, context) |> @@ -3824,7 +3162,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.end_rule(Feature) |> AstBuilder.build() |> - update_next_state(42) + update_next_state(34) TokenMatcher.match?(StepLine , line, context) -> TokenMatcher.parse(StepLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3832,7 +3170,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Step) |> AstBuilder.build() |> - update_next_state(9) + update_next_state(7) TokenMatcher.match?(TagLine , line, context) and (lookahead?(0, line, context) |> Map.fetch!(:match?) == true) -> @@ -3844,7 +3182,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(11) + update_next_state(9) TokenMatcher.match?(TagLine , line, context) -> TokenMatcher.parse(TagLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3855,7 +3193,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Tags) |> AstBuilder.build() |> - update_next_state(22) + update_next_state(18) TokenMatcher.match?(ScenarioLine , line, context) -> TokenMatcher.parse(ScenarioLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3865,7 +3203,7 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(Scenario) |> AstBuilder.build() |> - update_next_state(12) + update_next_state(10) TokenMatcher.match?(RuleLine , line, context) -> TokenMatcher.parse(RuleLine , line, context) |> AstBuilder.end_rule(DocString) |> @@ -3875,19 +3213,19 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.start_rule(RuleHeader) |> AstBuilder.build() |> - update_next_state(23) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> - update_next_state(50) + update_next_state(42) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> AstBuilder.build() |> - update_next_state(50) + update_next_state(42) true -> - state_comment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] handle_error(context, line, expected_tokens, state_comment) end diff --git a/gherkin.berp b/gherkin.berp index a1f7ecda3..1b97fce01 100644 --- a/gherkin.berp +++ b/gherkin.berp @@ -32,7 +32,7 @@ DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags! := #TagLine+ -// we need to explicitly mention comment, to avoid merging it into the description line's #Other token -// we also eat the leading empty lines, the tailing lines are not removed by the parser to avoid lookahead, this has to be done by the AST builder -DescriptionHelper := #Empty* Description? #Comment* -Description! := #Other+ +// descriptions should be allowed to be interspersed with comments +// if only comments are encountered, the description text will be empty +DescriptionHelper := #Empty* Description? +Description! := (#Other | #Comment)+ diff --git a/go/parser.go b/go/parser.go index ed6dddba7..c619dc6a6 100644 --- a/go/parser.go +++ b/go/parser.go @@ -393,8 +393,6 @@ func (ctxt *parseContext) match(state int, line *Line) (newState int, err error) return ctxt.matchAt32(line) case 33: return ctxt.matchAt33(line) - case 34: - return ctxt.matchAt34(line) case 35: return ctxt.matchAt35(line) case 36: @@ -409,22 +407,8 @@ func (ctxt *parseContext) match(state int, line *Line) (newState int, err error) return ctxt.matchAt40(line) case 41: return ctxt.matchAt41(line) - case 43: - return ctxt.matchAt43(line) - case 44: - return ctxt.matchAt44(line) - case 45: - return ctxt.matchAt45(line) - case 46: - return ctxt.matchAt46(line) - case 47: - return ctxt.matchAt47(line) - case 48: - return ctxt.matchAt48(line) - case 49: - return ctxt.matchAt49(line) - case 50: - return ctxt.matchAt50(line) + case 42: + return ctxt.matchAt42(line) default: return state, fmt.Errorf("Unknown state: %+v", state) } @@ -434,7 +418,7 @@ func (ctxt *parseContext) match(state int, line *Line) (newState int, err error) func (ctxt *parseContext) matchAt0(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchLanguage(line); ok { ctxt.startRule(RuleTypeFeature) @@ -564,21 +548,22 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeFeatureHeader) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) return 3, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 5, err + return 4, err } if ok, token, err := ctxt.matchBackgroundLine(line); ok { ctxt.endRule(RuleTypeFeatureHeader) ctxt.startRule(RuleTypeBackground) ctxt.build(token) - return 6, err + return 5, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -586,7 +571,7 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -595,21 +580,21 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeFeatureHeader) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeFeatureHeader) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) @@ -635,26 +620,25 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { return 3, err } -// GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 +// GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeFeatureHeader) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 5, err + return 4, err } if ok, token, err := ctxt.matchBackgroundLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeFeatureHeader) ctxt.startRule(RuleTypeBackground) ctxt.build(token) - return 6, err + return 5, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -663,7 +647,7 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -673,7 +657,7 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -681,7 +665,7 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -689,14 +673,14 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) return 4, err } - // var stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -714,98 +698,27 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { return 4, err } -// GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 5, err - } - if ok, token, err := ctxt.matchBackgroundLine(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeBackground) - ctxt.build(token) - return 6, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 11, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 5, err - } - - // var stateComment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 5, err -} - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 -func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 6, err + return 5, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 8, err + return 6, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -813,7 +726,7 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -822,29 +735,29 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 7, err + return 6, err } - // var stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" + // var stateComment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -859,28 +772,27 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 6, err + return 5, err } -// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 8, err + return 6, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -889,7 +801,7 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -899,7 +811,7 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -907,7 +819,7 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -915,14 +827,14 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 7, err + return 6, err } - // var stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -937,104 +849,33 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 7, err -} - -// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt8(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 8, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 9, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 11, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 8, err - } - - // var stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 8, err + return 6, err } // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 10, err + return 8, err } if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.startRule(RuleTypeDocString) ctxt.build(token) - return 49, err + return 41, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -1043,7 +884,7 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1053,7 +894,7 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -1061,7 +902,7 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -1069,18 +910,18 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 9, err + return 7, err } - // var stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" + // var stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" var expectedTokens = []string{"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1095,29 +936,29 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 9, err + return 7, err } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt8(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 10, err + return 8, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -1127,7 +968,7 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1138,7 +979,7 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -1147,7 +988,7 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -1156,18 +997,18 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 10, err + return 8, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 10, err + return 8, err } - // var stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + // var stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1182,31 +1023,31 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 10, err + return 8, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 11, err + return 9, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeTags) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 11, err + return 9, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 11, err + return 9, err } - // var stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + // var stateComment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" var expectedTokens = []string{"#TagLine", "#ScenarioLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1221,37 +1062,38 @@ func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 11, err + return 9, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 -func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 14, err + return 11, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1261,7 +1103,7 @@ func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1271,13 +1113,13 @@ func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeScenario) @@ -1285,7 +1127,7 @@ func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeScenario) @@ -1293,15 +1135,15 @@ func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 13, err + return 11, err } - // var stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + // var stateComment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -1316,29 +1158,28 @@ func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 12, err + return 10, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 14, err + return 11, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -1346,7 +1187,7 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1357,7 +1198,7 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1368,14 +1209,14 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -1384,7 +1225,7 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -1393,14 +1234,14 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 13, err + return 11, err } - // var stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -1415,124 +1256,34 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 13, err -} - -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt14(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 14, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 15, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 17, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 11, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchExamplesLine(line); ok { - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 18, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 14, err - } - - // var stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 14, err + return 11, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt12(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 16, err + return 13, err } if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.startRule(RuleTypeDocString) ctxt.build(token) - return 47, err + return 39, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -1540,7 +1291,7 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1551,7 +1302,7 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1562,14 +1313,14 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -1578,7 +1329,7 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -1587,18 +1338,18 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 15, err + return 12, err } - // var stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + // var stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" var expectedTokens = []string{"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1613,11 +1364,11 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 15, err + return 12, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) @@ -1625,18 +1376,18 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 16, err + return 13, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -1645,7 +1396,7 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1657,7 +1408,7 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1669,7 +1420,7 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -1677,7 +1428,7 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -1687,7 +1438,7 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -1697,18 +1448,18 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 16, err + return 13, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 16, err + return 13, err } - // var stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + // var stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1723,31 +1474,31 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 16, err + return 13, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt17(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt14(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 17, err + return 14, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeTags) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 17, err + return 14, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 17, err + return 14, err } - // var stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + // var stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" var expectedTokens = []string{"#TagLine", "#ExamplesLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -1762,11 +1513,11 @@ func (ctxt *parseContext) matchAt17(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 17, err + return 14, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 -func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) @@ -1774,20 +1525,21 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 20, err + return 16, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeExamplesTable) ctxt.build(token) - return 21, err + return 17, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -1796,7 +1548,7 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1808,7 +1560,7 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1820,7 +1572,7 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -1828,7 +1580,7 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -1838,7 +1590,7 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -1848,15 +1600,15 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 19, err + return 16, err } - // var stateComment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + // var stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -1871,11 +1623,11 @@ func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 18, err + return 15, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) @@ -1884,18 +1636,17 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 20, err + return 16, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeExamplesTable) ctxt.build(token) - return 21, err + return 17, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -1905,7 +1656,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1918,7 +1669,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1931,7 +1682,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -1940,7 +1691,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -1951,7 +1702,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -1962,14 +1713,14 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 19, err + return 16, err } - // var stateComment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -1984,41 +1735,39 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 19, err + return 16, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 +func (ctxt *parseContext) matchAt17(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 20, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.startRule(RuleTypeExamplesTable) ctxt.build(token) - return 21, err + return 17, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -2026,10 +1775,11 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -2038,17 +1788,19 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -2056,9 +1808,10 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { + ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -2066,124 +1819,18 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 20, err - } - - // var stateComment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 20, err -} - -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.build(token) - return 21, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 17, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 11, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchExamplesLine(line); ok { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 18, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeExamplesTable) - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 21, err + return 17, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 21, err + return 17, err } - // var stateComment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + // var stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -2198,30 +1845,30 @@ func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 21, err + return 17, err } // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeTags) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 22, err + return 18, err } - // var stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" + // var stateComment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" var expectedTokens = []string{"#TagLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -2236,31 +1883,32 @@ func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 22, err + return 18, err } // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 -func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeRuleHeader) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 25, err + return 20, err } if ok, token, err := ctxt.matchBackgroundLine(line); ok { ctxt.endRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeBackground) ctxt.build(token) - return 26, err + return 21, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -2268,7 +1916,7 @@ func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2278,14 +1926,14 @@ func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeRuleHeader) @@ -2293,15 +1941,15 @@ func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 24, err + return 20, err } - // var stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" + // var stateComment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -2316,30 +1964,29 @@ func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 23, err + return 19, err } -// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeRuleHeader) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 25, err + return 20, err } if ok, token, err := ctxt.matchBackgroundLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeBackground) ctxt.build(token) - return 26, err + return 21, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -2348,7 +1995,7 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2359,7 +2006,7 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -2367,7 +2014,7 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -2376,14 +2023,14 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 24, err + return 20, err } - // var stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -2398,228 +2045,73 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 24, err -} - -// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt25(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.endRule(RuleTypeRule) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 25, err - } - if ok, token, err := ctxt.matchBackgroundLine(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeBackground) - ctxt.build(token) - return 26, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 31, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 32, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 25, err - } - - // var stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 25, err + return 20, err } // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 -func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 26, err + return 21, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 28, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 29, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 31, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 32, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 27, err - } - - // var stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 26, err -} - -// GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDescription) - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeRule) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) - ctxt.build(token) - return 28, err + return 22, err } if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 27, err + return 22, err } - // var stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // var stateComment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2633,67 +2125,73 @@ func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 27, err + return 21, err } -// GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt28(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 28, err + return 22, err } if ok, token, err := ctxt.matchStepLine(line); ok { + ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } - if ok, token, err := ctxt.matchEmpty(line); ok { + if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 28, err + return 22, err } - // var stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"} + // var stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" + var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2707,34 +2205,34 @@ func (ctxt *parseContext) matchAt28(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 28, err + return 22, err } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 30, err + return 24, err } if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.startRule(RuleTypeDocString) ctxt.build(token) - return 45, err + return 37, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -2743,7 +2241,7 @@ func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2754,7 +2252,7 @@ func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -2762,7 +2260,7 @@ func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -2771,18 +2269,18 @@ func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 29, err + return 23, err } - // var stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" + // var stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" var expectedTokens = []string{"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -2797,11 +2295,11 @@ func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 29, err + return 23, err } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) @@ -2809,18 +2307,18 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 30, err + return 24, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -2830,7 +2328,7 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2842,7 +2340,7 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -2851,7 +2349,7 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -2861,18 +2359,18 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 30, err + return 24, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 30, err + return 24, err } - // var stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + // var stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -2887,31 +2385,31 @@ func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 30, err + return 24, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt25(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 31, err + return 25, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeTags) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 31, err + return 25, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 31, err + return 25, err } - // var stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + // var stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" var expectedTokens = []string{"#TagLine", "#ScenarioLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -2926,38 +2424,39 @@ func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 31, err + return 25, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 -func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 34, err + return 27, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2967,7 +2466,7 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -2978,13 +2477,13 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeScenario) @@ -2992,7 +2491,7 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeScenario) @@ -3001,15 +2500,15 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 33, err + return 27, err } - // var stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + // var stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -3024,11 +2523,11 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 32, err + return 26, err } -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeScenario) @@ -3036,18 +2535,17 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 34, err + return 27, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3055,7 +2553,7 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3066,7 +2564,7 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3078,14 +2576,14 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -3094,7 +2592,7 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -3104,14 +2602,14 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 33, err + return 27, err } - // var stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + // var stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -3126,104 +2624,11 @@ func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 33, err -} - -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt34(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 34, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 35, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 37, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 31, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchExamplesLine(line); ok { - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 38, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 32, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 34, err - } - - // var stateComment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 34, err + return 27, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt28(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) @@ -3231,23 +2636,23 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 36, err + return 29, err } if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.startRule(RuleTypeDocString) ctxt.build(token) - return 43, err + return 35, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3255,7 +2660,7 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3266,7 +2671,7 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3278,14 +2683,14 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -3294,7 +2699,7 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeStep) @@ -3304,18 +2709,18 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 35, err + return 28, err } - // var stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + // var stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" var expectedTokens = []string{"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -3330,11 +2735,11 @@ func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 35, err + return 28, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt29(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) @@ -3343,18 +2748,18 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 36, err + return 29, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3363,7 +2768,7 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3375,7 +2780,7 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3388,7 +2793,7 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -3396,7 +2801,7 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -3406,7 +2811,7 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDataTable) @@ -3417,18 +2822,18 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 36, err + return 29, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 36, err + return 29, err } - // var stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + // var stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -3443,31 +2848,31 @@ func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 36, err + return 29, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt37(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 37, err + return 30, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeTags) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 37, err + return 30, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 37, err + return 30, err } - // var stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + // var stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" var expectedTokens = []string{"#TagLine", "#ExamplesLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -3482,11 +2887,11 @@ func (ctxt *parseContext) matchAt37(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 37, err + return 30, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 -func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) @@ -3495,20 +2900,21 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 40, err + return 32, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.startRule(RuleTypeExamplesTable) ctxt.build(token) - return 41, err + return 33, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3517,7 +2923,7 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3529,7 +2935,7 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3542,7 +2948,7 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -3550,7 +2956,7 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -3560,7 +2966,7 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeExamples) @@ -3571,15 +2977,15 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 39, err + return 32, err } - // var stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + // var stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -3594,11 +3000,11 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 38, err + return 31, err } -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 -func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) @@ -3608,18 +3014,17 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.build(token) - return 40, err + return 32, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.endRule(RuleTypeDescription) ctxt.startRule(RuleTypeExamplesTable) ctxt.build(token) - return 41, err + return 33, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3629,7 +3034,7 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3642,7 +3047,7 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3656,7 +3061,7 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -3665,7 +3070,7 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -3676,7 +3081,7 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDescription) @@ -3688,122 +3093,15 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchOther(line); ok { - ctxt.build(token) - return 39, err - } - - // var stateComment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" - var expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} - if line.IsEof() { - err = &parseError{ - msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), - loc: &Location{Line: line.LineNumber, Column: 0}, - } - } else { - err = &parseError{ - msg: fmt.Sprintf("expected: %s, got '%s'", strings.Join(expectedTokens, ", "), line.LineText), - loc: &Location{Line: line.LineNumber, Column: line.Indent() + 1}, - } - } - // if (ctxt.p.stopAtFirstError) throw error; - //ctxt.addError(err) - return 39, err -} - -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt40(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 40, err - } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.startRule(RuleTypeExamplesTable) - ctxt.build(token) - return 41, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 37, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 31, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchExamplesLine(line); ok { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 38, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeScenario) ctxt.build(token) return 32, err } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 40, err - } - // var stateComment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - var expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"} + // var stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" + var expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -3817,11 +3115,11 @@ func (ctxt *parseContext) matchAt40(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 40, err + return 32, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 -func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt33(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeExamplesTable) ctxt.endRule(RuleTypeExamples) @@ -3831,11 +3129,11 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 41, err + return 33, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3845,7 +3143,7 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3858,7 +3156,7 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -3872,7 +3170,7 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeExamplesTable) @@ -3881,7 +3179,7 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeExamplesTable) @@ -3892,7 +3190,7 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeExamplesTable) @@ -3904,18 +3202,18 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 41, err + return 33, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 41, err + return 33, err } - // var stateComment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + // var stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" var expectedTokens = []string{"#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -3930,21 +3228,21 @@ func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 41, err + return 33, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt43(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt35(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.build(token) - return 44, err + return 36, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 43, err + return 35, err } - // var stateComment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + // var stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" var expectedTokens = []string{"#DocStringSeparator", "#Other"} if line.IsEof() { err = &parseError{ @@ -3959,11 +3257,11 @@ func (ctxt *parseContext) matchAt43(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 43, err + return 35, err } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt36(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) @@ -3972,14 +3270,14 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 35, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -3988,7 +3286,7 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4000,7 +3298,7 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4013,7 +3311,7 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4021,7 +3319,7 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 38, err + return 31, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4031,7 +3329,7 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4042,18 +3340,18 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 44, err + return 36, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 44, err + return 36, err } - // var stateComment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + // var stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" var expectedTokens = []string{"#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -4068,21 +3366,21 @@ func (ctxt *parseContext) matchAt44(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 44, err + return 36, err } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt45(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt37(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.build(token) - return 46, err + return 38, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 45, err + return 37, err } - // var stateComment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + // var stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" var expectedTokens = []string{"#DocStringSeparator", "#Other"} if line.IsEof() { err = &parseError{ @@ -4097,11 +3395,11 @@ func (ctxt *parseContext) matchAt45(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 45, err + return 37, err } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) @@ -4109,14 +3407,14 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 29, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -4126,7 +3424,7 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 31, err + return 25, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4138,7 +3436,7 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4147,7 +3445,7 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 32, err + return 26, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4157,18 +3455,18 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 46, err + return 38, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 46, err + return 38, err } - // var stateComment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + // var stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" var expectedTokens = []string{"#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -4183,21 +3481,21 @@ func (ctxt *parseContext) matchAt46(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 46, err + return 38, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt47(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.build(token) - return 48, err + return 40, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 47, err + return 39, err } - // var stateComment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + // var stateComment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" var expectedTokens = []string{"#DocStringSeparator", "#Other"} if line.IsEof() { err = &parseError{ @@ -4212,11 +3510,11 @@ func (ctxt *parseContext) matchAt47(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 47, err + return 39, err } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt40(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) @@ -4224,14 +3522,14 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 15, err + return 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { @@ -4240,7 +3538,7 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 17, err + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4252,7 +3550,7 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4264,7 +3562,7 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchExamplesLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4272,7 +3570,7 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 18, err + return 15, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4282,7 +3580,7 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4292,18 +3590,18 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 48, err + return 40, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 48, err + return 40, err } - // var stateComment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + // var stateComment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" var expectedTokens = []string{"#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -4318,21 +3616,21 @@ func (ctxt *parseContext) matchAt48(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 48, err + return 40, err } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt49(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt41(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchDocStringSeparator(line); ok { ctxt.build(token) - return 50, err + return 42, err } if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 49, err + return 41, err } - // var stateComment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + // var stateComment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" var expectedTokens = []string{"#DocStringSeparator", "#Other"} if line.IsEof() { err = &parseError{ @@ -4347,25 +3645,25 @@ func (ctxt *parseContext) matchAt49(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 49, err + return 41, err } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { +func (ctxt *parseContext) matchAt42(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } if ok, token, err := ctxt.matchStepLine(line); ok { ctxt.endRule(RuleTypeDocString) ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 9, err + return 7, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { @@ -4375,7 +3673,7 @@ func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err + return 9, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -4386,7 +3684,7 @@ func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRuleHeader) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 18, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4395,7 +3693,7 @@ func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { ctxt.endRule(RuleTypeDocString) @@ -4404,18 +3702,18 @@ func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) ctxt.build(token) - return 23, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 50, err + return 42, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 50, err + return 42, err } - // var stateComment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + // var stateComment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" var expectedTokens = []string{"#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} if line.IsEof() { err = &parseError{ @@ -4430,7 +3728,7 @@ func (ctxt *parseContext) matchAt50(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 50, err + return 42, err } type Matcher interface { diff --git a/java/src/main/java/io/cucumber/gherkin/Parser.java b/java/src/main/java/io/cucumber/gherkin/Parser.java index b87e58824..a4f2153df 100644 --- a/java/src/main/java/io/cucumber/gherkin/Parser.java +++ b/java/src/main/java/io/cucumber/gherkin/Parser.java @@ -68,8 +68,8 @@ enum RuleType { DataTable, // DataTable! := #TableRow+ DocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags, // Tags! := #TagLine+ - DescriptionHelper, // DescriptionHelper := #Empty* Description? #Comment* - Description, // Description! := #Other+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ ; static RuleType cast(TokenType tokenType) { @@ -422,9 +422,6 @@ private int matchToken(int state, Token token, ParserContext context) { case 33: newState = matchTokenAt_33(token, context); break; - case 34: - newState = matchTokenAt_34(token, context); - break; case 35: newState = matchTokenAt_35(token, context); break; @@ -446,29 +443,8 @@ private int matchToken(int state, Token token, ParserContext context) { case 41: newState = matchTokenAt_41(token, context); break; - case 43: - newState = matchTokenAt_43(token, context); - break; - case 44: - newState = matchTokenAt_44(token, context); - break; - case 45: - newState = matchTokenAt_45(token, context); - break; - case 46: - newState = matchTokenAt_46(token, context); - break; - case 47: - newState = matchTokenAt_47(token, context); - break; - case 48: - newState = matchTokenAt_48(token, context); - break; - case 49: - newState = matchTokenAt_49(token, context); - break; - case 50: - newState = matchTokenAt_50(token, context); + case 42: + newState = matchTokenAt_42(token, context); break; default: throw new IllegalStateException("Unknown state: " + state); @@ -482,7 +458,7 @@ private int matchTokenAt_0(Token token, ParserContext context) { if (match_EOF(context, token)) { build(context, token); - return 42; + return 34; } if (match_Language(context, token)) { @@ -605,7 +581,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { endRule(context, RuleType.FeatureHeader); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { @@ -614,15 +590,16 @@ private int matchTokenAt_3(Token token, ParserContext context) { } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 5; + return 4; } if (match_BackgroundLine(context, token)) { endRule(context, RuleType.FeatureHeader); startRule(context, RuleType.Background); build(context, token); - return 6; + return 5; } if (match_TagLine(context, token)) { @@ -632,7 +609,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -642,7 +619,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -650,7 +627,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -658,7 +635,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { @@ -678,7 +655,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 private int matchTokenAt_4(Token token, ParserContext context) { if (match_EOF(context, token)) { @@ -686,13 +663,12 @@ private int matchTokenAt_4(Token token, ParserContext context) { endRule(context, RuleType.FeatureHeader); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 5; + return 4; } if (match_BackgroundLine(context, token)) { @@ -700,7 +676,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { endRule(context, RuleType.FeatureHeader); startRule(context, RuleType.Background); build(context, token); - return 6; + return 5; } if (match_TagLine(context, token)) { @@ -711,7 +687,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -722,7 +698,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -731,7 +707,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -740,7 +716,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { @@ -748,7 +724,7 @@ private int matchTokenAt_4(Token token, ParserContext context) { return 4; } - final String stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -759,104 +735,31 @@ private int matchTokenAt_4(Token token, ParserContext context) { return 4; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_5(Token token, ParserContext context) { - if (match_EOF(context, token)) - { - endRule(context, RuleType.FeatureHeader); - endRule(context, RuleType.Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) - { - build(context, token); - return 5; - } - if (match_BackgroundLine(context, token)) - { - endRule(context, RuleType.FeatureHeader); - startRule(context, RuleType.Background); - build(context, token); - return 6; - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.FeatureHeader); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.FeatureHeader); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.FeatureHeader); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.FeatureHeader); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); - return 23; - } - if (match_Empty(context, token)) - { - build(context, token); - return 5; - } - - final String stateComment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 5; - } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 - private int matchTokenAt_6(Token token, ParserContext context) { + private int matchTokenAt_5(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Background); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 6; + return 5; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 8; + return 6; } if (match_StepLine(context, token)) { startRule(context, RuleType.Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { @@ -866,7 +769,7 @@ private int matchTokenAt_6(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -876,7 +779,7 @@ private int matchTokenAt_6(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -884,7 +787,7 @@ private int matchTokenAt_6(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -892,16 +795,16 @@ private int matchTokenAt_6(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { startRule(context, RuleType.Description); build(context, token); - return 7; + return 6; } - final String stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; + final String stateComment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -909,31 +812,30 @@ private int matchTokenAt_6(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 6; + return 5; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_7(Token token, ParserContext context) { + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_6(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); endRule(context, RuleType.Background); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 8; + return 6; } if (match_StepLine(context, token)) { endRule(context, RuleType.Description); startRule(context, RuleType.Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { @@ -944,7 +846,7 @@ private int matchTokenAt_7(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -955,7 +857,7 @@ private int matchTokenAt_7(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -964,7 +866,7 @@ private int matchTokenAt_7(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -973,15 +875,15 @@ private int matchTokenAt_7(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 7; + return 6; } - final String stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -989,289 +891,216 @@ private int matchTokenAt_7(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 7; + return 6; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_8(Token token, ParserContext context) { + // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 + private int matchTokenAt_7(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Background); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } - if (match_Comment(context, token)) + if (match_TableRow(context, token)) { + startRule(context, RuleType.DataTable); build(context, token); return 8; } + if (match_DocStringSeparator(context, token)) + { + startRule(context, RuleType.DocString); + build(context, token); + return 41; + } if (match_StepLine(context, token)) { + endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; + } + if (match_Comment(context, token)) + { + build(context, token); + return 7; } if (match_Empty(context, token)) { build(context, token); - return 8; + return 7; } - final String stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 8; + return 7; } - // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 - private int matchTokenAt_9(Token token, ParserContext context) { + // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + private int matchTokenAt_8(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Background); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { - startRule(context, RuleType.DataTable); - build(context, token); - return 10; - } - if (match_DocStringSeparator(context, token)) - { - startRule(context, RuleType.DocString); build(context, token); - return 49; + return 8; } if (match_StepLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 9; + return 8; } if (match_Empty(context, token)) { build(context, token); - return 9; + return 8; } - final String stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; + final String stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 9; + return 8; } - // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private int matchTokenAt_10(Token token, ParserContext context) { - if (match_EOF(context, token)) + // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + private int matchTokenAt_9(Token token, ParserContext context) { + if (match_TagLine(context, token)) { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - endRule(context, RuleType.Feature); build(context, token); - return 42; + return 9; } - if (match_TableRow(context, token)) + if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.Tags); + startRule(context, RuleType.Scenario); build(context, token); return 10; } - if (match_StepLine(context, token)) + if (match_Comment(context, token)) { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - startRule(context, RuleType.Step); build(context, token); return 9; } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 10; - } - if (match_Empty(context, token)) - { - build(context, token); - return 10; - } - - final String stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 10; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private int matchTokenAt_11(Token token, ParserContext context) { - if (match_TagLine(context, token)) - { - build(context, token); - return 11; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.Tags); - startRule(context, RuleType.Scenario); - build(context, token); - return 12; - } - if (match_Comment(context, token)) - { - build(context, token); - return 11; - } - if (match_Empty(context, token)) + if (match_Empty(context, token)) { build(context, token); - return 11; + return 9; } - final String stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; + final String stateComment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; token.detach(); List expectedTokens = asList("#TagLine", "#ScenarioLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -1279,34 +1108,35 @@ private int matchTokenAt_11(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 11; + return 9; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private int matchTokenAt_12(Token token, ParserContext context) { + private int matchTokenAt_10(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 12; + return 10; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 14; + return 11; } if (match_StepLine(context, token)) { startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { @@ -1315,7 +1145,7 @@ private int matchTokenAt_12(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) @@ -1327,7 +1157,7 @@ private int matchTokenAt_12(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -1338,14 +1168,14 @@ private int matchTokenAt_12(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { @@ -1354,7 +1184,7 @@ private int matchTokenAt_12(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -1363,16 +1193,16 @@ private int matchTokenAt_12(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { startRule(context, RuleType.Description); build(context, token); - return 13; + return 11; } - final String stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; + final String stateComment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -1380,11 +1210,11 @@ private int matchTokenAt_12(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 12; + return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_13(Token token, ParserContext context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_11(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -1392,20 +1222,19 @@ private int matchTokenAt_13(Token token, ParserContext context) { endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 14; + return 11; } if (match_StepLine(context, token)) { endRule(context, RuleType.Description); startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { @@ -1415,7 +1244,7 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) @@ -1428,7 +1257,7 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -1440,7 +1269,7 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -1448,7 +1277,7 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { @@ -1458,7 +1287,7 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -1468,15 +1297,15 @@ private int matchTokenAt_13(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 13; + return 11; } - final String stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -1484,160 +1313,178 @@ private int matchTokenAt_13(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 13; + return 11; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_14(Token token, ParserContext context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + private int matchTokenAt_12(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } - if (match_Comment(context, token)) + if (match_TableRow(context, token)) { + startRule(context, RuleType.DataTable); build(context, token); - return 14; + return 13; + } + if (match_DocStringSeparator(context, token)) + { + startRule(context, RuleType.DocString); + build(context, token); + return 39; } if (match_StepLine(context, token)) { + endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { + endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { + endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; + } + if (match_Comment(context, token)) + { + build(context, token); + return 12; } if (match_Empty(context, token)) { build(context, token); - return 14; + return 12; } - final String stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 14; + return 12; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private int matchTokenAt_15(Token token, ParserContext context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + private int matchTokenAt_13(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { - startRule(context, RuleType.DataTable); - build(context, token); - return 16; - } - if (match_DocStringSeparator(context, token)) - { - startRule(context, RuleType.DocString); build(context, token); - return 47; + return 13; } if (match_StepLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); @@ -1645,200 +1492,87 @@ private int matchTokenAt_15(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 15; + return 13; } if (match_Empty(context, token)) { build(context, token); - return 15; + return 13; } - final String stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; + final String stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 15; + return 13; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private int matchTokenAt_16(Token token, ParserContext context) { - if (match_EOF(context, token)) + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + private int matchTokenAt_14(Token token, ParserContext context) { + if (match_TagLine(context, token)) { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Feature); build(context, token); - return 42; + return 14; } - if (match_TableRow(context, token)) + if (match_ExamplesLine(context, token)) { + endRule(context, RuleType.Tags); + startRule(context, RuleType.Examples); build(context, token); - return 16; + return 15; } - if (match_StepLine(context, token)) + if (match_Comment(context, token)) { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - startRule(context, RuleType.Step); build(context, token); - return 15; - } - if (match_TagLine(context, token)) - { - if (lookahead_1(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 17; - } - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Examples); - build(context, token); - return 18; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.DataTable); - endRule(context, RuleType.Step); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 16; - } - if (match_Empty(context, token)) - { - build(context, token); - return 16; - } - - final String stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 16; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private int matchTokenAt_17(Token token, ParserContext context) { - if (match_TagLine(context, token)) - { - build(context, token); - return 17; - } - if (match_ExamplesLine(context, token)) - { - endRule(context, RuleType.Tags); - startRule(context, RuleType.Examples); - build(context, token); - return 18; - } - if (match_Comment(context, token)) - { - build(context, token); - return 17; + return 14; } if (match_Empty(context, token)) { build(context, token); - return 17; + return 14; } - final String stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + final String stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; token.detach(); List expectedTokens = asList("#TagLine", "#ExamplesLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -1846,11 +1580,11 @@ private int matchTokenAt_17(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 17; + return 14; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private int matchTokenAt_18(Token token, ParserContext context) { + private int matchTokenAt_15(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Examples); @@ -1859,23 +1593,24 @@ private int matchTokenAt_18(Token token, ParserContext context) { endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 18; + return 15; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 20; + return 16; } if (match_TableRow(context, token)) { startRule(context, RuleType.ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { @@ -1886,7 +1621,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) @@ -1900,7 +1635,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -1913,7 +1648,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -1922,7 +1657,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { @@ -1933,7 +1668,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -1944,16 +1679,16 @@ private int matchTokenAt_18(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { startRule(context, RuleType.Description); build(context, token); - return 19; + return 16; } - final String stateComment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + final String stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -1961,11 +1696,11 @@ private int matchTokenAt_18(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 18; + return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_19(Token token, ParserContext context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_16(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -1975,20 +1710,19 @@ private int matchTokenAt_19(Token token, ParserContext context) { endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 20; + return 16; } if (match_TableRow(context, token)) { endRule(context, RuleType.Description); startRule(context, RuleType.ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { @@ -2000,7 +1734,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) @@ -2015,7 +1749,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -2029,7 +1763,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -2039,7 +1773,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { @@ -2051,7 +1785,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -2063,15 +1797,15 @@ private int matchTokenAt_19(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 19; + return 16; } - final String stateComment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -2079,48 +1813,45 @@ private int matchTokenAt_19(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 19; + return 16; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_20(Token token, ParserContext context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + private int matchTokenAt_17(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; - } - if (match_Comment(context, token)) - { - build(context, token); - return 20; + return 34; } if (match_TableRow(context, token)) { - startRule(context, RuleType.ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -2128,11 +1859,12 @@ private int matchTokenAt_20(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -2141,19 +1873,21 @@ private int matchTokenAt_20(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -2161,10 +1895,11 @@ private int matchTokenAt_20(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.ExamplesTable); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -2172,165 +1907,55 @@ private int matchTokenAt_20(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; + } + if (match_Comment(context, token)) + { + build(context, token); + return 17; } if (match_Empty(context, token)) { build(context, token); - return 20; + return 17; } - final String stateComment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 20; + return 17; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private int matchTokenAt_21(Token token, ParserContext context) { - if (match_EOF(context, token)) + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 + private int matchTokenAt_18(Token token, ParserContext context) { + if (match_TagLine(context, token)) { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Feature); build(context, token); - return 42; + return 18; } - if (match_TableRow(context, token)) + if (match_RuleLine(context, token)) { + endRule(context, RuleType.Tags); build(context, token); - return 21; + return 19; } - if (match_TagLine(context, token)) + if (match_Comment(context, token)) { - if (lookahead_1(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Tags); build(context, token); - return 17; - } + return 18; } - if (match_TagLine(context, token)) + if (match_Empty(context, token)) { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); build(context, token); - return 11; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Examples); - build(context, token); - return 18; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 12; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.ExamplesTable); - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 21; - } - if (match_Empty(context, token)) - { - build(context, token); - return 21; - } - - final String stateComment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 21; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - private int matchTokenAt_22(Token token, ParserContext context) { - if (match_TagLine(context, token)) - { - build(context, token); - return 22; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.Tags); - build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 22; - } - if (match_Empty(context, token)) - { - build(context, token); - return 22; + return 18; } - final String stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; + final String stateComment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; token.detach(); List expectedTokens = asList("#TagLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -2338,35 +1963,36 @@ private int matchTokenAt_22(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 22; + return 18; } // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - private int matchTokenAt_23(Token token, ParserContext context) { + private int matchTokenAt_19(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.RuleHeader); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 25; + return 20; } if (match_BackgroundLine(context, token)) { endRule(context, RuleType.RuleHeader); startRule(context, RuleType.Background); build(context, token); - return 26; + return 21; } if (match_TagLine(context, token)) { @@ -2376,7 +2002,7 @@ private int matchTokenAt_23(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -2387,7 +2013,7 @@ private int matchTokenAt_23(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -2395,7 +2021,7 @@ private int matchTokenAt_23(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -2404,16 +2030,16 @@ private int matchTokenAt_23(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { startRule(context, RuleType.Description); build(context, token); - return 24; + return 20; } - final String stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; + final String stateComment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -2421,11 +2047,11 @@ private int matchTokenAt_23(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 23; + return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_24(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_20(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -2433,13 +2059,12 @@ private int matchTokenAt_24(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 25; + return 20; } if (match_BackgroundLine(context, token)) { @@ -2447,7 +2072,7 @@ private int matchTokenAt_24(Token token, ParserContext context) { endRule(context, RuleType.RuleHeader); startRule(context, RuleType.Background); build(context, token); - return 26; + return 21; } if (match_TagLine(context, token)) { @@ -2458,7 +2083,7 @@ private int matchTokenAt_24(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -2470,7 +2095,7 @@ private int matchTokenAt_24(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -2479,7 +2104,7 @@ private int matchTokenAt_24(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -2489,15 +2114,15 @@ private int matchTokenAt_24(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { build(context, token); - return 24; + return 20; } - final String stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -2505,411 +2130,258 @@ private int matchTokenAt_24(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 24; + return 20; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_25(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 + private int matchTokenAt_21(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.RuleHeader); + endRule(context, RuleType.Background); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; + } + if (match_Empty(context, token)) + { + build(context, token); + return 21; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 25; + return 22; } - if (match_BackgroundLine(context, token)) + if (match_StepLine(context, token)) { - endRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Background); + startRule(context, RuleType.Step); build(context, token); - return 26; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.RuleHeader); + endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.RuleHeader); + endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.RuleHeader); + endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.RuleHeader); + endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Empty(context, token)) + if (match_Other(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 25; + return 22; } - final String stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 25; + return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - private int matchTokenAt_26(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_22(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; - } - if (match_Empty(context, token)) - { - build(context, token); - return 26; + return 34; } if (match_Comment(context, token)) { build(context, token); - return 28; + return 22; } if (match_StepLine(context, token)) { + endRule(context, RuleType.Description); startRule(context, RuleType.Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 27; + return 22; } - final String stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; + final String stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 26; + return 22; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_27(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 + private int matchTokenAt_23(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } - if (match_Comment(context, token)) + if (match_TableRow(context, token)) { - endRule(context, RuleType.Description); + startRule(context, RuleType.DataTable); build(context, token); - return 28; + return 24; + } + if (match_DocStringSeparator(context, token)) + { + startRule(context, RuleType.DocString); + build(context, token); + return 37; } if (match_StepLine(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); endRule(context, RuleType.Background); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.Description); + endRule(context, RuleType.Step); endRule(context, RuleType.Background); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; - } - if (match_Other(context, token)) - { - build(context, token); - return 27; - } - - final String stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 27; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_28(Token token, ParserContext context) { - if (match_EOF(context, token)) - { - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - endRule(context, RuleType.Feature); - build(context, token); - return 42; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 28; - } - if (match_StepLine(context, token)) - { - startRule(context, RuleType.Step); - build(context, token); - return 29; - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); return 23; } if (match_Empty(context, token)) { build(context, token); - return 28; - } - - final String stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 28; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - private int matchTokenAt_29(Token token, ParserContext context) { - if (match_EOF(context, token)) - { - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - endRule(context, RuleType.Feature); - build(context, token); - return 42; - } - if (match_TableRow(context, token)) - { - startRule(context, RuleType.DataTable); - build(context, token); - return 30; - } - if (match_DocStringSeparator(context, token)) - { - startRule(context, RuleType.DocString); - build(context, token); - return 45; - } - if (match_StepLine(context, token)) - { - endRule(context, RuleType.Step); - startRule(context, RuleType.Step); - build(context, token); - return 29; - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.Step); - endRule(context, RuleType.Background); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); return 23; } - if (match_Comment(context, token)) - { - build(context, token); - return 29; - } - if (match_Empty(context, token)) - { - build(context, token); - return 29; - } - final String stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; + final String stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; token.detach(); List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -2917,11 +2389,11 @@ private int matchTokenAt_29(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 29; + return 23; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private int matchTokenAt_30(Token token, ParserContext context) { + private int matchTokenAt_24(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.DataTable); @@ -2930,12 +2402,12 @@ private int matchTokenAt_30(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 30; + return 24; } if (match_StepLine(context, token)) { @@ -2943,7 +2415,7 @@ private int matchTokenAt_30(Token token, ParserContext context) { endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { @@ -2955,7 +2427,7 @@ private int matchTokenAt_30(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -2968,7 +2440,7 @@ private int matchTokenAt_30(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -2978,7 +2450,7 @@ private int matchTokenAt_30(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -2989,279 +2461,68 @@ private int matchTokenAt_30(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 30; + return 24; } if (match_Empty(context, token)) { build(context, token); - return 30; + return 24; } - final String stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + final String stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.detach(); List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 30; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private int matchTokenAt_31(Token token, ParserContext context) { - if (match_TagLine(context, token)) - { - build(context, token); - return 31; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.Tags); - startRule(context, RuleType.Scenario); - build(context, token); - return 32; - } - if (match_Comment(context, token)) - { - build(context, token); - return 31; - } - if (match_Empty(context, token)) - { - build(context, token); - return 31; - } - - final String stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; - token.detach(); - List expectedTokens = asList("#TagLine", "#ScenarioLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 31; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private int matchTokenAt_32(Token token, ParserContext context) { - if (match_EOF(context, token)) - { - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - endRule(context, RuleType.Feature); - build(context, token); - return 42; - } - if (match_Empty(context, token)) - { - build(context, token); - return 32; - } - if (match_Comment(context, token)) - { - build(context, token); - return 34; - } - if (match_StepLine(context, token)) - { - startRule(context, RuleType.Step); - build(context, token); - return 35; - } - if (match_TagLine(context, token)) - { - if (lookahead_1(context, token)) - { - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) - { - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Examples); - build(context, token); - return 38; - } - if (match_ScenarioLine(context, token)) - { - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Scenario); - build(context, token); - return 32; - } - if (match_RuleLine(context, token)) - { - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - build(context, token); - return 23; - } - if (match_Other(context, token)) - { - startRule(context, RuleType.Description); - build(context, token); - return 33; - } - - final String stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 32; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_33(Token token, ParserContext context) { - if (match_EOF(context, token)) - { - endRule(context, RuleType.Description); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - endRule(context, RuleType.Feature); - build(context, token); - return 42; - } - if (match_Comment(context, token)) - { - endRule(context, RuleType.Description); - build(context, token); - return 34; - } - if (match_StepLine(context, token)) - { - endRule(context, RuleType.Description); - startRule(context, RuleType.Step); - build(context, token); - return 35; - } - if (match_TagLine(context, token)) - { - if (lookahead_1(context, token)) - { - endRule(context, RuleType.Description); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) - { - if (lookahead_0(context, token)) - { - endRule(context, RuleType.Description); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.Tags); - build(context, token); - return 31; - } - } - if (match_TagLine(context, token)) - { - endRule(context, RuleType.Description); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); - startRule(context, RuleType.Tags); - build(context, token); - return 22; - } - if (match_ExamplesLine(context, token)) + ParserException error = token.isEOF() + ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) + : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); + + addError(context, error); + return 24; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + private int matchTokenAt_25(Token token, ParserContext context) { + if (match_TagLine(context, token)) { - endRule(context, RuleType.Description); - startRule(context, RuleType.ExamplesDefinition); - startRule(context, RuleType.Examples); build(context, token); - return 38; + return 25; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.Description); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - startRule(context, RuleType.ScenarioDefinition); + endRule(context, RuleType.Tags); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } - if (match_RuleLine(context, token)) + if (match_Comment(context, token)) { - endRule(context, RuleType.Description); - endRule(context, RuleType.Scenario); - endRule(context, RuleType.ScenarioDefinition); - endRule(context, RuleType.Rule); - startRule(context, RuleType.Rule); - startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 25; } - if (match_Other(context, token)) + if (match_Empty(context, token)) { build(context, token); - return 33; + return 25; } - final String stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#TagLine", "#ScenarioLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 33; + return 25; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_34(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + private int matchTokenAt_26(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Scenario); @@ -3269,18 +2530,24 @@ private int matchTokenAt_34(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; + } + if (match_Empty(context, token)) + { + build(context, token); + return 26; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 34; + return 27; } if (match_StepLine(context, token)) { startRule(context, RuleType.Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { @@ -3289,7 +2556,7 @@ private int matchTokenAt_34(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) @@ -3301,7 +2568,7 @@ private int matchTokenAt_34(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -3313,14 +2580,14 @@ private int matchTokenAt_34(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { @@ -3329,7 +2596,7 @@ private int matchTokenAt_34(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -3339,83 +2606,77 @@ private int matchTokenAt_34(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Empty(context, token)) + if (match_Other(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 34; + return 27; } - final String stateComment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 34; + return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private int matchTokenAt_35(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_27(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; - } - if (match_TableRow(context, token)) - { - startRule(context, RuleType.DataTable); - build(context, token); - return 36; + return 34; } - if (match_DocStringSeparator(context, token)) + if (match_Comment(context, token)) { - startRule(context, RuleType.DocString); build(context, token); - return 43; + return 27; } if (match_StepLine(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); startRule(context, RuleType.Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); @@ -3423,114 +2684,111 @@ private int matchTokenAt_35(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.Step); + endRule(context, RuleType.Description); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 35; + return 19; } - if (match_Empty(context, token)) + if (match_Other(context, token)) { build(context, token); - return 35; + return 27; } - final String stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; + final String stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); + List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 35; + return 27; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private int matchTokenAt_36(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + private int matchTokenAt_28(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { + startRule(context, RuleType.DataTable); build(context, token); - return 36; + return 29; + } + if (match_DocStringSeparator(context, token)) + { + startRule(context, RuleType.DocString); + build(context, token); + return 35; } if (match_StepLine(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); @@ -3539,31 +2797,28 @@ private int matchTokenAt_36(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.DataTable); endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); @@ -3571,125 +2826,86 @@ private int matchTokenAt_36(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; - } - if (match_Comment(context, token)) - { - build(context, token); - return 36; - } - if (match_Empty(context, token)) - { - build(context, token); - return 36; - } - - final String stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; - token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); - ParserException error = token.isEOF() - ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) - : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); - - addError(context, error); - return 36; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private int matchTokenAt_37(Token token, ParserContext context) { - if (match_TagLine(context, token)) - { - build(context, token); - return 37; - } - if (match_ExamplesLine(context, token)) - { - endRule(context, RuleType.Tags); - startRule(context, RuleType.Examples); - build(context, token); - return 38; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 37; + return 28; } if (match_Empty(context, token)) { build(context, token); - return 37; + return 28; } - final String stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + final String stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; token.detach(); - List expectedTokens = asList("#TagLine", "#ExamplesLine", "#Comment", "#Empty"); + List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 37; + return 28; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private int matchTokenAt_38(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + private int matchTokenAt_29(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; - } - if (match_Empty(context, token)) - { - build(context, token); - return 38; + return 34; } - if (match_Comment(context, token)) + if (match_TableRow(context, token)) { build(context, token); - return 40; + return 29; } - if (match_TableRow(context, token)) + if (match_StepLine(context, token)) { - startRule(context, RuleType.ExamplesTable); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); + startRule(context, RuleType.Step); build(context, token); - return 41; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); @@ -3697,63 +2913,102 @@ private int matchTokenAt_38(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.Examples); - endRule(context, RuleType.ExamplesDefinition); + endRule(context, RuleType.DataTable); + endRule(context, RuleType.Step); endRule(context, RuleType.Scenario); endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Rule); startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Other(context, token)) + if (match_Comment(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 39; + return 29; + } + if (match_Empty(context, token)) + { + build(context, token); + return 29; } - final String stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + final String stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 38; + return 29; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private int matchTokenAt_39(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + private int matchTokenAt_30(Token token, ParserContext context) { + if (match_TagLine(context, token)) + { + build(context, token); + return 30; + } + if (match_ExamplesLine(context, token)) + { + endRule(context, RuleType.Tags); + startRule(context, RuleType.Examples); + build(context, token); + return 31; + } + if (match_Comment(context, token)) + { + build(context, token); + return 30; + } + if (match_Empty(context, token)) + { + build(context, token); + return 30; + } + + final String stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + token.detach(); + List expectedTokens = asList("#TagLine", "#ExamplesLine", "#Comment", "#Empty"); + ParserException error = token.isEOF() + ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) + : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); + + addError(context, error); + return 30; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + private int matchTokenAt_31(Token token, ParserContext context) { if (match_EOF(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3761,39 +3016,41 @@ private int matchTokenAt_39(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; + } + if (match_Empty(context, token)) + { + build(context, token); + return 31; } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); + startRule(context, RuleType.Description); build(context, token); - return 40; + return 32; } if (match_TableRow(context, token)) { - endRule(context, RuleType.Description); startRule(context, RuleType.ExamplesTable); build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3801,12 +3058,11 @@ private int matchTokenAt_39(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3816,21 +3072,19 @@ private int matchTokenAt_39(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3838,11 +3092,10 @@ private int matchTokenAt_39(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { - endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3851,29 +3104,31 @@ private int matchTokenAt_39(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Other(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 39; + return 32; } - final String stateComment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; + final String stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 39; + return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private int matchTokenAt_40(Token token, ParserContext context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private int matchTokenAt_32(Token token, ParserContext context) { if (match_EOF(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3881,35 +3136,38 @@ private int matchTokenAt_40(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_Comment(context, token)) { build(context, token); - return 40; + return 32; } if (match_TableRow(context, token)) { + endRule(context, RuleType.Description); startRule(context, RuleType.ExamplesTable); build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3917,11 +3175,12 @@ private int matchTokenAt_40(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3931,19 +3190,21 @@ private int matchTokenAt_40(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3951,10 +3212,11 @@ private int matchTokenAt_40(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { + endRule(context, RuleType.Description); endRule(context, RuleType.Examples); endRule(context, RuleType.ExamplesDefinition); endRule(context, RuleType.Scenario); @@ -3963,27 +3225,27 @@ private int matchTokenAt_40(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } - if (match_Empty(context, token)) + if (match_Other(context, token)) { build(context, token); - return 40; + return 32; } - final String stateComment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"); + List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 40; + return 32; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private int matchTokenAt_41(Token token, ParserContext context) { + private int matchTokenAt_33(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.ExamplesTable); @@ -3994,12 +3256,12 @@ private int matchTokenAt_41(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 41; + return 33; } if (match_TagLine(context, token)) { @@ -4011,7 +3273,7 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) @@ -4026,7 +3288,7 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -4041,7 +3303,7 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -4051,7 +3313,7 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { @@ -4063,7 +3325,7 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -4076,20 +3338,20 @@ private int matchTokenAt_41(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 41; + return 33; } if (match_Empty(context, token)) { build(context, token); - return 41; + return 33; } - final String stateComment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; + final String stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; token.detach(); List expectedTokens = asList("#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -4097,23 +3359,23 @@ private int matchTokenAt_41(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 41; + return 33; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private int matchTokenAt_43(Token token, ParserContext context) { + private int matchTokenAt_35(Token token, ParserContext context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 44; + return 36; } if (match_Other(context, token)) { build(context, token); - return 43; + return 35; } - final String stateComment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + final String stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#DocStringSeparator", "#Other"); ParserException error = token.isEOF() @@ -4121,11 +3383,11 @@ private int matchTokenAt_43(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 43; + return 35; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private int matchTokenAt_44(Token token, ParserContext context) { + private int matchTokenAt_36(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.DocString); @@ -4135,7 +3397,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { @@ -4143,7 +3405,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 35; + return 28; } if (match_TagLine(context, token)) { @@ -4154,7 +3416,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 37; + return 30; } } if (match_TagLine(context, token)) @@ -4168,7 +3430,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -4182,7 +3444,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -4191,7 +3453,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 38; + return 31; } if (match_ScenarioLine(context, token)) { @@ -4202,7 +3464,7 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -4214,20 +3476,20 @@ private int matchTokenAt_44(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 44; + return 36; } if (match_Empty(context, token)) { build(context, token); - return 44; + return 36; } - final String stateComment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + final String stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -4235,23 +3497,23 @@ private int matchTokenAt_44(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 44; + return 36; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private int matchTokenAt_45(Token token, ParserContext context) { + private int matchTokenAt_37(Token token, ParserContext context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 46; + return 38; } if (match_Other(context, token)) { build(context, token); - return 45; + return 37; } - final String stateComment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + final String stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#DocStringSeparator", "#Other"); ParserException error = token.isEOF() @@ -4259,11 +3521,11 @@ private int matchTokenAt_45(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 45; + return 37; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private int matchTokenAt_46(Token token, ParserContext context) { + private int matchTokenAt_38(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.DocString); @@ -4272,7 +3534,7 @@ private int matchTokenAt_46(Token token, ParserContext context) { endRule(context, RuleType.Rule); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { @@ -4280,7 +3542,7 @@ private int matchTokenAt_46(Token token, ParserContext context) { endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 29; + return 23; } if (match_TagLine(context, token)) { @@ -4292,7 +3554,7 @@ private int matchTokenAt_46(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 31; + return 25; } } if (match_TagLine(context, token)) @@ -4305,7 +3567,7 @@ private int matchTokenAt_46(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -4315,7 +3577,7 @@ private int matchTokenAt_46(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 32; + return 26; } if (match_RuleLine(context, token)) { @@ -4326,20 +3588,20 @@ private int matchTokenAt_46(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 46; + return 38; } if (match_Empty(context, token)) { build(context, token); - return 46; + return 38; } - final String stateComment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + final String stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -4347,23 +3609,23 @@ private int matchTokenAt_46(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 46; + return 38; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private int matchTokenAt_47(Token token, ParserContext context) { + private int matchTokenAt_39(Token token, ParserContext context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 48; + return 40; } if (match_Other(context, token)) { build(context, token); - return 47; + return 39; } - final String stateComment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + final String stateComment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#DocStringSeparator", "#Other"); ParserException error = token.isEOF() @@ -4371,11 +3633,11 @@ private int matchTokenAt_47(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 47; + return 39; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private int matchTokenAt_48(Token token, ParserContext context) { + private int matchTokenAt_40(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.DocString); @@ -4384,7 +3646,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { endRule(context, RuleType.ScenarioDefinition); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { @@ -4392,7 +3654,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { @@ -4403,7 +3665,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Tags); build(context, token); - return 17; + return 14; } } if (match_TagLine(context, token)) @@ -4417,7 +3679,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -4430,7 +3692,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ExamplesLine(context, token)) { @@ -4439,7 +3701,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.ExamplesDefinition); startRule(context, RuleType.Examples); build(context, token); - return 18; + return 15; } if (match_ScenarioLine(context, token)) { @@ -4450,7 +3712,7 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -4461,20 +3723,20 @@ private int matchTokenAt_48(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 48; + return 40; } if (match_Empty(context, token)) { build(context, token); - return 48; + return 40; } - final String stateComment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + final String stateComment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -4482,23 +3744,23 @@ private int matchTokenAt_48(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 48; + return 40; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private int matchTokenAt_49(Token token, ParserContext context) { + private int matchTokenAt_41(Token token, ParserContext context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 50; + return 42; } if (match_Other(context, token)) { build(context, token); - return 49; + return 41; } - final String stateComment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + final String stateComment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#DocStringSeparator", "#Other"); ParserException error = token.isEOF() @@ -4506,11 +3768,11 @@ private int matchTokenAt_49(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 49; + return 41; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private int matchTokenAt_50(Token token, ParserContext context) { + private int matchTokenAt_42(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.DocString); @@ -4518,7 +3780,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { endRule(context, RuleType.Background); endRule(context, RuleType.Feature); build(context, token); - return 42; + return 34; } if (match_StepLine(context, token)) { @@ -4526,7 +3788,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { endRule(context, RuleType.Step); startRule(context, RuleType.Step); build(context, token); - return 9; + return 7; } if (match_TagLine(context, token)) { @@ -4538,7 +3800,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Tags); build(context, token); - return 11; + return 9; } } if (match_TagLine(context, token)) @@ -4550,7 +3812,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { startRule(context, RuleType.RuleHeader); startRule(context, RuleType.Tags); build(context, token); - return 22; + return 18; } if (match_ScenarioLine(context, token)) { @@ -4560,7 +3822,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -4570,20 +3832,20 @@ private int matchTokenAt_50(Token token, ParserContext context) { startRule(context, RuleType.Rule); startRule(context, RuleType.RuleHeader); build(context, token); - return 23; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 50; + return 42; } if (match_Empty(context, token)) { build(context, token); - return 50; + return 42; } - final String stateComment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + final String stateComment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; token.detach(); List expectedTokens = asList("#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -4591,7 +3853,7 @@ private int matchTokenAt_50(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 50; + return 42; } diff --git a/javascript/src/Parser.ts b/javascript/src/Parser.ts index f6642376b..493a15524 100644 --- a/javascript/src/Parser.ts +++ b/javascript/src/Parser.ts @@ -93,8 +93,8 @@ export enum RuleType { DataTable, // DataTable! := #TableRow+ DocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags, // Tags! := #TagLine+ - DescriptionHelper, // DescriptionHelper := #Empty* Description? #Comment* - Description, // Description! := #Other+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ } interface Context { @@ -277,8 +277,6 @@ export default class Parser { return this.matchTokenAt_32(token, context); case 33: return this.matchTokenAt_33(token, context); - case 34: - return this.matchTokenAt_34(token, context); case 35: return this.matchTokenAt_35(token, context); case 36: @@ -293,22 +291,8 @@ export default class Parser { return this.matchTokenAt_40(token, context); case 41: return this.matchTokenAt_41(token, context); - case 43: - return this.matchTokenAt_43(token, context); - case 44: - return this.matchTokenAt_44(token, context); - case 45: - return this.matchTokenAt_45(token, context); - case 46: - return this.matchTokenAt_46(token, context); - case 47: - return this.matchTokenAt_47(token, context); - case 48: - return this.matchTokenAt_48(token, context); - case 49: - return this.matchTokenAt_49(token, context); - case 50: - return this.matchTokenAt_50(token, context); + case 42: + return this.matchTokenAt_42(token, context); default: throw new Error("Unknown state: " + state); } @@ -319,7 +303,7 @@ export default class Parser { private matchTokenAt_0(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.build(context, token); - return 42; + return 34; } if(this.match_Language(context, token)) { this.startRule(context, RuleType.Feature); @@ -422,21 +406,22 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_Empty(context, token)) { this.build(context, token); return 3; } if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 5; + return 4; } if(this.match_BackgroundLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.Background); this.build(context, token); - return 6; + return 5; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -444,7 +429,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -453,21 +438,21 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { this.startRule(context, RuleType.Description); @@ -484,26 +469,25 @@ export default class Parser { this.addError(context, error); return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 private matchTokenAt_4(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_Comment(context, token)) { - this.endRule(context); this.build(context, token); - return 5; + return 4; } if(this.match_BackgroundLine(context, token)) { this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Background); this.build(context, token); - return 6; + return 5; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -512,7 +496,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -522,7 +506,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -530,7 +514,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -538,7 +522,7 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { this.build(context, token); @@ -554,31 +538,35 @@ export default class Parser { this.addError(context, error); return 4; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 + // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 private matchTokenAt_5(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { + if(this.match_Empty(context, token)) { this.build(context, token); return 5; } - if(this.match_BackgroundLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Background); + if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); return 6; } + if(this.match_StepLine(context, token)) { + this.startRule(context, RuleType.Step); + this.build(context, token); + return 7; + } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -587,29 +575,30 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 5; + return 6; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -617,66 +606,67 @@ export default class Parser { this.addError(context, error); return 5; } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 private matchTokenAt_6(token: IToken, context: Context) { if(this.match_EOF(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 6; + return 34; } if(this.match_Comment(context, token)) { this.build(context, token); - return 8; + return 6; } if(this.match_StepLine(context, token)) { + this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 7; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 7; + return 6; } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -684,25 +674,30 @@ export default class Parser { this.addError(context, error); return 6; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 private matchTokenAt_7(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { - this.endRule(context); + if(this.match_TableRow(context, token)) { + this.startRule(context, RuleType.DataTable); this.build(context, token); return 8; } + if(this.match_DocStringSeparator(context, token)) { + this.startRule(context, RuleType.DocString); + this.build(context, token); + return 41; + } if(this.match_StepLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 7; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -711,7 +706,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -721,7 +716,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -729,7 +724,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -737,15 +732,19 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Other(context, token)) { + if(this.match_Comment(context, token)) { + this.build(context, token); + return 7; + } + if(this.match_Empty(context, token)) { this.build(context, token); return 7; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -753,53 +752,69 @@ export default class Parser { this.addError(context, error); return 7; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 + // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 private matchTokenAt_8(token: IToken, context: Context) { if(this.match_EOF(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { + if(this.match_TableRow(context, token)) { this.build(context, token); return 8; } if(this.match_StepLine(context, token)) { + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 7; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + return 8; } if(this.match_Empty(context, token)) { this.build(context, token); @@ -807,7 +822,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -815,30 +830,66 @@ export default class Parser { this.addError(context, error); return 8; } - // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 private matchTokenAt_9(token: IToken, context: Context) { + if(this.match_TagLine(context, token)) { + this.build(context, token); + return 9; + } + if(this.match_ScenarioLine(context, token)) { + this.endRule(context); + this.startRule(context, RuleType.Scenario); + this.build(context, token); + return 10; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + return 9; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 9; + } + + token.detach(); + const expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; + const error = token.isEof ? + UnexpectedEOFException.create(token, expectedTokens) : + UnexpectedTokenException.create(token, expectedTokens); + if (this.stopAtFirstError) throw error; + this.addError(context, error); + return 9; } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + private matchTokenAt_10(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.DataTable); + if(this.match_Empty(context, token)) { this.build(context, token); return 10; } - if(this.match_DocStringSeparator(context, token)) { - this.startRule(context, RuleType.DocString); + if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 49; + return 11; } if(this.match_StepLine(context, token)) { - this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 12; + } + if(this.match_TagLine(context, token)) { + if(this.lookahead_1(context, token)) { + this.startRule(context, RuleType.ExamplesDefinition); + this.startRule(context, RuleType.Tags); + this.build(context, token); + return 14; + } } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -847,7 +898,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -857,7 +908,13 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; + } + if(this.match_ExamplesLine(context, token)) { + this.startRule(context, RuleType.ExamplesDefinition); + this.startRule(context, RuleType.Examples); + this.build(context, token); + return 15; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -865,7 +922,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -873,46 +930,51 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 9; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 9; + return 11; } token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 9; } + return 10; } - // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private matchTokenAt_10(token: IToken, context: Context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_11(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_TableRow(context, token)) { + if(this.match_Comment(context, token)) { this.build(context, token); - return 10; + return 11; } if(this.match_StepLine(context, token)) { - this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 12; + } + if(this.match_TagLine(context, token)) { + if(this.lookahead_1(context, token)) { + this.endRule(context); + this.startRule(context, RuleType.ExamplesDefinition); + this.startRule(context, RuleType.Tags); + this.build(context, token); + return 14; + } } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -922,7 +984,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -933,7 +995,14 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; + } + if(this.match_ExamplesLine(context, token)) { + this.endRule(context); + this.startRule(context, RuleType.ExamplesDefinition); + this.startRule(context, RuleType.Examples); + this.build(context, token); + return 15; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -942,7 +1011,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -951,49 +1020,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 10; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 10; - } - - token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 10; } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private matchTokenAt_11(token: IToken, context: Context) { - if(this.match_TagLine(context, token)) { - this.build(context, token); - return 11; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 12; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 11; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); return 11; } token.detach(); - const expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1001,85 +1036,98 @@ export default class Parser { this.addError(context, error); return 11; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 private matchTokenAt_12(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Empty(context, token)) { + if(this.match_TableRow(context, token)) { + this.startRule(context, RuleType.DataTable); this.build(context, token); - return 12; + return 13; } - if(this.match_Comment(context, token)) { + if(this.match_DocStringSeparator(context, token)) { + this.startRule(context, RuleType.DocString); this.build(context, token); - return 14; + return 39; } if(this.match_StepLine(context, token)) { + this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 15; + return 12; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); + if(this.match_Comment(context, token)) { this.build(context, token); - return 13; + return 12; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 12; } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1087,34 +1135,36 @@ export default class Parser { this.addError(context, error); return 12; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 private matchTokenAt_13(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { - this.endRule(context); + if(this.match_TableRow(context, token)) { this.build(context, token); - return 14; + return 13; } if(this.match_StepLine(context, token)) { + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 15; + return 12; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { @@ -1122,54 +1172,63 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Other(context, token)) { + if(this.match_Comment(context, token)) { + this.build(context, token); + return 13; + } + if(this.match_Empty(context, token)) { this.build(context, token); return 13; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1177,120 +1236,168 @@ export default class Parser { this.addError(context, error); return 13; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 private matchTokenAt_14(token: IToken, context: Context) { + if(this.match_TagLine(context, token)) { + this.build(context, token); + return 14; + } + if(this.match_ExamplesLine(context, token)) { + this.endRule(context); + this.startRule(context, RuleType.Examples); + this.build(context, token); + return 15; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + return 14; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 14; + } + + token.detach(); + const expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; + const error = token.isEof ? + UnexpectedEOFException.create(token, expectedTokens) : + UnexpectedTokenException.create(token, expectedTokens); + if (this.stopAtFirstError) throw error; + this.addError(context, error); + return 14; } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + private matchTokenAt_15(token: IToken, context: Context) { if(this.match_EOF(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 15; } if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 14; + return 16; } - if(this.match_StepLine(context, token)) { - this.startRule(context, RuleType.Step); + if(this.match_TableRow(context, token)) { + this.startRule(context, RuleType.ExamplesTable); this.build(context, token); - return 15; + return 17; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); this.endRule(context); + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 14; + return 16; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 14; } + return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private matchTokenAt_15(token: IToken, context: Context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_16(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); + this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.DataTable); + if(this.match_Comment(context, token)) { this.build(context, token); return 16; } - if(this.match_DocStringSeparator(context, token)) { - this.startRule(context, RuleType.DocString); - this.build(context, token); - return 47; - } - if(this.match_StepLine(context, token)) { + if(this.match_TableRow(context, token)) { this.endRule(context); - this.startRule(context, RuleType.Step); + this.startRule(context, RuleType.ExamplesTable); this.build(context, token); - return 15; + return 17; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { @@ -1298,13 +1405,17 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); @@ -1312,81 +1423,78 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { + this.endRule(context); + this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 15; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); - return 15; + return 16; } token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 15; } + return 16; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private matchTokenAt_16(token: IToken, context: Context) { + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + private matchTokenAt_17(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_TableRow(context, token)) { this.build(context, token); - return 16; - } - if(this.match_StepLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Step); - this.build(context, token); - return 15; + return 17; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { @@ -1395,10 +1503,11 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -1406,238 +1515,195 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 16; + return 17; } if(this.match_Empty(context, token)) { this.build(context, token); - return 16; + return 17; } token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 16; } + return 17; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private matchTokenAt_17(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 + private matchTokenAt_18(token: IToken, context: Context) { if(this.match_TagLine(context, token)) { this.build(context, token); - return 17; + return 18; } - if(this.match_ExamplesLine(context, token)) { + if(this.match_RuleLine(context, token)) { this.endRule(context); - this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 17; + return 18; } if(this.match_Empty(context, token)) { this.build(context, token); - return 17; + return 18; } token.detach(); - const expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; + const expectedTokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 17; } + return 18; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private matchTokenAt_18(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 + private matchTokenAt_19(token: IToken, context: Context) { if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_Empty(context, token)) { this.build(context, token); - return 18; + return 19; } if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); return 20; } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.ExamplesTable); - this.build(context, token); - return 21; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { - this.endRule(context); + if(this.match_BackgroundLine(context, token)) { this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); + this.startRule(context, RuleType.Background); this.build(context, token); - return 17; - } + return 21; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 25; } } if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); return 18; } if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 26; } if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { this.startRule(context, RuleType.Description); this.build(context, token); - return 19; + return 20; } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 18; } + return 19; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private matchTokenAt_19(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_20(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); - this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_Comment(context, token)) { - this.endRule(context); this.build(context, token); return 20; } - if(this.match_TableRow(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ExamplesTable); - this.build(context, token); - return 21; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { - this.endRule(context); + if(this.match_BackgroundLine(context, token)) { this.endRule(context); this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); + this.startRule(context, RuleType.Background); this.build(context, token); - return 17; - } + return 21; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 25; } } if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); @@ -1645,191 +1711,141 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); return 18; } if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 26; } if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { this.build(context, token); - return 19; + return 20; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 19; } + return 20; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private matchTokenAt_20(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 + private matchTokenAt_21(token: IToken, context: Context) { if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { + if(this.match_Empty(context, token)) { this.build(context, token); - return 20; + return 21; } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.ExamplesTable); + if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 21; + return 22; } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); + if(this.match_StepLine(context, token)) { + this.startRule(context, RuleType.Step); this.build(context, token); - return 17; - } + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 25; } } if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); return 18; } if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 26; } if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 20; + return 22; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 20; } + return 21; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private matchTokenAt_21(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_22(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); - this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_TableRow(context, token)) { + if(this.match_Comment(context, token)) { this.build(context, token); - return 21; + return 22; } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { - this.endRule(context); - this.endRule(context); + if(this.match_StepLine(context, token)) { this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); + this.startRule(context, RuleType.Step); this.build(context, token); - return 17; - } + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { this.endRule(context); this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 25; } } if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); @@ -1837,79 +1853,32 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); return 18; } if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 26; } if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 21; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 21; - } - - token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 21; } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - private matchTokenAt_22(token: IToken, context: Context) { - if(this.match_TagLine(context, token)) { - this.build(context, token); - return 22; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 22; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); return 22; } token.detach(); - const expectedTokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1917,98 +1886,31 @@ export default class Parser { this.addError(context, error); return 22; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 private matchTokenAt_23(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 25; - } - if(this.match_BackgroundLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Background); - this.build(context, token); - return 26; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { this.endRule(context); this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 34; } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); + if(this.match_TableRow(context, token)) { + this.startRule(context, RuleType.DataTable); this.build(context, token); return 24; } - - token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 23; } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - private matchTokenAt_24(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Comment(context, token)) { - this.endRule(context); + if(this.match_DocStringSeparator(context, token)) { + this.startRule(context, RuleType.DocString); this.build(context, token); - return 25; + return 37; } - if(this.match_BackgroundLine(context, token)) { - this.endRule(context); + if(this.match_StepLine(context, token)) { this.endRule(context); - this.startRule(context, RuleType.Background); + this.startRule(context, RuleType.Step); this.build(context, token); - return 26; + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -2016,555 +1918,8 @@ export default class Parser { this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Other(context, token)) { - this.build(context, token); - return 24; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 24; } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - private matchTokenAt_25(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Comment(context, token)) { this.build(context, token); return 25; - } - if(this.match_BackgroundLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Background); - this.build(context, token); - return 26; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 25; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 25; } - - // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - private matchTokenAt_26(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 26; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 28; - } - if(this.match_StepLine(context, token)) { - this.startRule(context, RuleType.Step); - this.build(context, token); - return 29; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); - this.build(context, token); - return 27; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 26; } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private matchTokenAt_27(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Comment(context, token)) { - this.endRule(context); - this.build(context, token); - return 28; - } - if(this.match_StepLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Step); - this.build(context, token); - return 29; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Other(context, token)) { - this.build(context, token); - return 27; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 27; } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - private matchTokenAt_28(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 28; - } - if(this.match_StepLine(context, token)) { - this.startRule(context, RuleType.Step); - this.build(context, token); - return 29; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 28; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 28; } - - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - private matchTokenAt_29(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.DataTable); - this.build(context, token); - return 30; - } - if(this.match_DocStringSeparator(context, token)) { - this.startRule(context, RuleType.DocString); - this.build(context, token); - return 45; - } - if(this.match_StepLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Step); - this.build(context, token); - return 29; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 29; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 29; - } - - token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 29; } - - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private matchTokenAt_30(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_TableRow(context, token)) { - this.build(context, token); - return 30; - } - if(this.match_StepLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Step); - this.build(context, token); - return 29; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; - } - } - if(this.match_TagLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 22; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_RuleLine(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.Rule); - this.startRule(context, RuleType.RuleHeader); - this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 30; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 30; - } - - token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 30; } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private matchTokenAt_31(token: IToken, context: Context) { - if(this.match_TagLine(context, token)) { - this.build(context, token); - return 31; - } - if(this.match_ScenarioLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Scenario); - this.build(context, token); - return 32; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 31; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 31; - } - - token.detach(); - const expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 31; } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private matchTokenAt_32(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.endRule(context); - this.build(context, token); - return 42; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 32; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 34; - } - if(this.match_StepLine(context, token)) { - this.startRule(context, RuleType.Step); - this.build(context, token); - return 35; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 37; - } - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_0(context, token)) { - this.endRule(context); - this.endRule(context); - this.startRule(context, RuleType.ScenarioDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 31; } } if(this.match_TagLine(context, token)) { @@ -2575,13 +1930,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); - return 38; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -2589,7 +1938,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -2597,26 +1946,29 @@ export default class Parser { this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); + this.build(context, token); + return 19; + } + if(this.match_Comment(context, token)) { this.build(context, token); return 23; } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); + if(this.match_Empty(context, token)) { this.build(context, token); - return 33; + return 23; } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 32; } + return 23; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private matchTokenAt_33(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + private matchTokenAt_24(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -2624,27 +1976,18 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } - if(this.match_Comment(context, token)) { - this.endRule(context); + if(this.match_TableRow(context, token)) { this.build(context, token); - return 34; + return 24; } if(this.match_StepLine(context, token)) { this.endRule(context); - this.startRule(context, RuleType.Step); - this.build(context, token); - return 35; - } - if(this.match_TagLine(context, token)) { - if(this.lookahead_1(context, token)) { this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); + this.startRule(context, RuleType.Step); this.build(context, token); - return 37; - } + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -2654,7 +1997,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -2666,14 +2009,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Examples); - this.build(context, token); - return 38; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -2682,7 +2018,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -2692,47 +2028,86 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Other(context, token)) { + if(this.match_Comment(context, token)) { this.build(context, token); - return 33; + return 24; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 24; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 33; } + return 24; } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + private matchTokenAt_25(token: IToken, context: Context) { + if(this.match_TagLine(context, token)) { + this.build(context, token); + return 25; + } + if(this.match_ScenarioLine(context, token)) { + this.endRule(context); + this.startRule(context, RuleType.Scenario); + this.build(context, token); + return 26; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + return 25; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 25; + } + + token.detach(); + const expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; + const error = token.isEof ? + UnexpectedEOFException.create(token, expectedTokens) : + UnexpectedTokenException.create(token, expectedTokens); + if (this.stopAtFirstError) throw error; + this.addError(context, error); + return 25; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - private matchTokenAt_34(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + private matchTokenAt_26(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 26; } if(this.match_Comment(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 34; + return 27; } if(this.match_StepLine(context, token)) { this.startRule(context, RuleType.Step); this.build(context, token); - return 35; + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -2742,7 +2117,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -2753,13 +2128,13 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -2767,7 +2142,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -2776,24 +2151,25 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 34; + return 27; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 34; } + return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private matchTokenAt_35(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_27(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -2801,23 +2177,17 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; - } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.DataTable); - this.build(context, token); - return 36; + return 34; } - if(this.match_DocStringSeparator(context, token)) { - this.startRule(context, RuleType.DocString); + if(this.match_Comment(context, token)) { this.build(context, token); - return 43; + return 27; } if(this.match_StepLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 35; + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -2825,7 +2195,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -2836,7 +2206,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -2848,14 +2218,14 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -2864,7 +2234,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -2874,57 +2244,56 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 35; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); - return 35; + return 27; } token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 35; } + return 27; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private matchTokenAt_36(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + private matchTokenAt_28(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_TableRow(context, token)) { + this.startRule(context, RuleType.DataTable); this.build(context, token); - return 36; + return 29; + } + if(this.match_DocStringSeparator(context, token)) { + this.startRule(context, RuleType.DocString); + this.build(context, token); + return 35; } if(this.match_StepLine(context, token)) { - this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 35; + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -2932,11 +2301,10 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -2944,92 +2312,58 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { - this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 36; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 36; - } - - token.detach(); - const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - const error = token.isEof ? - UnexpectedEOFException.create(token, expectedTokens) : - UnexpectedTokenException.create(token, expectedTokens); - if (this.stopAtFirstError) throw error; - this.addError(context, error); - return 36; } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private matchTokenAt_37(token: IToken, context: Context) { - if(this.match_TagLine(context, token)) { - this.build(context, token); - return 37; - } - if(this.match_ExamplesLine(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.Examples); - this.build(context, token); - return 38; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 37; + return 28; } if(this.match_Empty(context, token)) { this.build(context, token); - return 37; + return 28; } token.detach(); - const expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; + const expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 37; } + return 28; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private matchTokenAt_38(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + private matchTokenAt_29(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3038,20 +2372,18 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 38; + return 34; } - if(this.match_Comment(context, token)) { + if(this.match_TableRow(context, token)) { this.build(context, token); - return 40; + return 29; } - if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.ExamplesTable); + if(this.match_StepLine(context, token)) { + this.endRule(context); + this.endRule(context); + this.startRule(context, RuleType.Step); this.build(context, token); - return 41; + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -3060,7 +2392,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -3072,7 +2404,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3085,7 +2417,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.endRule(context); @@ -3093,7 +2425,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3103,7 +2435,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3114,27 +2446,59 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); + if(this.match_Comment(context, token)) { this.build(context, token); - return 39; + return 29; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 29; } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 38; } + return 29; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private matchTokenAt_39(token: IToken, context: Context) { - if(this.match_EOF(context, token)) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + private matchTokenAt_30(token: IToken, context: Context) { + if(this.match_TagLine(context, token)) { + this.build(context, token); + return 30; + } + if(this.match_ExamplesLine(context, token)) { this.endRule(context); + this.startRule(context, RuleType.Examples); + this.build(context, token); + return 31; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + return 30; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 30; + } + + token.detach(); + const expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; + const error = token.isEof ? + UnexpectedEOFException.create(token, expectedTokens) : + UnexpectedTokenException.create(token, expectedTokens); + if (this.stopAtFirstError) throw error; + this.addError(context, error); + return 30; } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + private matchTokenAt_31(token: IToken, context: Context) { + if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); @@ -3142,28 +2506,30 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; + } + if(this.match_Empty(context, token)) { + this.build(context, token); + return 31; } if(this.match_Comment(context, token)) { - this.endRule(context); + this.startRule(context, RuleType.Description); this.build(context, token); - return 40; + return 32; } if(this.match_TableRow(context, token)) { - this.endRule(context); this.startRule(context, RuleType.ExamplesTable); this.build(context, token); - return 41; + return 33; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -3172,11 +2538,10 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3185,32 +2550,29 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { - this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3218,28 +2580,28 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); - this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Other(context, token)) { + this.startRule(context, RuleType.Description); this.build(context, token); - return 39; + return 32; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 39; } + return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private matchTokenAt_40(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private matchTokenAt_32(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3247,26 +2609,29 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_Comment(context, token)) { this.build(context, token); - return 40; + return 32; } if(this.match_TableRow(context, token)) { + this.endRule(context); this.startRule(context, RuleType.ExamplesTable); this.build(context, token); - return 41; + return 33; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -3275,10 +2640,11 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3287,29 +2653,32 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { + this.endRule(context); this.endRule(context); this.endRule(context); this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3317,27 +2686,28 @@ export default class Parser { this.endRule(context); this.endRule(context); this.endRule(context); + this.endRule(context); this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); - return 40; + return 32; } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 40; } + return 32; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private matchTokenAt_41(token: IToken, context: Context) { + private matchTokenAt_33(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3347,11 +2717,11 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_TableRow(context, token)) { this.build(context, token); - return 41; + return 33; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -3361,7 +2731,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -3374,7 +2744,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3388,7 +2758,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.endRule(context); @@ -3397,7 +2767,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3408,7 +2778,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3420,15 +2790,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 41; + return 33; } if(this.match_Empty(context, token)) { this.build(context, token); - return 41; + return 33; } token.detach(); @@ -3438,17 +2808,17 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 41; } + return 33; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private matchTokenAt_43(token: IToken, context: Context) { + private matchTokenAt_35(token: IToken, context: Context) { if(this.match_DocStringSeparator(context, token)) { this.build(context, token); - return 44; + return 36; } if(this.match_Other(context, token)) { this.build(context, token); - return 43; + return 35; } token.detach(); @@ -3458,10 +2828,10 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 43; } + return 35; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private matchTokenAt_44(token: IToken, context: Context) { + private matchTokenAt_36(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3470,14 +2840,14 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_StepLine(context, token)) { this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 35; + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -3486,7 +2856,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 37; + return 30; } } if(this.match_TagLine(context, token)) { @@ -3498,7 +2868,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3511,7 +2881,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.endRule(context); @@ -3519,7 +2889,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 38; + return 31; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3529,7 +2899,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3540,15 +2910,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 44; + return 36; } if(this.match_Empty(context, token)) { this.build(context, token); - return 44; + return 36; } token.detach(); @@ -3558,17 +2928,17 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 44; } + return 36; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private matchTokenAt_45(token: IToken, context: Context) { + private matchTokenAt_37(token: IToken, context: Context) { if(this.match_DocStringSeparator(context, token)) { this.build(context, token); - return 46; + return 38; } if(this.match_Other(context, token)) { this.build(context, token); - return 45; + return 37; } token.detach(); @@ -3578,10 +2948,10 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 45; } + return 37; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private matchTokenAt_46(token: IToken, context: Context) { + private matchTokenAt_38(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3589,14 +2959,14 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_StepLine(context, token)) { this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 29; + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -3606,7 +2976,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 31; + return 25; } } if(this.match_TagLine(context, token)) { @@ -3618,7 +2988,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3627,7 +2997,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 32; + return 26; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3637,15 +3007,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 46; + return 38; } if(this.match_Empty(context, token)) { this.build(context, token); - return 46; + return 38; } token.detach(); @@ -3655,17 +3025,17 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 46; } + return 38; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private matchTokenAt_47(token: IToken, context: Context) { + private matchTokenAt_39(token: IToken, context: Context) { if(this.match_DocStringSeparator(context, token)) { this.build(context, token); - return 48; + return 40; } if(this.match_Other(context, token)) { this.build(context, token); - return 47; + return 39; } token.detach(); @@ -3675,10 +3045,10 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 47; } + return 39; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private matchTokenAt_48(token: IToken, context: Context) { + private matchTokenAt_40(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3686,14 +3056,14 @@ export default class Parser { this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_StepLine(context, token)) { this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 15; + return 12; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -3702,7 +3072,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 17; + return 14; } } if(this.match_TagLine(context, token)) { @@ -3714,7 +3084,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -3726,7 +3096,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ExamplesLine(context, token)) { this.endRule(context); @@ -3734,7 +3104,7 @@ export default class Parser { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Examples); this.build(context, token); - return 18; + return 15; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3744,7 +3114,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3754,15 +3124,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 48; + return 40; } if(this.match_Empty(context, token)) { this.build(context, token); - return 48; + return 40; } token.detach(); @@ -3772,17 +3142,17 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 48; } + return 40; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private matchTokenAt_49(token: IToken, context: Context) { + private matchTokenAt_41(token: IToken, context: Context) { if(this.match_DocStringSeparator(context, token)) { this.build(context, token); - return 50; + return 42; } if(this.match_Other(context, token)) { this.build(context, token); - return 49; + return 41; } token.detach(); @@ -3792,24 +3162,24 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 49; } + return 41; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private matchTokenAt_50(token: IToken, context: Context) { + private matchTokenAt_42(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); this.endRule(context); this.endRule(context); this.build(context, token); - return 42; + return 34; } if(this.match_StepLine(context, token)) { this.endRule(context); this.endRule(context); this.startRule(context, RuleType.Step); this.build(context, token); - return 9; + return 7; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -3819,7 +3189,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); - return 11; + return 9; } } if(this.match_TagLine(context, token)) { @@ -3830,7 +3200,7 @@ export default class Parser { this.startRule(context, RuleType.RuleHeader); this.startRule(context, RuleType.Tags); this.build(context, token); - return 22; + return 18; } if(this.match_ScenarioLine(context, token)) { this.endRule(context); @@ -3839,7 +3209,7 @@ export default class Parser { this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Scenario); this.build(context, token); - return 12; + return 10; } if(this.match_RuleLine(context, token)) { this.endRule(context); @@ -3848,15 +3218,15 @@ export default class Parser { this.startRule(context, RuleType.Rule); this.startRule(context, RuleType.RuleHeader); this.build(context, token); - return 23; + return 19; } if(this.match_Comment(context, token)) { this.build(context, token); - return 50; + return 42; } if(this.match_Empty(context, token)) { this.build(context, token); - return 50; + return 42; } token.detach(); @@ -3866,7 +3236,7 @@ export default class Parser { UnexpectedTokenException.create(token, expectedTokens); if (this.stopAtFirstError) throw error; this.addError(context, error); - return 50; } + return 42; } private match_EOF(context: Context, token: IToken) { diff --git a/perl/lib/Gherkin/Generated/Parser.pm b/perl/lib/Gherkin/Generated/Parser.pm index 3c3793c9a..967a82ade 100644 --- a/perl/lib/Gherkin/Generated/Parser.pm +++ b/perl/lib/Gherkin/Generated/Parser.pm @@ -41,7 +41,6 @@ our %states_to_match_names = ( 31 => "match_token_at_31", 32 => "match_token_at_32", 33 => "match_token_at_33", - 34 => "match_token_at_34", 35 => "match_token_at_35", 36 => "match_token_at_36", 37 => "match_token_at_37", @@ -49,14 +48,7 @@ our %states_to_match_names = ( 39 => "match_token_at_39", 40 => "match_token_at_40", 41 => "match_token_at_41", - 43 => "match_token_at_43", - 44 => "match_token_at_44", - 45 => "match_token_at_45", - 46 => "match_token_at_46", - 47 => "match_token_at_47", - 48 => "match_token_at_48", - 49 => "match_token_at_49", - 50 => "match_token_at_50", + 42 => "match_token_at_42", ); sub parse { @@ -120,7 +112,7 @@ sub match_token_at_0 { if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Language($token); if ($ok) { @@ -263,7 +255,7 @@ sub match_token_at_3 { $self->_end_rule($context, 'FeatureHeader'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { @@ -274,8 +266,9 @@ sub match_token_at_3 { ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 5; + return 4; } ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); if ($ok) { @@ -283,7 +276,7 @@ sub match_token_at_3 { $self->_end_rule($context, 'FeatureHeader'); $self->_start_rule($context, 'Background'); $self->_build($context, $token); - return 6; + return 5; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -293,7 +286,7 @@ sub match_token_at_3 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -304,7 +297,7 @@ sub match_token_at_3 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -313,7 +306,7 @@ sub match_token_at_3 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -322,7 +315,7 @@ sub match_token_at_3 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { @@ -343,7 +336,7 @@ sub match_token_at_3 { return 3; } -# GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 +# GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 sub match_token_at_4 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); @@ -354,14 +347,13 @@ sub match_token_at_4 { $self->_end_rule($context, 'FeatureHeader'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_build($context, $token); - return 5; + return 4; } ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); if ($ok) { @@ -370,7 +362,7 @@ sub match_token_at_4 { $self->_end_rule($context, 'FeatureHeader'); $self->_start_rule($context, 'Background'); $self->_build($context, $token); - return 6; + return 5; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -381,7 +373,7 @@ sub match_token_at_4 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -393,7 +385,7 @@ sub match_token_at_4 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -403,7 +395,7 @@ sub match_token_at_4 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -413,7 +405,7 @@ sub match_token_at_4 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { @@ -426,257 +418,276 @@ sub match_token_at_4 { $err = $self->_construct_parser_error( $token, ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0", + "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); return 4; } -# GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 +# GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 sub match_token_at_5 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'FeatureHeader'); + $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); return 5; } - ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'FeatureHeader'); - $self->_start_rule($context, 'Background'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); return 6; } + ($ok, $err) = $context->token_matcher->match_StepLine($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Step'); + $self->_build($context, $token); + return 7; + } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'FeatureHeader'); + $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'FeatureHeader'); + $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'FeatureHeader'); + $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'FeatureHeader'); + $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 5; + return 6; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0", + ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0", ); $self->add_error( $context, $err ); return 5; } -# GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 +# GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 sub match_token_at_6 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 6; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 8; + return 6; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 9; + return 7; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 7; + return 6; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0", + ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); return 6; } -# GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 +# GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 sub match_token_at_7 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_start_rule($context, 'DataTable'); $self->_build($context, $token); return 8; } + ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'DocString'); + $self->_build($context, $token); + return 41; + } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 9; + return 7; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Other($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 7; + } + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); @@ -686,27 +697,29 @@ sub match_token_at_7 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0", + ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], + "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0", ); $self->add_error( $context, $err ); return 7; } -# GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 +# GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 sub match_token_at_8 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); @@ -715,48 +728,64 @@ sub match_token_at_8 { ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 9; + return 7; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; + } + ($ok, $err) = $context->token_matcher->match_Comment($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 8; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { @@ -768,91 +797,31 @@ sub match_token_at_8 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0", + ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], + "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", ); $self->add_error( $context, $err ); return 8; } -# GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 +# GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 sub match_token_at_9 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_TableRow($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DataTable'); - $self->_build($context, $token); - return 10; - } - ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DocString'); - $self->_build($context, $token); - return 49; - } - ($ok, $err) = $context->token_matcher->match_StepLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'Step'); - $self->_build($context, $token); - return 9; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 11; - } - } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 9; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'ScenarioDefinition'); + $self->_end_rule($context, 'Tags'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; + return 10; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -870,141 +839,112 @@ sub match_token_at_9 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0", + ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], + "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0", ); $self->add_error( $context, $err ); return 9; } -# GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 +# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 sub match_token_at_10 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_TableRow($token); + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); return 10; } - ($ok, $err) = $context->token_matcher->match_StepLine($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'Step'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 9; + return 11; } - ($ok, $err) = $context->token_matcher->match_TagLine($token); + ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); + $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 11; - } + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); + if ($self->lookahead_1($context, $token)) { + $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 14; + } } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); + ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); + if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); + $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 12; + return 9; + } } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); + ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); + $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 10; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 10; + return 18; } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", - ); - $self->add_error( $context, $err ); - - return 10; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 -sub match_token_at_11 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_TagLine($token); + ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'ExamplesDefinition'); + $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 11; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Tags'); + $self->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); + $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); + $self->_start_rule($context, 'Rule'); + $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 11; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); return 11; } @@ -1012,562 +952,344 @@ sub match_token_at_11 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], - "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0", + ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0", ); $self->add_error( $context, $err ); - return 11; + return 10; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 -sub match_token_at_12 { +# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_11 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 12; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 14; + return 11; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 15; + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 13; + return 11; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0", + ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 12; + return 11; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_13 { +# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 +sub match_token_at_12 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_start_rule($context, 'DataTable'); $self->_build($context, $token); - return 14; + return 13; + } + ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'DocString'); + $self->_build($context, $token); + return 39; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 15; + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Other($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 13; + return 12; + } + ($ok, $err) = $context->token_matcher->match_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 12; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0", + ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], + "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0", ); $self->add_error( $context, $err ); - return 13; + return 12; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_14 { +# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 +sub match_token_at_13 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } - ($ok, $err) = $context->token_matcher->match_Comment($token); + ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 14; + return 13; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 15; + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'DataTable'); + $self->_end_rule($context, 'Step'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 14; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0", - ); - $self->add_error( $context, $err ); - - return 14; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -sub match_token_at_15 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_TableRow($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DataTable'); - $self->_build($context, $token); - return 16; - } - ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DocString'); - $self->_build($context, $token); - return 47; - } - ($ok, $err) = $context->token_matcher->match_StepLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'Step'); - $self->_build($context, $token); - return 15; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 17; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 11; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Examples'); - $self->_build($context, $token); - return 18; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 12; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 15; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 15; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0", - ); - $self->add_error( $context, $err ); - - return 15; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -sub match_token_at_16 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_TableRow($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 16; - } - ($ok, $err) = $context->token_matcher->match_StepLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'Step'); - $self->_build($context, $token); - return 15; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 17; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 11; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Examples'); - $self->_build($context, $token); - return 18; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'DataTable'); - $self->_end_rule($context, 'Step'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -1579,41 +1301,41 @@ sub match_token_at_16 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 16; + return 13; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 16; + return 13; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", + "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", ); $self->add_error( $context, $err ); - return 16; + return 13; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 -sub match_token_at_17 { +sub match_token_at_14 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 17; + return 14; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -1621,34 +1343,34 @@ sub match_token_at_17 { $self->_end_rule($context, 'Tags'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 17; + return 14; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 17; + return 14; } $token->detach; $err = $self->_construct_parser_error( $token, ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"], - "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0", + "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0", ); $self->add_error( $context, $err ); - return 17; + return 14; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 -sub match_token_at_18 { +sub match_token_at_15 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1660,26 +1382,27 @@ sub match_token_at_18 { $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 20; + return 16; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'ExamplesTable'); $self->_build($context, $token); - return 21; + return 17; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -1690,7 +1413,7 @@ sub match_token_at_18 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -1704,7 +1427,7 @@ sub match_token_at_18 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -1718,7 +1441,7 @@ sub match_token_at_18 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -1728,7 +1451,7 @@ sub match_token_at_18 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -1740,7 +1463,7 @@ sub match_token_at_18 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -1752,29 +1475,29 @@ sub match_token_at_18 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 19; + return 16; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0", + "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0", ); $self->add_error( $context, $err ); - return 18; + return 15; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_19 { +# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_16 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1787,14 +1510,13 @@ sub match_token_at_19 { $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_build($context, $token); - return 20; + return 16; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { @@ -1802,7 +1524,7 @@ sub match_token_at_19 { $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesTable'); $self->_build($context, $token); - return 21; + return 17; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -1814,7 +1536,7 @@ sub match_token_at_19 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -1829,7 +1551,7 @@ sub match_token_at_19 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -1844,7 +1566,7 @@ sub match_token_at_19 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -1855,7 +1577,7 @@ sub match_token_at_19 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -1868,131 +1590,12 @@ sub match_token_at_19 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Other($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 19; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0", - ); - $self->add_error( $context, $err ); - - return 19; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_20 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 20; - } - ($ok, $err) = $context->token_matcher->match_TableRow($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'ExamplesTable'); - $self->_build($context, $token); - return 21; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 17; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 11; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Examples'); - $self->_build($context, $token); - return 18; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -2000,28 +1603,28 @@ sub match_token_at_20 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 20; + return 16; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0", + ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 20; + return 16; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 -sub match_token_at_21 { +sub match_token_at_17 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2034,13 +1637,13 @@ sub match_token_at_21 { $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 21; + return 17; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -2052,7 +1655,7 @@ sub match_token_at_21 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -2067,7 +1670,7 @@ sub match_token_at_21 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -2082,7 +1685,7 @@ sub match_token_at_21 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -2093,7 +1696,7 @@ sub match_token_at_21 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -2106,7 +1709,7 @@ sub match_token_at_21 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -2119,75 +1722,75 @@ sub match_token_at_21 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 21; + return 17; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 21; + return 17; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0", + "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0", ); $self->add_error( $context, $err ); - return 21; + return 17; } # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 -sub match_token_at_22 { +sub match_token_at_18 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_end_rule($context, 'Tags'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 22; + return 18; } $token->detach; $err = $self->_construct_parser_error( $token, ["#TagLine", "#RuleLine", "#Comment", "#Empty"], - "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0", + "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0", ); $self->add_error( $context, $err ); - return 22; + return 18; } # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 -sub match_token_at_23 { +sub match_token_at_19 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2197,19 +1800,20 @@ sub match_token_at_23 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 25; + return 20; } ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); if ($ok) { @@ -2217,7 +1821,7 @@ sub match_token_at_23 { $self->_end_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Background'); $self->_build($context, $token); - return 26; + return 21; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -2227,7 +1831,7 @@ sub match_token_at_23 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -2239,7 +1843,7 @@ sub match_token_at_23 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -2248,7 +1852,7 @@ sub match_token_at_23 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -2258,29 +1862,29 @@ sub match_token_at_23 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 24; + return 20; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0", + "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0", ); $self->add_error( $context, $err ); - return 23; + return 19; } -# GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_24 { +# GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_20 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2291,14 +1895,13 @@ sub match_token_at_24 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_build($context, $token); - return 25; + return 20; } ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); if ($ok) { @@ -2307,428 +1910,257 @@ sub match_token_at_24 { $self->_end_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Background'); $self->_build($context, $token); - return 26; + return 21; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { $self->_end_rule($context, 'Description'); - $self->_end_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 31; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); - $self->_end_rule($context, 'RuleHeader'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); - $self->_end_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 32; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); - $self->_end_rule($context, 'RuleHeader'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Other($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 24; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0", - ); - $self->add_error( $context, $err ); - - return 24; -} - -# GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 -sub match_token_at_25 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'RuleHeader'); - $self->_end_rule($context, 'Rule'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 25; - } - ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Background'); - $self->_build($context, $token); - return 26; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 31; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'RuleHeader'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 32; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'RuleHeader'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 25; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0", - ); - $self->add_error( $context, $err ); - - return 25; -} - -# GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 -sub match_token_at_26 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Background'); - $self->_end_rule($context, 'Rule'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 26; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 28; - } - ($ok, $err) = $context->token_matcher->match_StepLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Step'); - $self->_build($context, $token); - return 29; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'RuleHeader'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'RuleHeader'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'RuleHeader'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Background'); + $self->_end_rule($context, 'Description'); + $self->_end_rule($context, 'RuleHeader'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 27; + return 20; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0", + ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 26; + return 20; } -# GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_27 { +# GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 +sub match_token_at_21 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; + } + ($ok, $err) = $context->token_matcher->match_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 21; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 28; + return 22; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 27; + return 22; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0", + ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0", ); $self->add_error( $context, $err ); - return 27; + return 21; } -# GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_28 { +# GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_22 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 28; + return 22; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 28; + return 22; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0", + ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 28; + return 22; } # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 -sub match_token_at_29 { +sub match_token_at_23 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2739,21 +2171,21 @@ sub match_token_at_29 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'DataTable'); $self->_build($context, $token); - return 30; + return 24; } ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'DocString'); $self->_build($context, $token); - return 45; + return 37; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -2761,7 +2193,7 @@ sub match_token_at_29 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -2772,7 +2204,7 @@ sub match_token_at_29 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -2785,7 +2217,7 @@ sub match_token_at_29 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -2795,7 +2227,7 @@ sub match_token_at_29 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -2806,34 +2238,34 @@ sub match_token_at_29 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 29; + return 23; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0", + "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0", ); $self->add_error( $context, $err ); - return 29; + return 23; } # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -sub match_token_at_30 { +sub match_token_at_24 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2845,13 +2277,13 @@ sub match_token_at_30 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 30; + return 24; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -2860,7 +2292,7 @@ sub match_token_at_30 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -2872,7 +2304,7 @@ sub match_token_at_30 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -2886,7 +2318,7 @@ sub match_token_at_30 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -2897,7 +2329,7 @@ sub match_token_at_30 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -2909,41 +2341,41 @@ sub match_token_at_30 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 30; + return 24; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 30; + return 24; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", + "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", ); $self->add_error( $context, $err ); - return 30; + return 24; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 -sub match_token_at_31 { +sub match_token_at_25 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 31; + return 25; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -2951,205 +2383,91 @@ sub match_token_at_31 { $self->_end_rule($context, 'Tags'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 31; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 31; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], - "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0", - ); - $self->add_error( $context, $err ); - - return 31; -} - -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 -sub match_token_at_32 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 34; - } - ($ok, $err) = $context->token_matcher->match_StepLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Step'); - $self->_build($context, $token); - return 35; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_1($context, $token)) { - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 37; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 31; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 22; - } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Examples'); - $self->_build($context, $token); - return 38; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 32; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_build($context, $token); - return 23; + return 25; } - ($ok, $err) = $context->token_matcher->match_Other($token); + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 33; + return 25; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0", + ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"], + "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0", ); $self->add_error( $context, $err ); - return 32; + return 25; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_33 { +# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 +sub match_token_at_26 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; + } + ($ok, $err) = $context->token_matcher->match_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 26; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 34; + return 27; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); @@ -3157,110 +2475,113 @@ sub match_token_at_33 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 33; + return 27; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0", + ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0", ); $self->add_error( $context, $err ); - return 33; + return 26; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_34 { +# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_27 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 34; + return 27; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); @@ -3268,57 +2589,60 @@ sub match_token_at_34 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Scenario'); $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Rule'); $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 34; + return 27; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0", + ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 34; + return 27; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -sub match_token_at_35 { +sub match_token_at_28 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -3330,21 +2654,21 @@ sub match_token_at_35 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'DataTable'); $self->_build($context, $token); - return 36; + return 29; } ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_start_rule($context, 'DocString'); $self->_build($context, $token); - return 43; + return 35; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -3352,7 +2676,7 @@ sub match_token_at_35 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -3362,7 +2686,7 @@ sub match_token_at_35 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -3375,7 +2699,7 @@ sub match_token_at_35 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -3389,7 +2713,7 @@ sub match_token_at_35 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -3398,7 +2722,7 @@ sub match_token_at_35 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -3409,7 +2733,7 @@ sub match_token_at_35 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -3421,34 +2745,34 @@ sub match_token_at_35 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 35; + return 28; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0", + "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0", ); $self->add_error( $context, $err ); - return 35; + return 28; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -sub match_token_at_36 { +sub match_token_at_29 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -3461,13 +2785,13 @@ sub match_token_at_36 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 36; + return 29; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -3476,7 +2800,7 @@ sub match_token_at_36 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -3487,7 +2811,7 @@ sub match_token_at_36 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -3501,7 +2825,7 @@ sub match_token_at_36 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -3516,7 +2840,7 @@ sub match_token_at_36 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -3526,7 +2850,7 @@ sub match_token_at_36 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -3538,7 +2862,7 @@ sub match_token_at_36 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -3551,211 +2875,81 @@ sub match_token_at_36 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 36; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 36; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", - ); - $self->add_error( $context, $err ); - - return 36; -} - -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 -sub match_token_at_37 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 37; - } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Tags'); - $self->_start_rule($context, 'Examples'); - $self->_build($context, $token); - return 38; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 37; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 37; - } - - $token->detach; - $err = $self->_construct_parser_error( - $token, - ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"], - "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0", - ); - $self->add_error( $context, $err ); - - return 37; -} - -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 -sub match_token_at_38 { - my ( $self, $token, $context ) = @_; - my ( $ok, $err ); - ($ok, $err) = $context->token_matcher->match_EOF($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_end_rule($context, 'Feature'); - $self->_build($context, $token); - return 42; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 38; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 40; - } - ($ok, $err) = $context->token_matcher->match_TableRow($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'ExamplesTable'); - $self->_build($context, $token); - return 41; - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 37; - } - } - ($ok, $err) = $context->token_matcher->match_TagLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Tags'); - $self->_build($context, $token); - return 31; - } + return 29; } - ($ok, $err) = $context->token_matcher->match_TagLine($token); + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 29; } - ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); + + $token->detach; + $err = $self->_construct_parser_error( + $token, + ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], + "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0", + ); + $self->add_error( $context, $err ); + + return 29; +} + +# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 +sub match_token_at_30 { + my ( $self, $token, $context ) = @_; + my ( $ok, $err ); + ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'ExamplesDefinition'); - $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 30; } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); + ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'ScenarioDefinition'); - $self->_start_rule($context, 'Scenario'); + $self->_end_rule($context, 'Tags'); + $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 32; + return 31; } - ($ok, $err) = $context->token_matcher->match_RuleLine($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Examples'); - $self->_end_rule($context, 'ExamplesDefinition'); - $self->_end_rule($context, 'Scenario'); - $self->_end_rule($context, 'ScenarioDefinition'); - $self->_end_rule($context, 'Rule'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 30; } - ($ok, $err) = $context->token_matcher->match_Other($token); + ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 39; + return 30; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0", + ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"], + "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0", ); $self->add_error( $context, $err ); - return 38; + return 30; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 -sub match_token_at_39 { +# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 +sub match_token_at_31 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3763,41 +2957,44 @@ sub match_token_at_39 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; + } + ($ok, $err) = $context->token_matcher->match_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 31; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 40; + return 32; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesTable'); $self->_build($context, $token); - return 41; + return 33; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3805,13 +3002,12 @@ sub match_token_at_39 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3821,23 +3017,21 @@ sub match_token_at_39 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3845,12 +3039,11 @@ sub match_token_at_39 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3859,33 +3052,35 @@ sub match_token_at_39 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 39; + return 32; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0", + ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0", ); $self->add_error( $context, $err ); - return 39; + return 31; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_40 { +# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 +sub match_token_at_32 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3893,37 +3088,40 @@ sub match_token_at_40 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 40; + return 32; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_start_rule($context, 'ExamplesTable'); $self->_build($context, $token); - return 41; + return 33; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_1($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; if ($self->lookahead_0($context, $token)) { + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3931,12 +3129,13 @@ sub match_token_at_40 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3946,21 +3145,23 @@ sub match_token_at_40 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3968,11 +3169,12 @@ sub match_token_at_40 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $self->_end_rule($context, 'Examples'); $self->_end_rule($context, 'ExamplesDefinition'); $self->_end_rule($context, 'Scenario'); @@ -3981,28 +3183,28 @@ sub match_token_at_40 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } - ($ok, $err) = $context->token_matcher->match_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 40; + return 32; } $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"], - "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0", + ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); - return 40; + return 32; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 -sub match_token_at_41 { +sub match_token_at_33 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -4016,13 +3218,13 @@ sub match_token_at_41 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_TableRow($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 41; + return 33; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -4034,7 +3236,7 @@ sub match_token_at_41 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4049,7 +3251,7 @@ sub match_token_at_41 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4065,7 +3267,7 @@ sub match_token_at_41 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -4076,7 +3278,7 @@ sub match_token_at_41 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -4089,7 +3291,7 @@ sub match_token_at_41 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -4103,62 +3305,62 @@ sub match_token_at_41 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 41; + return 33; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 41; + return 33; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0", + "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0", ); $self->add_error( $context, $err ); - return 41; + return 33; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -sub match_token_at_43 { +sub match_token_at_35 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 44; + return 36; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 43; + return 35; } $token->detach; $err = $self->_construct_parser_error( $token, ["#DocStringSeparator", "#Other"], - "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", + "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 43; + return 35; } # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -sub match_token_at_44 { +sub match_token_at_36 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -4171,7 +3373,7 @@ sub match_token_at_44 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -4180,7 +3382,7 @@ sub match_token_at_44 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 35; + return 28; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -4191,7 +3393,7 @@ sub match_token_at_44 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 37; + return 30; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4205,7 +3407,7 @@ sub match_token_at_44 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4220,7 +3422,7 @@ sub match_token_at_44 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -4230,7 +3432,7 @@ sub match_token_at_44 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 38; + return 31; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -4242,7 +3444,7 @@ sub match_token_at_44 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -4255,62 +3457,62 @@ sub match_token_at_44 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 44; + return 36; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 44; + return 36; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", + "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 44; + return 36; } # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -sub match_token_at_45 { +sub match_token_at_37 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 46; + return 38; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 45; + return 37; } $token->detach; $err = $self->_construct_parser_error( $token, ["#DocStringSeparator", "#Other"], - "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", + "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 45; + return 37; } # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -sub match_token_at_46 { +sub match_token_at_38 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -4322,7 +3524,7 @@ sub match_token_at_46 { $self->_end_rule($context, 'Rule'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -4331,7 +3533,7 @@ sub match_token_at_46 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 29; + return 23; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -4343,7 +3545,7 @@ sub match_token_at_46 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 31; + return 25; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4357,7 +3559,7 @@ sub match_token_at_46 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -4368,7 +3570,7 @@ sub match_token_at_46 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 32; + return 26; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -4380,62 +3582,62 @@ sub match_token_at_46 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 46; + return 38; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 46; + return 38; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", + "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 46; + return 38; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -sub match_token_at_47 { +sub match_token_at_39 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 48; + return 40; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 47; + return 39; } $token->detach; $err = $self->_construct_parser_error( $token, ["#DocStringSeparator", "#Other"], - "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", + "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 47; + return 39; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -sub match_token_at_48 { +sub match_token_at_40 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -4447,7 +3649,7 @@ sub match_token_at_48 { $self->_end_rule($context, 'ScenarioDefinition'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -4456,7 +3658,7 @@ sub match_token_at_48 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 15; + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -4467,7 +3669,7 @@ sub match_token_at_48 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 17; + return 14; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4481,7 +3683,7 @@ sub match_token_at_48 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4495,7 +3697,7 @@ sub match_token_at_48 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ExamplesLine($token); if ($ok) { @@ -4505,7 +3707,7 @@ sub match_token_at_48 { $self->_start_rule($context, 'ExamplesDefinition'); $self->_start_rule($context, 'Examples'); $self->_build($context, $token); - return 18; + return 15; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -4517,7 +3719,7 @@ sub match_token_at_48 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -4529,62 +3731,62 @@ sub match_token_at_48 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 48; + return 40; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 48; + return 40; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", + "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 48; + return 40; } # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 -sub match_token_at_49 { +sub match_token_at_41 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 50; + return 42; } ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 49; + return 41; } $token->detach; $err = $self->_construct_parser_error( $token, ["#DocStringSeparator", "#Other"], - "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", + "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 49; + return 41; } # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 -sub match_token_at_50 { +sub match_token_at_42 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -4595,7 +3797,7 @@ sub match_token_at_50 { $self->_end_rule($context, 'Background'); $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 34; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -4604,7 +3806,7 @@ sub match_token_at_50 { $self->_end_rule($context, 'Step'); $self->_start_rule($context, 'Step'); $self->_build($context, $token); - return 9; + return 7; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -4616,7 +3818,7 @@ sub match_token_at_50 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 11; + return 9; } } ($ok, $err) = $context->token_matcher->match_TagLine($token); @@ -4629,7 +3831,7 @@ sub match_token_at_50 { $self->_start_rule($context, 'RuleHeader'); $self->_start_rule($context, 'Tags'); $self->_build($context, $token); - return 22; + return 18; } ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { @@ -4640,7 +3842,7 @@ sub match_token_at_50 { $self->_start_rule($context, 'ScenarioDefinition'); $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); - return 12; + return 10; } ($ok, $err) = $context->token_matcher->match_RuleLine($token); if ($ok) { @@ -4651,30 +3853,30 @@ sub match_token_at_50 { $self->_start_rule($context, 'Rule'); $self->_start_rule($context, 'RuleHeader'); $self->_build($context, $token); - return 23; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 50; + return 42; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 50; + return 42; } $token->detach; $err = $self->_construct_parser_error( $token, ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"], - "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", + "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0", ); $self->add_error( $context, $err ); - return 50; + return 42; } diff --git a/php/src-generated/Parser.php b/php/src-generated/Parser.php index 0886c26d0..efadd5dab 100644 --- a/php/src-generated/Parser.php +++ b/php/src-generated/Parser.php @@ -242,7 +242,6 @@ private function matchToken(int $state, Token $token, ParserContext $context): i 31 => $this->matchTokenAt_31($token, $context), 32 => $this->matchTokenAt_32($token, $context), 33 => $this->matchTokenAt_33($token, $context), - 34 => $this->matchTokenAt_34($token, $context), 35 => $this->matchTokenAt_35($token, $context), 36 => $this->matchTokenAt_36($token, $context), 37 => $this->matchTokenAt_37($token, $context), @@ -250,14 +249,7 @@ private function matchToken(int $state, Token $token, ParserContext $context): i 39 => $this->matchTokenAt_39($token, $context), 40 => $this->matchTokenAt_40($token, $context), 41 => $this->matchTokenAt_41($token, $context), - 43 => $this->matchTokenAt_43($token, $context), - 44 => $this->matchTokenAt_44($token, $context), - 45 => $this->matchTokenAt_45($token, $context), - 46 => $this->matchTokenAt_46($token, $context), - 47 => $this->matchTokenAt_47($token, $context), - 48 => $this->matchTokenAt_48($token, $context), - 49 => $this->matchTokenAt_49($token, $context), - 50 => $this->matchTokenAt_50($token, $context), + 42 => $this->matchTokenAt_42($token, $context), default => throw new \LogicException("Unknown state: $state"), }; } @@ -268,7 +260,7 @@ private function matchTokenAt_0(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->build($context, $token); - return 42; + return 34; } if ($this->match_Language($context, $token)) { $this->startRule($context, RuleType::Feature); @@ -380,21 +372,22 @@ private function matchTokenAt_3(Token $token, ParserContext $context): int $this->endRule($context, RuleType::FeatureHeader); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); return 3; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 5; + return 4; } if ($this->match_BackgroundLine($context, $token)) { $this->endRule($context, RuleType::FeatureHeader); $this->startRule($context, RuleType::Background); $this->build($context, $token); - return 6; + return 5; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -402,7 +395,7 @@ private function matchTokenAt_3(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -411,21 +404,21 @@ private function matchTokenAt_3(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::FeatureHeader); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::FeatureHeader); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); @@ -444,7 +437,7 @@ private function matchTokenAt_3(Token $token, ParserContext $context): int return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 private function matchTokenAt_4(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { @@ -452,19 +445,18 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int $this->endRule($context, RuleType::FeatureHeader); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 5; + return 4; } if ($this->match_BackgroundLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::FeatureHeader); $this->startRule($context, RuleType::Background); $this->build($context, $token); - return 6; + return 5; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -473,7 +465,7 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -483,7 +475,7 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -491,7 +483,7 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -499,14 +491,14 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); return 4; } - $stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -517,93 +509,28 @@ private function matchTokenAt_4(Token $token, ParserContext $context): int return 4; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_5(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 5; - } - if ($this->match_BackgroundLine($context, $token)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::Background); - $this->build($context, $token); - return 6; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 11; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 12; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 5; - } - - $stateComment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 5; - } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 - private function matchTokenAt_6(Token $token, ParserContext $context): int + private function matchTokenAt_5(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 6; + return 5; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 8; + return 6; } if ($this->match_StepLine($context, $token)) { $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 9; + return 7; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -611,7 +538,7 @@ private function matchTokenAt_6(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -620,29 +547,29 @@ private function matchTokenAt_6(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 7; + return 6; } - $stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; + $stateComment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -650,29 +577,28 @@ private function matchTokenAt_6(Token $token, ParserContext $context): int $this->addError($context, $error); - return 6; + return 5; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_7(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_6(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 8; + return 6; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 9; + return 7; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -681,7 +607,7 @@ private function matchTokenAt_7(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -691,7 +617,7 @@ private function matchTokenAt_7(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -699,7 +625,7 @@ private function matchTokenAt_7(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -707,14 +633,14 @@ private function matchTokenAt_7(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 7; + return 6; } - $stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -722,99 +648,34 @@ private function matchTokenAt_7(Token $token, ParserContext $context): int $this->addError($context, $error); - return 7; - } - - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_8(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 8; - } - if ($this->match_StepLine($context, $token)) { - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 9; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 11; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 12; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 8; - } - - $stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 8; + return 6; } // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 - private function matchTokenAt_9(Token $token, ParserContext $context): int + private function matchTokenAt_7(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Step); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::DataTable); $this->build($context, $token); - return 10; + return 8; } if ($this->match_DocStringSeparator($context, $token)) { $this->startRule($context, RuleType::DocString); $this->build($context, $token); - return 49; + return 41; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 9; + return 7; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -823,7 +684,7 @@ private function matchTokenAt_9(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -833,7 +694,7 @@ private function matchTokenAt_9(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -841,7 +702,7 @@ private function matchTokenAt_9(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -849,18 +710,18 @@ private function matchTokenAt_9(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 9; + return 7; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 9; + return 7; } - $stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; + $stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; $expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -868,11 +729,11 @@ private function matchTokenAt_9(Token $token, ParserContext $context): int $this->addError($context, $error); - return 9; + return 7; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private function matchTokenAt_10(Token $token, ParserContext $context): int + private function matchTokenAt_8(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -880,18 +741,18 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->build($context, $token); - return 10; + return 8; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DataTable); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 9; + return 7; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -901,7 +762,7 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -912,7 +773,7 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -921,7 +782,7 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -930,18 +791,18 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 10; + return 8; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 10; + return 8; } - $stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + $stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; $expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -949,32 +810,32 @@ private function matchTokenAt_10(Token $token, ParserContext $context): int $this->addError($context, $error); - return 10; + return 8; } // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_11(Token $token, ParserContext $context): int + private function matchTokenAt_9(Token $token, ParserContext $context): int { if ($this->match_TagLine($context, $token)) { $this->build($context, $token); - return 11; + return 9; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Tags); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 11; + return 9; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 11; + return 9; } - $stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; + $stateComment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; $expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -982,38 +843,39 @@ private function matchTokenAt_11(Token $token, ParserContext $context): int $this->addError($context, $error); - return 11; + return 9; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private function matchTokenAt_12(Token $token, ParserContext $context): int + private function matchTokenAt_10(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Scenario); $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 12; + return 10; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 14; + return 11; } if ($this->match_StepLine($context, $token)) { $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 15; + return 12; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1023,7 +885,7 @@ private function matchTokenAt_12(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1033,13 +895,13 @@ private function matchTokenAt_12(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Scenario); @@ -1047,7 +909,7 @@ private function matchTokenAt_12(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Scenario); @@ -1055,15 +917,15 @@ private function matchTokenAt_12(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 13; + return 11; } - $stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; + $stateComment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1071,11 +933,11 @@ private function matchTokenAt_12(Token $token, ParserContext $context): int $this->addError($context, $error); - return 12; + return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_13(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_11(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1083,18 +945,17 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 14; + return 11; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 15; + return 12; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -1102,7 +963,7 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1113,7 +974,7 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1124,14 +985,14 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1140,7 +1001,7 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1149,14 +1010,14 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 13; + return 11; } - $stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1164,95 +1025,11 @@ private function matchTokenAt_13(Token $token, ParserContext $context): int $this->addError($context, $error); - return 13; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_14(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 14; - } - if ($this->match_StepLine($context, $token)) { - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 15; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 17; - } - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 11; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Examples); - $this->build($context, $token); - return 18; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 12; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 14; - } - - $stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 14; + return 11; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private function matchTokenAt_15(Token $token, ParserContext $context): int + private function matchTokenAt_12(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Step); @@ -1260,23 +1037,23 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::DataTable); $this->build($context, $token); - return 16; + return 13; } if ($this->match_DocStringSeparator($context, $token)) { $this->startRule($context, RuleType::DocString); $this->build($context, $token); - return 47; + return 39; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 15; + return 12; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -1284,7 +1061,7 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1295,7 +1072,7 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1306,14 +1083,14 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -1322,7 +1099,7 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -1331,18 +1108,18 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 15; + return 12; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 15; + return 12; } - $stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; + $stateComment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; $expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1350,11 +1127,11 @@ private function matchTokenAt_15(Token $token, ParserContext $context): int $this->addError($context, $error); - return 15; + return 12; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private function matchTokenAt_16(Token $token, ParserContext $context): int + private function matchTokenAt_13(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -1363,18 +1140,18 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->build($context, $token); - return 16; + return 13; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DataTable); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 15; + return 12; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -1383,7 +1160,7 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1395,7 +1172,7 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1407,7 +1184,7 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -1415,7 +1192,7 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -1425,7 +1202,7 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -1435,18 +1212,18 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 16; + return 13; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 16; + return 13; } - $stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + $stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; $expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1454,32 +1231,32 @@ private function matchTokenAt_16(Token $token, ParserContext $context): int $this->addError($context, $error); - return 16; + return 13; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_17(Token $token, ParserContext $context): int + private function matchTokenAt_14(Token $token, ParserContext $context): int { if ($this->match_TagLine($context, $token)) { $this->build($context, $token); - return 17; + return 14; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Tags); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 17; + return 14; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 17; + return 14; } - $stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + $stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; $expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1487,11 +1264,11 @@ private function matchTokenAt_17(Token $token, ParserContext $context): int $this->addError($context, $error); - return 17; + return 14; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private function matchTokenAt_18(Token $token, ParserContext $context): int + private function matchTokenAt_15(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -1500,20 +1277,21 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 18; + return 15; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 20; + return 16; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::ExamplesTable); $this->build($context, $token); - return 21; + return 17; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -1522,7 +1300,7 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1534,7 +1312,7 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1546,7 +1324,7 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -1554,7 +1332,7 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -1564,7 +1342,7 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -1574,15 +1352,15 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 19; + return 16; } - $stateComment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + $stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1590,11 +1368,11 @@ private function matchTokenAt_18(Token $token, ParserContext $context): int $this->addError($context, $error); - return 18; + return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_19(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_16(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1604,18 +1382,17 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 20; + return 16; } if ($this->match_TableRow($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::ExamplesTable); $this->build($context, $token); - return 21; + return 17; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -1625,7 +1402,7 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -1638,7 +1415,7 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -1651,7 +1428,7 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1660,7 +1437,7 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1671,7 +1448,7 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -1682,14 +1459,14 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 19; + return 16; } - $stateComment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1697,42 +1474,40 @@ private function matchTokenAt_19(Token $token, ParserContext $context): int $this->addError($context, $error); - return 19; + return 16; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_20(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + private function matchTokenAt_17(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->endRule($context, RuleType::Scenario); $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 20; + return 34; } if ($this->match_TableRow($context, $token)) { - $this->startRule($context, RuleType::ExamplesTable); $this->build($context, $token); - return 21; + return 17; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->endRule($context, RuleType::Scenario); @@ -1740,10 +1515,11 @@ private function matchTokenAt_20(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->endRule($context, RuleType::Scenario); @@ -1752,17 +1528,19 @@ private function matchTokenAt_20(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->endRule($context, RuleType::Scenario); @@ -1770,9 +1548,10 @@ private function matchTokenAt_20(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { + $this->endRule($context, RuleType::ExamplesTable); $this->endRule($context, RuleType::Examples); $this->endRule($context, RuleType::ExamplesDefinition); $this->endRule($context, RuleType::Scenario); @@ -1780,150 +1559,50 @@ private function matchTokenAt_20(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 17; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 20; + return 17; } - $stateComment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + $stateComment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; + $expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) : new UnexpectedTokenException($token, $expectedTokens, $stateComment); $this->addError($context, $error); - return 20; + return 17; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private function matchTokenAt_21(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 + private function matchTokenAt_18(Token $token, ParserContext $context): int { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_TableRow($context, $token)) { - $this->build($context, $token); - return 21; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 17; - } - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 11; - } - } if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Examples); $this->build($context, $token); return 18; } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 12; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::ExamplesTable); - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 21; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 21; - } - - $stateComment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; - $expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 21; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - private function matchTokenAt_22(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 22; - } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Tags); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 22; + return 18; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 22; + return 18; } - $stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; + $stateComment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; $expectedTokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -1931,32 +1610,33 @@ private function matchTokenAt_22(Token $token, ParserContext $context): int $this->addError($context, $error); - return 22; + return 18; } // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - private function matchTokenAt_23(Token $token, ParserContext $context): int + private function matchTokenAt_19(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::RuleHeader); $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 25; + return 20; } if ($this->match_BackgroundLine($context, $token)) { $this->endRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Background); $this->build($context, $token); - return 26; + return 21; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -1964,7 +1644,7 @@ private function matchTokenAt_23(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -1974,14 +1654,14 @@ private function matchTokenAt_23(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::RuleHeader); @@ -1989,15 +1669,15 @@ private function matchTokenAt_23(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 24; + return 20; } - $stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; + $stateComment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2005,11 +1685,11 @@ private function matchTokenAt_23(Token $token, ParserContext $context): int $this->addError($context, $error); - return 23; + return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_24(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_20(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2017,19 +1697,18 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 25; + return 20; } if ($this->match_BackgroundLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Background); $this->build($context, $token); - return 26; + return 21; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -2038,7 +1717,7 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2049,7 +1728,7 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2057,7 +1736,7 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2066,14 +1745,14 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 24; + return 20; } - $stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2081,296 +1760,159 @@ private function matchTokenAt_24(Token $token, ParserContext $context): int $this->addError($context, $error); - return 24; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_25(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::RuleHeader); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 25; - } - if ($this->match_BackgroundLine($context, $token)) { - $this->endRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Background); - $this->build($context, $token); - return 26; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 31; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::RuleHeader); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 32; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::RuleHeader); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 25; - } - - $stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 25; + return 20; } // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - private function matchTokenAt_26(Token $token, ParserContext $context): int + private function matchTokenAt_21(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 26; + return 21; } if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 28; - } - if ($this->match_StepLine($context, $token)) { - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 29; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 31; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 32; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 27; - } - - $stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; - $expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 26; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_27(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->build($context, $token); - return 28; + return 22; } if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 29; + return 23; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 27; + return 22; } - $stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $stateComment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0"; + $expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) : new UnexpectedTokenException($token, $expectedTokens, $stateComment); $this->addError($context, $error); - return 27; + return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_28(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_22(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 28; + return 22; } if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 29; + return 23; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { + $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { + $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { + $this->endRule($context, RuleType::Description); $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Rule); $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } - if ($this->match_Empty($context, $token)) { + if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 28; + return 22; } - $stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + $stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) : new UnexpectedTokenException($token, $expectedTokens, $stateComment); $this->addError($context, $error); - return 28; + return 22; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - private function matchTokenAt_29(Token $token, ParserContext $context): int + private function matchTokenAt_23(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2378,23 +1920,23 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::DataTable); $this->build($context, $token); - return 30; + return 24; } if ($this->match_DocStringSeparator($context, $token)) { $this->startRule($context, RuleType::DocString); $this->build($context, $token); - return 45; + return 37; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 29; + return 23; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -2403,7 +1945,7 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2414,7 +1956,7 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2422,7 +1964,7 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2431,18 +1973,18 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 29; + return 23; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 29; + return 23; } - $stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; + $stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; $expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2450,11 +1992,11 @@ private function matchTokenAt_29(Token $token, ParserContext $context): int $this->addError($context, $error); - return 29; + return 23; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private function matchTokenAt_30(Token $token, ParserContext $context): int + private function matchTokenAt_24(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -2463,18 +2005,18 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->build($context, $token); - return 30; + return 24; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DataTable); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 29; + return 23; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -2484,7 +2026,7 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2496,7 +2038,7 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -2505,7 +2047,7 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -2515,18 +2057,18 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 30; + return 24; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 30; + return 24; } - $stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + $stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; $expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2534,32 +2076,32 @@ private function matchTokenAt_30(Token $token, ParserContext $context): int $this->addError($context, $error); - return 30; + return 24; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_31(Token $token, ParserContext $context): int + private function matchTokenAt_25(Token $token, ParserContext $context): int { if ($this->match_TagLine($context, $token)) { $this->build($context, $token); - return 31; + return 25; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Tags); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 31; + return 25; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 31; + return 25; } - $stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; + $stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; $expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2567,11 +2109,11 @@ private function matchTokenAt_31(Token $token, ParserContext $context): int $this->addError($context, $error); - return 31; + return 25; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private function matchTokenAt_32(Token $token, ParserContext $context): int + private function matchTokenAt_26(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Scenario); @@ -2579,27 +2121,28 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 32; + return 26; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 34; + return 27; } if ($this->match_StepLine($context, $token)) { $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 35; + return 28; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -2609,7 +2152,7 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2620,13 +2163,13 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Scenario); @@ -2634,7 +2177,7 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Scenario); @@ -2643,15 +2186,15 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 33; + return 27; } - $stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; + $stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2659,11 +2202,11 @@ private function matchTokenAt_32(Token $token, ParserContext $context): int $this->addError($context, $error); - return 32; + return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_33(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_27(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2672,18 +2215,17 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 34; + return 27; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 35; + return 28; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -2691,7 +2233,7 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -2702,7 +2244,7 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2714,14 +2256,14 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2730,7 +2272,7 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -2740,14 +2282,14 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 33; + return 27; } - $stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + $stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2755,98 +2297,11 @@ private function matchTokenAt_33(Token $token, ParserContext $context): int $this->addError($context, $error); - return 33; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_34(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 34; - } - if ($this->match_StepLine($context, $token)) { - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 35; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 37; - } - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 31; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Examples); - $this->build($context, $token); - return 38; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 32; - } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 34; - } - - $stateComment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 34; + return 27; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private function matchTokenAt_35(Token $token, ParserContext $context): int + private function matchTokenAt_28(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2855,23 +2310,23 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::DataTable); $this->build($context, $token); - return 36; + return 29; } if ($this->match_DocStringSeparator($context, $token)) { $this->startRule($context, RuleType::DocString); $this->build($context, $token); - return 43; + return 35; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 35; + return 28; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -2879,7 +2334,7 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -2890,7 +2345,7 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -2902,14 +2357,14 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2918,7 +2373,7 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Step); @@ -2928,18 +2383,18 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 35; + return 28; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 35; + return 28; } - $stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; + $stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; $expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -2947,11 +2402,11 @@ private function matchTokenAt_35(Token $token, ParserContext $context): int $this->addError($context, $error); - return 35; + return 28; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - private function matchTokenAt_36(Token $token, ParserContext $context): int + private function matchTokenAt_29(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -2961,18 +2416,18 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->build($context, $token); - return 36; + return 29; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DataTable); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 35; + return 28; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -2981,7 +2436,7 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -2993,7 +2448,7 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3006,7 +2461,7 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -3014,7 +2469,7 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -3024,7 +2479,7 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DataTable); @@ -3035,18 +2490,18 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 36; + return 29; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 36; + return 29; } - $stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + $stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; $expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3054,32 +2509,32 @@ private function matchTokenAt_36(Token $token, ParserContext $context): int $this->addError($context, $error); - return 36; + return 29; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_37(Token $token, ParserContext $context): int + private function matchTokenAt_30(Token $token, ParserContext $context): int { if ($this->match_TagLine($context, $token)) { $this->build($context, $token); - return 37; + return 30; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Tags); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 37; + return 30; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 37; + return 30; } - $stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; + $stateComment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0"; $expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3087,11 +2542,11 @@ private function matchTokenAt_37(Token $token, ParserContext $context): int $this->addError($context, $error); - return 37; + return 30; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private function matchTokenAt_38(Token $token, ParserContext $context): int + private function matchTokenAt_31(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -3101,20 +2556,21 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 38; + return 31; } if ($this->match_Comment($context, $token)) { + $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 40; + return 32; } if ($this->match_TableRow($context, $token)) { $this->startRule($context, RuleType::ExamplesTable); $this->build($context, $token); - return 41; + return 33; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -3123,7 +2579,7 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -3135,7 +2591,7 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3148,7 +2604,7 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -3156,7 +2612,7 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -3166,7 +2622,7 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Examples); @@ -3177,15 +2633,15 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { $this->startRule($context, RuleType::Description); $this->build($context, $token); - return 39; + return 32; } - $stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; + $stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0"; $expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3193,11 +2649,11 @@ private function matchTokenAt_38(Token $token, ParserContext $context): int $this->addError($context, $error); - return 38; + return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_39(Token $token, ParserContext $context): int + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + private function matchTokenAt_32(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::Description); @@ -3208,18 +2664,17 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); $this->build($context, $token); - return 40; + return 32; } if ($this->match_TableRow($context, $token)) { $this->endRule($context, RuleType::Description); $this->startRule($context, RuleType::ExamplesTable); $this->build($context, $token); - return 41; + return 33; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -3229,7 +2684,7 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -3242,7 +2697,7 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3256,7 +2711,7 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -3265,7 +2720,7 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -3276,7 +2731,7 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::Description); @@ -3288,127 +2743,26 @@ private function matchTokenAt_39(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 39; - } - - $stateComment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 39; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_40(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 40; - } - if ($this->match_TableRow($context, $token)) { - $this->startRule($context, RuleType::ExamplesTable); - $this->build($context, $token); - return 41; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 37; - } - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 31; - } - } - if ($this->match_TagLine($context, $token)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 22; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::ExamplesDefinition); - $this->startRule($context, RuleType::Examples); - $this->build($context, $token); - return 38; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::ScenarioDefinition); - $this->startRule($context, RuleType::Scenario); $this->build($context, $token); return 32; } - if ($this->match_RuleLine($context, $token)) { - $this->endRule($context, RuleType::Examples); - $this->endRule($context, RuleType::ExamplesDefinition); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Rule); - $this->startRule($context, RuleType::Rule); - $this->startRule($context, RuleType::RuleHeader); - $this->build($context, $token); - return 23; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 40; - } - $stateComment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; - $expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"]; + $stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) : new UnexpectedTokenException($token, $expectedTokens, $stateComment); $this->addError($context, $error); - return 40; + return 32; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - private function matchTokenAt_41(Token $token, ParserContext $context): int + private function matchTokenAt_33(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::ExamplesTable); @@ -3419,11 +2773,11 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_TableRow($context, $token)) { $this->build($context, $token); - return 41; + return 33; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -3433,7 +2787,7 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -3446,7 +2800,7 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3460,7 +2814,7 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::ExamplesTable); @@ -3469,7 +2823,7 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::ExamplesTable); @@ -3480,7 +2834,7 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::ExamplesTable); @@ -3492,18 +2846,18 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 41; + return 33; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 41; + return 33; } - $stateComment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; + $stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0"; $expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3511,22 +2865,22 @@ private function matchTokenAt_41(Token $token, ParserContext $context): int $this->addError($context, $error); - return 41; + return 33; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private function matchTokenAt_43(Token $token, ParserContext $context): int + private function matchTokenAt_35(Token $token, ParserContext $context): int { if ($this->match_DocStringSeparator($context, $token)) { $this->build($context, $token); - return 44; + return 36; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 43; + return 35; } - $stateComment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + $stateComment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; $expectedTokens = ["#DocStringSeparator", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3534,11 +2888,11 @@ private function matchTokenAt_43(Token $token, ParserContext $context): int $this->addError($context, $error); - return 43; + return 35; } // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private function matchTokenAt_44(Token $token, ParserContext $context): int + private function matchTokenAt_36(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3548,14 +2902,14 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DocString); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 35; + return 28; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -3564,7 +2918,7 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 37; + return 30; } } if ($this->match_TagLine($context, $token)) { @@ -3576,7 +2930,7 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3589,7 +2943,7 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3597,7 +2951,7 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 38; + return 31; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3607,7 +2961,7 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3618,18 +2972,18 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 44; + return 36; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 44; + return 36; } - $stateComment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + $stateComment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; $expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3637,22 +2991,22 @@ private function matchTokenAt_44(Token $token, ParserContext $context): int $this->addError($context, $error); - return 44; + return 36; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private function matchTokenAt_45(Token $token, ParserContext $context): int + private function matchTokenAt_37(Token $token, ParserContext $context): int { if ($this->match_DocStringSeparator($context, $token)) { $this->build($context, $token); - return 46; + return 38; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 45; + return 37; } - $stateComment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + $stateComment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; $expectedTokens = ["#DocStringSeparator", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3660,11 +3014,11 @@ private function matchTokenAt_45(Token $token, ParserContext $context): int $this->addError($context, $error); - return 45; + return 37; } // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private function matchTokenAt_46(Token $token, ParserContext $context): int + private function matchTokenAt_38(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3673,14 +3027,14 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Rule); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DocString); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 29; + return 23; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -3690,7 +3044,7 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 31; + return 25; } } if ($this->match_TagLine($context, $token)) { @@ -3702,7 +3056,7 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3711,7 +3065,7 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 32; + return 26; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3721,18 +3075,18 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 46; + return 38; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 46; + return 38; } - $stateComment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + $stateComment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; $expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3740,22 +3094,22 @@ private function matchTokenAt_46(Token $token, ParserContext $context): int $this->addError($context, $error); - return 46; + return 38; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private function matchTokenAt_47(Token $token, ParserContext $context): int + private function matchTokenAt_39(Token $token, ParserContext $context): int { if ($this->match_DocStringSeparator($context, $token)) { $this->build($context, $token); - return 48; + return 40; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 47; + return 39; } - $stateComment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + $stateComment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; $expectedTokens = ["#DocStringSeparator", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3763,11 +3117,11 @@ private function matchTokenAt_47(Token $token, ParserContext $context): int $this->addError($context, $error); - return 47; + return 39; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private function matchTokenAt_48(Token $token, ParserContext $context): int + private function matchTokenAt_40(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3776,14 +3130,14 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->endRule($context, RuleType::ScenarioDefinition); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DocString); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 15; + return 12; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_1($context)) { @@ -3792,7 +3146,7 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 17; + return 14; } } if ($this->match_TagLine($context, $token)) { @@ -3804,7 +3158,7 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -3816,7 +3170,7 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ExamplesLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3824,7 +3178,7 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ExamplesDefinition); $this->startRule($context, RuleType::Examples); $this->build($context, $token); - return 18; + return 15; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3834,7 +3188,7 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3844,18 +3198,18 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 48; + return 40; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 48; + return 40; } - $stateComment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + $stateComment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; $expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3863,22 +3217,22 @@ private function matchTokenAt_48(Token $token, ParserContext $context): int $this->addError($context, $error); - return 48; + return 40; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - private function matchTokenAt_49(Token $token, ParserContext $context): int + private function matchTokenAt_41(Token $token, ParserContext $context): int { if ($this->match_DocStringSeparator($context, $token)) { $this->build($context, $token); - return 50; + return 42; } if ($this->match_Other($context, $token)) { $this->build($context, $token); - return 49; + return 41; } - $stateComment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; + $stateComment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0"; $expectedTokens = ["#DocStringSeparator", "#Other"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3886,11 +3240,11 @@ private function matchTokenAt_49(Token $token, ParserContext $context): int $this->addError($context, $error); - return 49; + return 41; } // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - private function matchTokenAt_50(Token $token, ParserContext $context): int + private function matchTokenAt_42(Token $token, ParserContext $context): int { if ($this->match_EOF($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3898,14 +3252,14 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->endRule($context, RuleType::Background); $this->endRule($context, RuleType::Feature); $this->build($context, $token); - return 42; + return 34; } if ($this->match_StepLine($context, $token)) { $this->endRule($context, RuleType::DocString); $this->endRule($context, RuleType::Step); $this->startRule($context, RuleType::Step); $this->build($context, $token); - return 9; + return 7; } if ($this->match_TagLine($context, $token)) { if ($this->lookahead_0($context)) { @@ -3915,7 +3269,7 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 11; + return 9; } } if ($this->match_TagLine($context, $token)) { @@ -3926,7 +3280,7 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->startRule($context, RuleType::RuleHeader); $this->startRule($context, RuleType::Tags); $this->build($context, $token); - return 22; + return 18; } if ($this->match_ScenarioLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3935,7 +3289,7 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->startRule($context, RuleType::ScenarioDefinition); $this->startRule($context, RuleType::Scenario); $this->build($context, $token); - return 12; + return 10; } if ($this->match_RuleLine($context, $token)) { $this->endRule($context, RuleType::DocString); @@ -3944,18 +3298,18 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->startRule($context, RuleType::Rule); $this->startRule($context, RuleType::RuleHeader); $this->build($context, $token); - return 23; + return 19; } if ($this->match_Comment($context, $token)) { $this->build($context, $token); - return 50; + return 42; } if ($this->match_Empty($context, $token)) { $this->build($context, $token); - return 50; + return 42; } - $stateComment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; + $stateComment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0"; $expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"]; $error = $token->isEOF() ? new UnexpectedEofException($token, $expectedTokens, $stateComment) @@ -3963,7 +3317,7 @@ private function matchTokenAt_50(Token $token, ParserContext $context): int $this->addError($context, $error); - return 50; + return 42; } diff --git a/php/src-generated/Parser/RuleType.php b/php/src-generated/Parser/RuleType.php index 84c5280f5..56fe0c619 100644 --- a/php/src-generated/Parser/RuleType.php +++ b/php/src-generated/Parser/RuleType.php @@ -46,6 +46,6 @@ enum RuleType case DataTable; // DataTable! := #TableRow+ case DocString; // DocString! := #DocStringSeparator #Other* #DocStringSeparator case Tags; // Tags! := #TagLine+ - case DescriptionHelper; // DescriptionHelper := #Empty* Description? #Comment* - case Description; // Description! := #Other+ + case DescriptionHelper; // DescriptionHelper := #Empty* Description? + case Description; // Description! := (#Other | #Comment)+ } diff --git a/python/gherkin/parser.py b/python/gherkin/parser.py index 442502c75..bf83115cf 100644 --- a/python/gherkin/parser.py +++ b/python/gherkin/parser.py @@ -48,8 +48,8 @@ 'DataTable', # DataTable! := #TableRow+ 'DocString', # DocString! := #DocStringSeparator #Other* #DocStringSeparator 'Tags', # Tags! := #TagLine+ - 'DescriptionHelper', # DescriptionHelper := #Empty* Description? #Comment* - 'Description', # Description! := #Other+ + 'DescriptionHelper', # DescriptionHelper := #Empty* Description? + 'Description', # Description! := (#Other | #Comment)+ ] @@ -218,7 +218,6 @@ def match_token(self, state: int, token: Token, context: ParserContext) -> int: 31: self.match_token_at_31, 32: self.match_token_at_32, 33: self.match_token_at_33, - 34: self.match_token_at_34, 35: self.match_token_at_35, 36: self.match_token_at_36, 37: self.match_token_at_37, @@ -226,14 +225,7 @@ def match_token(self, state: int, token: Token, context: ParserContext) -> int: 39: self.match_token_at_39, 40: self.match_token_at_40, 41: self.match_token_at_41, - 43: self.match_token_at_43, - 44: self.match_token_at_44, - 45: self.match_token_at_45, - 46: self.match_token_at_46, - 47: self.match_token_at_47, - 48: self.match_token_at_48, - 49: self.match_token_at_49, - 50: self.match_token_at_50, + 42: self.match_token_at_42, } if state in state_map: return state_map[state](token, context) @@ -244,7 +236,7 @@ def match_token(self, state: int, token: Token, context: ParserContext) -> int: def match_token_at_0(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.build(context, token) - return 42 + return 34 if self.match_Language(context, token): self.start_rule(context, 'Feature') self.start_rule(context, 'FeatureHeader') @@ -330,44 +322,45 @@ def match_token_at_3(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'FeatureHeader') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) return 3 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 5 + return 4 if self.match_BackgroundLine(context, token): self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'Background') self.build(context, token) - return 6 + return 5 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -381,24 +374,23 @@ def match_token_at_3(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 3 - # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 def match_token_at_4(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'FeatureHeader') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 5 + return 4 if self.match_BackgroundLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'Background') self.build(context, token) - return 6 + return 5 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -406,7 +398,7 @@ def match_token_at_4(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'FeatureHeader') @@ -414,26 +406,26 @@ def match_token_at_4(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'FeatureHeader') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) return 4 - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) @@ -441,132 +433,79 @@ def match_token_at_4(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 4 - # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 - def match_token_at_5(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'FeatureHeader') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 5 - if self.match_BackgroundLine(context, token): - self.end_rule(context, 'FeatureHeader') - self.start_rule(context, 'Background') - self.build(context, token) - return 6 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'FeatureHeader') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 11 - if self.match_TagLine(context, token): - self.end_rule(context, 'FeatureHeader') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'FeatureHeader') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 12 - if self.match_RuleLine(context, token): - self.end_rule(context, 'FeatureHeader') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 5 - - state_comment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 5 # GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 - def match_token_at_6(self, token: Token, context: ParserContext) -> int: + def match_token_at_5(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Background') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 6 + return 5 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 8 + return 6 if self.match_StepLine(context, token): self.start_rule(context, 'Step') self.build(context, token) - return 9 + return 7 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 7 + return 6 - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" + state_comment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 6 - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_7(self, token: Token, context: ParserContext) -> int: + return 5 + # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_6(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 8 + return 6 if self.match_StepLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'Step') self.build(context, token) - return 9 + return 7 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -574,7 +513,7 @@ def match_token_at_7(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') @@ -582,106 +521,54 @@ def match_token_at_7(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) - return 7 + return 6 - state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 7 - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 - def match_token_at_8(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'Background') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 8 - if self.match_StepLine(context, token): - self.start_rule(context, 'Step') - self.build(context, token) - return 9 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'Background') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 11 - if self.match_TagLine(context, token): - self.end_rule(context, 'Background') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Background') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 12 - if self.match_RuleLine(context, token): - self.end_rule(context, 'Background') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 8 - - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 8 + return 6 # GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 - def match_token_at_9(self, token: Token, context: ParserContext) -> int: + def match_token_at_7(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.start_rule(context, 'DataTable') self.build(context, token) - return 10 + return 8 if self.match_DocStringSeparator(context, token): self.start_rule(context, 'DocString') self.build(context, token) - return 49 + return 41 if self.match_StepLine(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 9 + return 7 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Step') @@ -689,7 +576,7 @@ def match_token_at_9(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') @@ -697,54 +584,54 @@ def match_token_at_9(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 9 + return 7 if self.match_Empty(context, token): self.build(context, token) - return 9 + return 7 - state_comment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 9 + return 7 # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_10(self, token: Token, context: ParserContext) -> int: + def match_token_at_8(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.build(context, token) - return 10 + return 8 if self.match_StepLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 9 + return 7 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DataTable') @@ -753,7 +640,7 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -762,7 +649,7 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -770,7 +657,7 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -778,71 +665,72 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 10 + return 8 if self.match_Empty(context, token): self.build(context, token) - return 10 + return 8 - state_comment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 10 + return 8 # GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - def match_token_at_11(self, token: Token, context: ParserContext) -> int: + def match_token_at_9(self, token: Token, context: ParserContext) -> int: if self.match_TagLine(context, token): self.build(context, token) - return 11 + return 9 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Tags') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_Comment(context, token): self.build(context, token) - return 11 + return 9 if self.match_Empty(context, token): self.build(context, token) - return 11 + return 9 - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 11 + return 9 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - def match_token_at_12(self, token: Token, context: ParserContext) -> int: + def match_token_at_10(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 12 + return 10 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 14 + return 11 if self.match_StepLine(context, token): self.start_rule(context, 'Step') self.build(context, token) - return 15 + return 12 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Scenario') @@ -850,7 +738,7 @@ def match_token_at_12(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') @@ -858,64 +746,63 @@ def match_token_at_12(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 13 + return 11 - state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 12 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_13(self, token: Token, context: ParserContext) -> int: + return 10 + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_11(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 14 + return 11 if self.match_StepLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'Step') self.build(context, token) - return 15 + return 12 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -924,7 +811,7 @@ def match_token_at_13(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -933,13 +820,13 @@ def match_token_at_13(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -947,7 +834,7 @@ def match_token_at_13(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -955,116 +842,48 @@ def match_token_at_13(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): - self.build(context, token) - return 13 - - state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 13 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - def match_token_at_14(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 14 - if self.match_StepLine(context, token): - self.start_rule(context, 'Step') - self.build(context, token) - return 15 - if self.match_TagLine(context, token): - if self.lookahead_1(context, token): - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 17 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') self.build(context, token) return 11 - if self.match_TagLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ExamplesLine(context, token): - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Examples') - self.build(context, token) - return 18 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 12 - if self.match_RuleLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 14 - state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 14 + return 11 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - def match_token_at_15(self, token: Token, context: ParserContext) -> int: + def match_token_at_12(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.start_rule(context, 'DataTable') self.build(context, token) - return 16 + return 13 if self.match_DocStringSeparator(context, token): self.start_rule(context, 'DocString') self.build(context, token) - return 47 + return 39 if self.match_StepLine(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 15 + return 12 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Step') @@ -1073,7 +892,7 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -1082,13 +901,13 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -1096,7 +915,7 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -1104,24 +923,24 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 15 + return 12 if self.match_Empty(context, token): self.build(context, token) - return 15 + return 12 - state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 15 + return 12 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_16(self, token: Token, context: ParserContext) -> int: + def match_token_at_13(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -1129,16 +948,16 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.build(context, token) - return 16 + return 13 if self.match_StepLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 15 + return 12 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'DataTable') @@ -1146,7 +965,7 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DataTable') @@ -1156,7 +975,7 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -1166,14 +985,14 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -1182,7 +1001,7 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -1191,49 +1010,49 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 16 + return 13 if self.match_Empty(context, token): self.build(context, token) - return 16 + return 13 - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 16 + return 13 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - def match_token_at_17(self, token: Token, context: ParserContext) -> int: + def match_token_at_14(self, token: Token, context: ParserContext) -> int: if self.match_TagLine(context, token): self.build(context, token) - return 17 + return 14 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Tags') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_Comment(context, token): self.build(context, token) - return 17 + return 14 if self.match_Empty(context, token): self.build(context, token) - return 17 + return 14 - state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 17 + return 14 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - def match_token_at_18(self, token: Token, context: ParserContext) -> int: + def match_token_at_15(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') @@ -1241,17 +1060,18 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 18 + return 15 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 20 + return 16 if self.match_TableRow(context, token): self.start_rule(context, 'ExamplesTable') self.build(context, token) - return 21 + return 17 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Examples') @@ -1259,7 +1079,7 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Examples') @@ -1269,7 +1089,7 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') @@ -1279,14 +1099,14 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') @@ -1295,7 +1115,7 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') @@ -1304,22 +1124,22 @@ def match_token_at_18(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 19 + return 16 - state_comment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 18 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_19(self, token: Token, context: ParserContext) -> int: + return 15 + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_16(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Examples') @@ -1328,16 +1148,15 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 20 + return 16 if self.match_TableRow(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesTable') self.build(context, token) - return 21 + return 17 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Description') @@ -1346,7 +1165,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -1357,7 +1176,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Examples') @@ -1368,7 +1187,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Examples') @@ -1376,7 +1195,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Examples') @@ -1386,7 +1205,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Examples') @@ -1396,46 +1215,45 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) - return 19 + return 16 - state_comment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 19 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - def match_token_at_20(self, token: Token, context: ParserContext) -> int: + return 16 + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + def match_token_at_17(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 20 + return 34 if self.match_TableRow(context, token): - self.start_rule(context, 'ExamplesTable') self.build(context, token) - return 21 + return 17 if self.match_TagLine(context, token): if self.lookahead_1(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -1443,8 +1261,9 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -1453,15 +1272,17 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -1469,8 +1290,9 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): + self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -1478,157 +1300,73 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 + if self.match_Comment(context, token): + self.build(context, token) + return 17 if self.match_Empty(context, token): self.build(context, token) - return 20 + return 17 - state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 20 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - def match_token_at_21(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_TableRow(context, token): - self.build(context, token) - return 21 - if self.match_TagLine(context, token): - if self.lookahead_1(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 17 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 11 - if self.match_TagLine(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ExamplesLine(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Examples') - self.build(context, token) - return 18 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 12 - if self.match_RuleLine(context, token): - self.end_rule(context, 'ExamplesTable') - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Comment(context, token): - self.build(context, token) - return 21 - if self.match_Empty(context, token): - self.build(context, token) - return 21 - - state_comment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" - token.detach - expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 21 + return 17 # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - def match_token_at_22(self, token: Token, context: ParserContext) -> int: + def match_token_at_18(self, token: Token, context: ParserContext) -> int: if self.match_TagLine(context, token): self.build(context, token) - return 22 + return 18 if self.match_RuleLine(context, token): self.end_rule(context, 'Tags') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 22 + return 18 if self.match_Empty(context, token): self.build(context, token) - return 22 + return 18 - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" + state_comment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 22 + return 18 # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - def match_token_at_23(self, token: Token, context: ParserContext) -> int: + def match_token_at_19(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'RuleHeader') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 25 + return 20 if self.match_BackgroundLine(context, token): self.end_rule(context, 'RuleHeader') self.start_rule(context, 'Background') self.build(context, token) - return 26 + return 21 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'RuleHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'RuleHeader') self.end_rule(context, 'Rule') @@ -1636,52 +1374,51 @@ def match_token_at_23(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'RuleHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'RuleHeader') self.end_rule(context, 'Rule') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 24 + return 20 - state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" + state_comment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 23 - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_24(self, token: Token, context: ParserContext) -> int: + return 19 + # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_20(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'RuleHeader') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 25 + return 20 if self.match_BackgroundLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'RuleHeader') self.start_rule(context, 'Background') self.build(context, token) - return 26 + return 21 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -1689,7 +1426,7 @@ def match_token_at_24(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'RuleHeader') @@ -1698,14 +1435,14 @@ def match_token_at_24(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'RuleHeader') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'RuleHeader') @@ -1713,100 +1450,45 @@ def match_token_at_24(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) - return 24 + return 20 - state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 24 - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - def match_token_at_25(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'RuleHeader') - self.end_rule(context, 'Rule') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 25 - if self.match_BackgroundLine(context, token): - self.end_rule(context, 'RuleHeader') - self.start_rule(context, 'Background') - self.build(context, token) - return 26 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'RuleHeader') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 31 - if self.match_TagLine(context, token): - self.end_rule(context, 'RuleHeader') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'RuleHeader') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 32 - if self.match_RuleLine(context, token): - self.end_rule(context, 'RuleHeader') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 25 - - state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 25 + return 20 # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - def match_token_at_26(self, token: Token, context: ParserContext) -> int: + def match_token_at_21(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Background') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 26 + return 21 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 28 + return 22 if self.match_StepLine(context, token): self.start_rule(context, 'Step') self.build(context, token) - return 29 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Background') self.end_rule(context, 'Rule') @@ -1814,51 +1496,50 @@ def match_token_at_26(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Background') self.end_rule(context, 'Rule') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 27 + return 22 - state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" + state_comment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 26 - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_27(self, token: Token, context: ParserContext) -> int: + return 21 + # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_22(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 28 + return 22 if self.match_StepLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'Step') self.build(context, token) - return 29 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -1866,7 +1547,7 @@ def match_token_at_27(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') @@ -1875,14 +1556,14 @@ def match_token_at_27(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Background') @@ -1890,120 +1571,65 @@ def match_token_at_27(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) - return 27 + return 22 - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 27 - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - def match_token_at_28(self, token: Token, context: ParserContext) -> int: + return 22 + # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 + def match_token_at_23(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): + self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 - if self.match_Comment(context, token): + return 34 + if self.match_TableRow(context, token): + self.start_rule(context, 'DataTable') self.build(context, token) - return 28 + return 24 + if self.match_DocStringSeparator(context, token): + self.start_rule(context, 'DocString') + self.build(context, token) + return 37 if self.match_StepLine(context, token): + self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 29 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): + self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): + self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.end_rule(context, 'Rule') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Background') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 32 - if self.match_RuleLine(context, token): - self.end_rule(context, 'Background') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 28 - - state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 28 - # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - def match_token_at_29(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'Step') - self.end_rule(context, 'Background') - self.end_rule(context, 'Rule') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_TableRow(context, token): - self.start_rule(context, 'DataTable') - self.build(context, token) - return 30 - if self.match_DocStringSeparator(context, token): - self.start_rule(context, 'DocString') - self.build(context, token) - return 45 - if self.match_StepLine(context, token): - self.end_rule(context, 'Step') - self.start_rule(context, 'Step') - self.build(context, token) - return 29 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'Step') - self.end_rule(context, 'Background') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 31 - if self.match_TagLine(context, token): - self.end_rule(context, 'Step') - self.end_rule(context, 'Background') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Background') @@ -2011,24 +1637,24 @@ def match_token_at_29(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 29 + return 23 if self.match_Empty(context, token): self.build(context, token) - return 29 + return 23 - state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 29 + return 23 # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_30(self, token: Token, context: ParserContext) -> int: + def match_token_at_24(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -2036,16 +1662,16 @@ def match_token_at_30(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.build(context, token) - return 30 + return 24 if self.match_StepLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 29 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DataTable') @@ -2054,7 +1680,7 @@ def match_token_at_30(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -2064,7 +1690,7 @@ def match_token_at_30(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -2072,7 +1698,7 @@ def match_token_at_30(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -2081,72 +1707,73 @@ def match_token_at_30(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 30 + return 24 if self.match_Empty(context, token): self.build(context, token) - return 30 + return 24 - state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 30 + return 24 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - def match_token_at_31(self, token: Token, context: ParserContext) -> int: + def match_token_at_25(self, token: Token, context: ParserContext) -> int: if self.match_TagLine(context, token): self.build(context, token) - return 31 + return 25 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Tags') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_Comment(context, token): self.build(context, token) - return 31 + return 25 if self.match_Empty(context, token): self.build(context, token) - return 31 + return 25 - state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 31 + return 25 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - def match_token_at_32(self, token: Token, context: ParserContext) -> int: + def match_token_at_26(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Empty(context, token): self.build(context, token) - return 32 + return 26 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 34 + return 27 if self.match_StepLine(context, token): self.start_rule(context, 'Step') self.build(context, token) - return 35 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Scenario') @@ -2154,7 +1781,7 @@ def match_token_at_32(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') @@ -2163,19 +1790,19 @@ def match_token_at_32(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') @@ -2183,22 +1810,22 @@ def match_token_at_32(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.start_rule(context, 'Description') self.build(context, token) - return 33 + return 27 - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 32 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_33(self, token: Token, context: ParserContext) -> int: + return 26 + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_27(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -2206,23 +1833,22 @@ def match_token_at_33(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): - self.end_rule(context, 'Description') self.build(context, token) - return 34 + return 27 if self.match_StepLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'Step') self.build(context, token) - return 35 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Description') @@ -2231,7 +1857,7 @@ def match_token_at_33(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -2241,13 +1867,13 @@ def match_token_at_33(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -2255,7 +1881,7 @@ def match_token_at_33(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Description') self.end_rule(context, 'Scenario') @@ -2264,92 +1890,21 @@ def match_token_at_33(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): self.build(context, token) - return 33 + return 27 - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 33 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - def match_token_at_34(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Comment(context, token): - self.build(context, token) - return 34 - if self.match_StepLine(context, token): - self.start_rule(context, 'Step') - self.build(context, token) - return 35 - if self.match_TagLine(context, token): - if self.lookahead_1(context, token): - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 37 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 31 - if self.match_TagLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ExamplesLine(context, token): - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Examples') - self.build(context, token) - return 38 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 32 - if self.match_RuleLine(context, token): - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Empty(context, token): - self.build(context, token) - return 34 - - state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 34 + return 27 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - def match_token_at_35(self, token: Token, context: ParserContext) -> int: + def match_token_at_28(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -2357,27 +1912,27 @@ def match_token_at_35(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.start_rule(context, 'DataTable') self.build(context, token) - return 36 + return 29 if self.match_DocStringSeparator(context, token): self.start_rule(context, 'DocString') self.build(context, token) - return 43 + return 35 if self.match_StepLine(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 35 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'Step') @@ -2386,7 +1941,7 @@ def match_token_at_35(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -2396,13 +1951,13 @@ def match_token_at_35(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -2410,7 +1965,7 @@ def match_token_at_35(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') @@ -2419,24 +1974,24 @@ def match_token_at_35(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 35 + return 28 if self.match_Empty(context, token): self.build(context, token) - return 35 + return 28 - state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 35 + return 28 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_36(self, token: Token, context: ParserContext) -> int: + def match_token_at_29(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') @@ -2445,153 +2000,37 @@ def match_token_at_36(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.build(context, token) - return 36 + return 29 if self.match_StepLine(context, token): self.end_rule(context, 'DataTable') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 35 - if self.match_TagLine(context, token): - if self.lookahead_1(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 37 - if self.match_TagLine(context, token): - if self.lookahead_0(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Tags') - self.build(context, token) - return 31 - if self.match_TagLine(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.start_rule(context, 'Tags') - self.build(context, token) - return 22 - if self.match_ExamplesLine(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.start_rule(context, 'ExamplesDefinition') - self.start_rule(context, 'Examples') - self.build(context, token) - return 38 - if self.match_ScenarioLine(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'ScenarioDefinition') - self.start_rule(context, 'Scenario') - self.build(context, token) - return 32 - if self.match_RuleLine(context, token): - self.end_rule(context, 'DataTable') - self.end_rule(context, 'Step') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.start_rule(context, 'Rule') - self.start_rule(context, 'RuleHeader') - self.build(context, token) - return 23 - if self.match_Comment(context, token): - self.build(context, token) - return 36 - if self.match_Empty(context, token): - self.build(context, token) - return 36 - - state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" - token.detach - expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 36 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - def match_token_at_37(self, token: Token, context: ParserContext) -> int: - if self.match_TagLine(context, token): - self.build(context, token) - return 37 - if self.match_ExamplesLine(context, token): - self.end_rule(context, 'Tags') - self.start_rule(context, 'Examples') - self.build(context, token) - return 38 - if self.match_Comment(context, token): - self.build(context, token) - return 37 - if self.match_Empty(context, token): - self.build(context, token) - return 37 - - state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" - token.detach - expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] - error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) - if self.stop_at_first_error: - raise error - self.add_error(context, error) - return 37 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - def match_token_at_38(self, token: Token, context: ParserContext) -> int: - if self.match_EOF(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') - self.end_rule(context, 'Scenario') - self.end_rule(context, 'ScenarioDefinition') - self.end_rule(context, 'Rule') - self.end_rule(context, 'Feature') - self.build(context, token) - return 42 - if self.match_Empty(context, token): - self.build(context, token) - return 38 - if self.match_Comment(context, token): - self.build(context, token) - return 40 - if self.match_TableRow(context, token): - self.start_rule(context, 'ExamplesTable') - self.build(context, token) - return 41 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Rule') @@ -2599,50 +2038,76 @@ def match_token_at_38(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): - self.end_rule(context, 'Examples') - self.end_rule(context, 'ExamplesDefinition') + self.end_rule(context, 'DataTable') + self.end_rule(context, 'Step') self.end_rule(context, 'Scenario') self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Rule') self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 - if self.match_Other(context, token): - self.start_rule(context, 'Description') + return 19 + if self.match_Comment(context, token): self.build(context, token) - return 39 + return 29 + if self.match_Empty(context, token): + self.build(context, token) + return 29 - state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach - expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 38 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_39(self, token: Token, context: ParserContext) -> int: + return 29 + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + def match_token_at_30(self, token: Token, context: ParserContext) -> int: + if self.match_TagLine(context, token): + self.build(context, token) + return 30 + if self.match_ExamplesLine(context, token): + self.end_rule(context, 'Tags') + self.start_rule(context, 'Examples') + self.build(context, token) + return 31 + if self.match_Comment(context, token): + self.build(context, token) + return 30 + if self.match_Empty(context, token): + self.build(context, token) + return 30 + + state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + token.detach + expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] + error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) + if self.stop_at_first_error: + raise error + self.add_error(context, error) + return 30 + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + def match_token_at_31(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2650,28 +2115,28 @@ def match_token_at_39(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 + if self.match_Empty(context, token): + self.build(context, token) + return 31 if self.match_Comment(context, token): - self.end_rule(context, 'Description') + self.start_rule(context, 'Description') self.build(context, token) - return 40 + return 32 if self.match_TableRow(context, token): - self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesTable') self.build(context, token) - return 41 + return 33 if self.match_TagLine(context, token): if self.lookahead_1(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2679,9 +2144,8 @@ def match_token_at_39(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2691,17 +2155,15 @@ def match_token_at_39(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2709,9 +2171,8 @@ def match_token_at_39(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): - self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2720,22 +2181,24 @@ def match_token_at_39(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Other(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 39 + return 32 - state_comment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 39 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - def match_token_at_40(self, token: Token, context: ParserContext) -> int: + return 31 + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_32(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2743,24 +2206,27 @@ def match_token_at_40(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_Comment(context, token): self.build(context, token) - return 40 + return 32 if self.match_TableRow(context, token): + self.end_rule(context, 'Description') self.start_rule(context, 'ExamplesTable') self.build(context, token) - return 41 + return 33 if self.match_TagLine(context, token): if self.lookahead_1(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2768,8 +2234,9 @@ def match_token_at_40(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2779,15 +2246,17 @@ def match_token_at_40(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2795,8 +2264,9 @@ def match_token_at_40(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): + self.end_rule(context, 'Description') self.end_rule(context, 'Examples') self.end_rule(context, 'ExamplesDefinition') self.end_rule(context, 'Scenario') @@ -2805,21 +2275,21 @@ def match_token_at_40(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 - if self.match_Empty(context, token): + return 19 + if self.match_Other(context, token): self.build(context, token) - return 40 + return 32 - state_comment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 40 + return 32 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - def match_token_at_41(self, token: Token, context: ParserContext) -> int: + def match_token_at_33(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') @@ -2829,10 +2299,10 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_TableRow(context, token): self.build(context, token) - return 41 + return 33 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'ExamplesTable') @@ -2841,7 +2311,7 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'ExamplesTable') @@ -2852,7 +2322,7 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') @@ -2864,7 +2334,7 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') @@ -2872,7 +2342,7 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') @@ -2882,7 +2352,7 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'ExamplesTable') self.end_rule(context, 'Examples') @@ -2893,41 +2363,41 @@ def match_token_at_41(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 41 + return 33 if self.match_Empty(context, token): self.build(context, token) - return 41 + return 33 - state_comment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 41 + return 33 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_43(self, token: Token, context: ParserContext) -> int: + def match_token_at_35(self, token: Token, context: ParserContext) -> int: if self.match_DocStringSeparator(context, token): self.build(context, token) - return 44 + return 36 if self.match_Other(context, token): self.build(context, token) - return 43 + return 35 - state_comment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 43 + return 35 # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_44(self, token: Token, context: ParserContext) -> int: + def match_token_at_36(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -2936,13 +2406,13 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_StepLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 35 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'DocString') @@ -2950,7 +2420,7 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 37 + return 30 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DocString') @@ -2960,7 +2430,7 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -2971,14 +2441,14 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 38 + return 31 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -2987,7 +2457,7 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -2997,41 +2467,41 @@ def match_token_at_44(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 44 + return 36 if self.match_Empty(context, token): self.build(context, token) - return 44 + return 36 - state_comment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 44 + return 36 # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_45(self, token: Token, context: ParserContext) -> int: + def match_token_at_37(self, token: Token, context: ParserContext) -> int: if self.match_DocStringSeparator(context, token): self.build(context, token) - return 46 + return 38 if self.match_Other(context, token): self.build(context, token) - return 45 + return 37 - state_comment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 45 + return 37 # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_46(self, token: Token, context: ParserContext) -> int: + def match_token_at_38(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3039,13 +2509,13 @@ def match_token_at_46(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Rule') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_StepLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 29 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DocString') @@ -3054,7 +2524,7 @@ def match_token_at_46(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 31 + return 25 if self.match_TagLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3064,7 +2534,7 @@ def match_token_at_46(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3072,7 +2542,7 @@ def match_token_at_46(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 32 + return 26 if self.match_RuleLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3081,41 +2551,41 @@ def match_token_at_46(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 46 + return 38 if self.match_Empty(context, token): self.build(context, token) - return 46 + return 38 - state_comment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 46 + return 38 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_47(self, token: Token, context: ParserContext) -> int: + def match_token_at_39(self, token: Token, context: ParserContext) -> int: if self.match_DocStringSeparator(context, token): self.build(context, token) - return 48 + return 40 if self.match_Other(context, token): self.build(context, token) - return 47 + return 39 - state_comment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 47 + return 39 # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_48(self, token: Token, context: ParserContext) -> int: + def match_token_at_40(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3123,13 +2593,13 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'ScenarioDefinition') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_StepLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 15 + return 12 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'DocString') @@ -3137,7 +2607,7 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 17 + return 14 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DocString') @@ -3147,7 +2617,7 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3157,14 +2627,14 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ExamplesLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'ExamplesDefinition') self.start_rule(context, 'Examples') self.build(context, token) - return 18 + return 15 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3173,7 +2643,7 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3182,54 +2652,54 @@ def match_token_at_48(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 48 + return 40 if self.match_Empty(context, token): self.build(context, token) - return 48 + return 40 - state_comment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 48 + return 40 # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_49(self, token: Token, context: ParserContext) -> int: + def match_token_at_41(self, token: Token, context: ParserContext) -> int: if self.match_DocStringSeparator(context, token): self.build(context, token) - return 50 + return 42 if self.match_Other(context, token): self.build(context, token) - return 49 + return 41 - state_comment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 49 + return 41 # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_50(self, token: Token, context: ParserContext) -> int: + def match_token_at_42(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.end_rule(context, 'Background') self.end_rule(context, 'Feature') self.build(context, token) - return 42 + return 34 if self.match_StepLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') self.start_rule(context, 'Step') self.build(context, token) - return 9 + return 7 if self.match_TagLine(context, token): if self.lookahead_0(context, token): self.end_rule(context, 'DocString') @@ -3238,7 +2708,7 @@ def match_token_at_50(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Tags') self.build(context, token) - return 11 + return 9 if self.match_TagLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3247,7 +2717,7 @@ def match_token_at_50(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'RuleHeader') self.start_rule(context, 'Tags') self.build(context, token) - return 22 + return 18 if self.match_ScenarioLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3255,7 +2725,7 @@ def match_token_at_50(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'ScenarioDefinition') self.start_rule(context, 'Scenario') self.build(context, token) - return 12 + return 10 if self.match_RuleLine(context, token): self.end_rule(context, 'DocString') self.end_rule(context, 'Step') @@ -3263,22 +2733,22 @@ def match_token_at_50(self, token: Token, context: ParserContext) -> int: self.start_rule(context, 'Rule') self.start_rule(context, 'RuleHeader') self.build(context, token) - return 23 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 50 + return 42 if self.match_Empty(context, token): self.build(context, token) - return 50 + return 42 - state_comment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = UnexpectedEOFException(token, expected_tokens, state_comment) if token.eof() else UnexpectedTokenException(token, expected_tokens, state_comment) if self.stop_at_first_error: raise error self.add_error(context, error) - return 50 + return 42 def lookahead_0(self, context: ParserContext, currentToken: Token) -> bool: currentToken.detach token = None diff --git a/ruby/lib/gherkin/parser.rb b/ruby/lib/gherkin/parser.rb index fa0f290b7..eb3ed9203 100644 --- a/ruby/lib/gherkin/parser.rb +++ b/ruby/lib/gherkin/parser.rb @@ -38,8 +38,8 @@ module Gherkin :DataTable, # DataTable! := #TableRow+ :DocString, # DocString! := #DocStringSeparator #Other* #DocStringSeparator :Tags, # Tags! := #TagLine+ - :DescriptionHelper, # DescriptionHelper := #Empty* Description? #Comment* - :Description, # Description! := #Other+ + :DescriptionHelper, # DescriptionHelper := #Empty* Description? + :Description, # Description! := (#Other | #Comment)+ ] class ParserContext @@ -286,8 +286,6 @@ def match_token(state, token, context) match_token_at_state32(token, context) when 33 match_token_at_state33(token, context) - when 34 - match_token_at_state34(token, context) when 35 match_token_at_state35(token, context) when 36 @@ -302,22 +300,8 @@ def match_token(state, token, context) match_token_at_state40(token, context) when 41 match_token_at_state41(token, context) - when 43 - match_token_at_state43(token, context) - when 44 - match_token_at_state44(token, context) - when 45 - match_token_at_state45(token, context) - when 46 - match_token_at_state46(token, context) - when 47 - match_token_at_state47(token, context) - when 48 - match_token_at_state48(token, context) - when 49 - match_token_at_state49(token, context) - when 50 - match_token_at_state50(token, context) + when 42 + match_token_at_state42(token, context) else raise InvalidOperationException, "Unknown state: #{state}" end @@ -328,7 +312,7 @@ def match_token(state, token, context) def match_token_at_state0(token, context) if match_EOF(context, token) build(context, token); - return 42 + return 34 end if match_Language(context, token) start_rule(context, :Feature); @@ -428,21 +412,22 @@ def match_token_at_state3(token, context) end_rule(context, :FeatureHeader); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); return 3 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 5 + return 4 end if match_BackgroundLine(context, token) end_rule(context, :FeatureHeader); start_rule(context, :Background); build(context, token); - return 6 + return 5 end if match_TagLine(context, token) if lookahead0(context, token) @@ -450,7 +435,7 @@ def match_token_at_state3(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -459,21 +444,21 @@ def match_token_at_state3(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :FeatureHeader); start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :FeatureHeader); start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); @@ -489,26 +474,25 @@ def match_token_at_state3(token, context) add_error(context, error) return 3 end - # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 def match_token_at_state4(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :FeatureHeader); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 5 + return 4 end if match_BackgroundLine(context, token) end_rule(context, :Description); end_rule(context, :FeatureHeader); start_rule(context, :Background); build(context, token); - return 6 + return 5 end if match_TagLine(context, token) if lookahead0(context, token) @@ -517,7 +501,7 @@ def match_token_at_state4(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -527,7 +511,7 @@ def match_token_at_state4(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -535,7 +519,7 @@ def match_token_at_state4(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -543,14 +527,14 @@ def match_token_at_state4(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); return 4 end - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) @@ -558,88 +542,27 @@ def match_token_at_state4(token, context) add_error(context, error) return 4 end - # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 - def match_token_at_state5(token, context) - if match_EOF(context, token) - end_rule(context, :FeatureHeader); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 5 - end - if match_BackgroundLine(context, token) - end_rule(context, :FeatureHeader); - start_rule(context, :Background); - build(context, token); - return 6 - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :FeatureHeader); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 11 - end - end - if match_TagLine(context, token) - end_rule(context, :FeatureHeader); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ScenarioLine(context, token) - end_rule(context, :FeatureHeader); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 12 - end - if match_RuleLine(context, token) - end_rule(context, :FeatureHeader); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 5 - end - - state_comment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 5 - end # GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 - def match_token_at_state6(token, context) + def match_token_at_state5(token, context) if match_EOF(context, token) end_rule(context, :Background); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 6 + return 5 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 8 + return 6 end if match_StepLine(context, token) start_rule(context, :Step); build(context, token); - return 9 + return 7 end if match_TagLine(context, token) if lookahead0(context, token) @@ -647,7 +570,7 @@ def match_token_at_state6(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -656,55 +579,54 @@ def match_token_at_state6(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Background); start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Background); start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 7 + return 6 end - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" + state_comment = "State: 5 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 6 + return 5 end - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state7(token, context) + # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state6(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Background); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 8 + return 6 end if match_StepLine(context, token) end_rule(context, :Description); start_rule(context, :Step); build(context, token); - return 9 + return 7 end if match_TagLine(context, token) if lookahead0(context, token) @@ -713,7 +635,7 @@ def match_token_at_state7(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -723,7 +645,7 @@ def match_token_at_state7(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -731,7 +653,7 @@ def match_token_at_state7(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -739,106 +661,45 @@ def match_token_at_state7(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); - return 7 + return 6 end - state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 7 - end - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state8(token, context) - if match_EOF(context, token) - end_rule(context, :Background); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 8 - end - if match_StepLine(context, token) - start_rule(context, :Step); - build(context, token); - return 9 - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :Background); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 11 - end - end - if match_TagLine(context, token) - end_rule(context, :Background); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ScenarioLine(context, token) - end_rule(context, :Background); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 12 - end - if match_RuleLine(context, token) - end_rule(context, :Background); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 8 - end - - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 8 + return 6 end # GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 - def match_token_at_state9(token, context) + def match_token_at_state7(token, context) if match_EOF(context, token) end_rule(context, :Step); end_rule(context, :Background); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) start_rule(context, :DataTable); build(context, token); - return 10 + return 8 end if match_DocStringSeparator(context, token) start_rule(context, :DocString); build(context, token); - return 49 + return 41 end if match_StepLine(context, token) end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 9 + return 7 end if match_TagLine(context, token) if lookahead0(context, token) @@ -847,7 +708,7 @@ def match_token_at_state9(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -857,7 +718,7 @@ def match_token_at_state9(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Step); @@ -865,7 +726,7 @@ def match_token_at_state9(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Step); @@ -873,45 +734,45 @@ def match_token_at_state9(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 9 + return 7 end if match_Empty(context, token) build(context, token); - return 9 + return 7 end - state_comment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 9 + return 7 end # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_state10(token, context) + def match_token_at_state8(token, context) if match_EOF(context, token) end_rule(context, :DataTable); end_rule(context, :Step); end_rule(context, :Background); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) build(context, token); - return 10 + return 8 end if match_StepLine(context, token) end_rule(context, :DataTable); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 9 + return 7 end if match_TagLine(context, token) if lookahead0(context, token) @@ -921,7 +782,7 @@ def match_token_at_state10(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -932,7 +793,7 @@ def match_token_at_state10(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :DataTable); @@ -941,7 +802,7 @@ def match_token_at_state10(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :DataTable); @@ -950,82 +811,83 @@ def match_token_at_state10(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 10 + return 8 end if match_Empty(context, token) build(context, token); - return 10 + return 8 end - state_comment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 10 + return 8 end # GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - def match_token_at_state11(token, context) + def match_token_at_state9(token, context) if match_TagLine(context, token) build(context, token); - return 11 + return 9 end if match_ScenarioLine(context, token) end_rule(context, :Tags); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_Comment(context, token) build(context, token); - return 11 + return 9 end if match_Empty(context, token) build(context, token); - return 11 + return 9 end - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 11 + return 9 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - def match_token_at_state12(token, context) + def match_token_at_state10(token, context) if match_EOF(context, token) end_rule(context, :Scenario); end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 12 + return 10 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 14 + return 11 end if match_StepLine(context, token) start_rule(context, :Step); build(context, token); - return 15 + return 12 end if match_TagLine(context, token) if lookahead1(context, token) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1035,7 +897,7 @@ def match_token_at_state12(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1045,13 +907,13 @@ def match_token_at_state12(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :Scenario); @@ -1059,7 +921,7 @@ def match_token_at_state12(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Scenario); @@ -1067,42 +929,41 @@ def match_token_at_state12(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 13 + return 11 end - state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 12 + return 10 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state13(token, context) + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state11(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Scenario); end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 14 + return 11 end if match_StepLine(context, token) end_rule(context, :Description); start_rule(context, :Step); build(context, token); - return 15 + return 12 end if match_TagLine(context, token) if lookahead1(context, token) @@ -1110,7 +971,7 @@ def match_token_at_state13(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1121,7 +982,7 @@ def match_token_at_state13(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1132,14 +993,14 @@ def match_token_at_state13(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Description); start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -1148,7 +1009,7 @@ def match_token_at_state13(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -1157,126 +1018,46 @@ def match_token_at_state13(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); - return 13 + return 11 end - state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 13 - end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state14(token, context) - if match_EOF(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 14 - end - if match_StepLine(context, token) - start_rule(context, :Step); - build(context, token); - return 15 - end - if match_TagLine(context, token) - if lookahead1(context, token) - start_rule(context, :ExamplesDefinition); - start_rule(context, :Tags); - build(context, token); - return 17 - end - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 11 - end - end - if match_TagLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ExamplesLine(context, token) - start_rule(context, :ExamplesDefinition); - start_rule(context, :Examples); - build(context, token); - return 18 - end - if match_ScenarioLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 12 - end - if match_RuleLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 14 - end - - state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 14 + return 11 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - def match_token_at_state15(token, context) + def match_token_at_state12(token, context) if match_EOF(context, token) end_rule(context, :Step); end_rule(context, :Scenario); end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) start_rule(context, :DataTable); build(context, token); - return 16 + return 13 end if match_DocStringSeparator(context, token) start_rule(context, :DocString); build(context, token); - return 47 + return 39 end if match_StepLine(context, token) end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 15 + return 12 end if match_TagLine(context, token) if lookahead1(context, token) @@ -1284,7 +1065,7 @@ def match_token_at_state15(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1295,7 +1076,7 @@ def match_token_at_state15(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1306,14 +1087,14 @@ def match_token_at_state15(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Step); start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :Step); @@ -1322,7 +1103,7 @@ def match_token_at_state15(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Step); @@ -1331,27 +1112,27 @@ def match_token_at_state15(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 15 + return 12 end if match_Empty(context, token) build(context, token); - return 15 + return 12 end - state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 15 + return 12 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_state16(token, context) + def match_token_at_state13(token, context) if match_EOF(context, token) end_rule(context, :DataTable); end_rule(context, :Step); @@ -1359,18 +1140,18 @@ def match_token_at_state16(token, context) end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) build(context, token); - return 16 + return 13 end if match_StepLine(context, token) end_rule(context, :DataTable); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 15 + return 12 end if match_TagLine(context, token) if lookahead1(context, token) @@ -1379,7 +1160,7 @@ def match_token_at_state16(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1391,7 +1172,7 @@ def match_token_at_state16(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1403,7 +1184,7 @@ def match_token_at_state16(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :DataTable); @@ -1411,7 +1192,7 @@ def match_token_at_state16(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :DataTable); @@ -1421,7 +1202,7 @@ def match_token_at_state16(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :DataTable); @@ -1431,56 +1212,56 @@ def match_token_at_state16(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 16 + return 13 end if match_Empty(context, token) build(context, token); - return 16 + return 13 end - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 16 + return 13 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - def match_token_at_state17(token, context) + def match_token_at_state14(token, context) if match_TagLine(context, token) build(context, token); - return 17 + return 14 end if match_ExamplesLine(context, token) end_rule(context, :Tags); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_Comment(context, token) build(context, token); - return 17 + return 14 end if match_Empty(context, token) build(context, token); - return 17 + return 14 end - state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 17 + return 14 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - def match_token_at_state18(token, context) + def match_token_at_state15(token, context) if match_EOF(context, token) end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); @@ -1488,20 +1269,21 @@ def match_token_at_state18(token, context) end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 18 + return 15 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 20 + return 16 end if match_TableRow(context, token) start_rule(context, :ExamplesTable); build(context, token); - return 21 + return 17 end if match_TagLine(context, token) if lookahead1(context, token) @@ -1510,7 +1292,7 @@ def match_token_at_state18(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1522,7 +1304,7 @@ def match_token_at_state18(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1534,7 +1316,7 @@ def match_token_at_state18(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Examples); @@ -1542,7 +1324,7 @@ def match_token_at_state18(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :Examples); @@ -1552,7 +1334,7 @@ def match_token_at_state18(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Examples); @@ -1562,24 +1344,24 @@ def match_token_at_state18(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 19 + return 16 end - state_comment = "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 18 + return 15 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state19(token, context) + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state16(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Examples); @@ -1588,18 +1370,17 @@ def match_token_at_state19(token, context) end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 20 + return 16 end if match_TableRow(context, token) end_rule(context, :Description); start_rule(context, :ExamplesTable); build(context, token); - return 21 + return 17 end if match_TagLine(context, token) if lookahead1(context, token) @@ -1609,7 +1390,7 @@ def match_token_at_state19(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -1622,7 +1403,7 @@ def match_token_at_state19(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -1635,7 +1416,7 @@ def match_token_at_state19(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Description); @@ -1644,7 +1425,7 @@ def match_token_at_state19(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -1655,7 +1436,7 @@ def match_token_at_state19(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -1666,53 +1447,51 @@ def match_token_at_state19(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); - return 19 + return 16 end - state_comment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 19 + return 16 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state20(token, context) + # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 + def match_token_at_state17(token, context) if match_EOF(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); end_rule(context, :Scenario); end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 20 + return 34 end if match_TableRow(context, token) - start_rule(context, :ExamplesTable); build(context, token); - return 21 + return 17 end if match_TagLine(context, token) if lookahead1(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) if lookahead0(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); end_rule(context, :Scenario); @@ -1720,10 +1499,11 @@ def match_token_at_state20(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); end_rule(context, :Scenario); @@ -1732,17 +1512,19 @@ def match_token_at_state20(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); end_rule(context, :Scenario); @@ -1750,9 +1532,10 @@ def match_token_at_state20(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) + end_rule(context, :ExamplesTable); end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); end_rule(context, :Scenario); @@ -1760,171 +1543,76 @@ def match_token_at_state20(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 + end + if match_Comment(context, token) + build(context, token); + return 17 end if match_Empty(context, token) build(context, token); - return 20 + return 17 end - state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 20 + return 17 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - def match_token_at_state21(token, context) - if match_EOF(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Feature); + # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 + def match_token_at_state18(token, context) + if match_TagLine(context, token) build(context, token); - return 42 + return 18 end - if match_TableRow(context, token) + if match_RuleLine(context, token) + end_rule(context, :Tags); build(context, token); - return 21 - end - if match_TagLine(context, token) - if lookahead1(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - start_rule(context, :ExamplesDefinition); - start_rule(context, :Tags); - build(context, token); - return 17 - end - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 11 - end - end - if match_TagLine(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ExamplesLine(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - start_rule(context, :ExamplesDefinition); - start_rule(context, :Examples); - build(context, token); - return 18 - end - if match_ScenarioLine(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 12 - end - if match_RuleLine(context, token) - end_rule(context, :ExamplesTable); - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Comment(context, token) - build(context, token); - return 21 - end - if match_Empty(context, token) - build(context, token); - return 21 - end - - state_comment = "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" - token.detach - expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 21 - end - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - def match_token_at_state22(token, context) - if match_TagLine(context, token) - build(context, token); - return 22 - end - if match_RuleLine(context, token) - end_rule(context, :Tags); - build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 22 + return 18 end if match_Empty(context, token) build(context, token); - return 22 + return 18 end - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" + state_comment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 22 + return 18 end # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - def match_token_at_state23(token, context) + def match_token_at_state19(token, context) if match_EOF(context, token) end_rule(context, :RuleHeader); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 23 + return 19 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 25 + return 20 end if match_BackgroundLine(context, token) end_rule(context, :RuleHeader); start_rule(context, :Background); build(context, token); - return 26 + return 21 end if match_TagLine(context, token) if lookahead0(context, token) @@ -1932,7 +1620,7 @@ def match_token_at_state23(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -1942,14 +1630,14 @@ def match_token_at_state23(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :RuleHeader); start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :RuleHeader); @@ -1957,43 +1645,42 @@ def match_token_at_state23(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 24 + return 20 end - state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" + state_comment = "State: 19 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 23 + return 19 end - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state24(token, context) + # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state20(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :RuleHeader); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 25 + return 20 end if match_BackgroundLine(context, token) end_rule(context, :Description); end_rule(context, :RuleHeader); start_rule(context, :Background); build(context, token); - return 26 + return 21 end if match_TagLine(context, token) if lookahead0(context, token) @@ -2002,7 +1689,7 @@ def match_token_at_state24(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2013,7 +1700,7 @@ def match_token_at_state24(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -2021,7 +1708,7 @@ def match_token_at_state24(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -2030,107 +1717,43 @@ def match_token_at_state24(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); - return 24 + return 20 end - state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 24 - end - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - def match_token_at_state25(token, context) - if match_EOF(context, token) - end_rule(context, :RuleHeader); - end_rule(context, :Rule); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 25 - end - if match_BackgroundLine(context, token) - end_rule(context, :RuleHeader); - start_rule(context, :Background); - build(context, token); - return 26 - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :RuleHeader); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 31 - end - end - if match_TagLine(context, token) - end_rule(context, :RuleHeader); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ScenarioLine(context, token) - end_rule(context, :RuleHeader); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 32 - end - if match_RuleLine(context, token) - end_rule(context, :RuleHeader); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 25 - end - - state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 25 + return 20 end # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - def match_token_at_state26(token, context) + def match_token_at_state21(token, context) if match_EOF(context, token) end_rule(context, :Background); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 26 + return 21 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 28 + return 22 end if match_StepLine(context, token) start_rule(context, :Step); build(context, token); - return 29 + return 23 end if match_TagLine(context, token) if lookahead0(context, token) @@ -2138,7 +1761,7 @@ def match_token_at_state26(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2148,14 +1771,14 @@ def match_token_at_state26(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Background); start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Background); @@ -2163,42 +1786,41 @@ def match_token_at_state26(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 27 + return 22 end - state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" + state_comment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 26 + return 21 end - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state27(token, context) + # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state22(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Background); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 28 + return 22 end if match_StepLine(context, token) end_rule(context, :Description); start_rule(context, :Step); build(context, token); - return 29 + return 23 end if match_TagLine(context, token) if lookahead0(context, token) @@ -2207,7 +1829,7 @@ def match_token_at_state27(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2218,7 +1840,7 @@ def match_token_at_state27(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -2226,7 +1848,7 @@ def match_token_at_state27(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -2235,110 +1857,46 @@ def match_token_at_state27(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) - build(context, token); - return 27 - end - - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 27 - end - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state28(token, context) - if match_EOF(context, token) - end_rule(context, :Background); - end_rule(context, :Rule); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 28 - end - if match_StepLine(context, token) - start_rule(context, :Step); - build(context, token); - return 29 - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :Background); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 31 - end - end - if match_TagLine(context, token) - end_rule(context, :Background); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); build(context, token); return 22 end - if match_ScenarioLine(context, token) - end_rule(context, :Background); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 32 - end - if match_RuleLine(context, token) - end_rule(context, :Background); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 28 - end - state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 28 + return 22 end # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - def match_token_at_state29(token, context) + def match_token_at_state23(token, context) if match_EOF(context, token) end_rule(context, :Step); end_rule(context, :Background); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) start_rule(context, :DataTable); build(context, token); - return 30 + return 24 end if match_DocStringSeparator(context, token) start_rule(context, :DocString); build(context, token); - return 45 + return 37 end if match_StepLine(context, token) end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 29 + return 23 end if match_TagLine(context, token) if lookahead0(context, token) @@ -2347,7 +1905,7 @@ def match_token_at_state29(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2358,7 +1916,7 @@ def match_token_at_state29(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :Step); @@ -2366,7 +1924,7 @@ def match_token_at_state29(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Step); @@ -2375,27 +1933,27 @@ def match_token_at_state29(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 29 + return 23 end if match_Empty(context, token) build(context, token); - return 29 + return 23 end - state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" + state_comment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 29 + return 23 end # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_state30(token, context) + def match_token_at_state24(token, context) if match_EOF(context, token) end_rule(context, :DataTable); end_rule(context, :Step); @@ -2403,18 +1961,18 @@ def match_token_at_state30(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) build(context, token); - return 30 + return 24 end if match_StepLine(context, token) end_rule(context, :DataTable); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 29 + return 23 end if match_TagLine(context, token) if lookahead0(context, token) @@ -2424,7 +1982,7 @@ def match_token_at_state30(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2436,7 +1994,7 @@ def match_token_at_state30(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :DataTable); @@ -2445,7 +2003,7 @@ def match_token_at_state30(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :DataTable); @@ -2455,83 +2013,84 @@ def match_token_at_state30(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 30 + return 24 end if match_Empty(context, token) build(context, token); - return 30 + return 24 end - state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 30 + return 24 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - def match_token_at_state31(token, context) + def match_token_at_state25(token, context) if match_TagLine(context, token) build(context, token); - return 31 + return 25 end if match_ScenarioLine(context, token) end_rule(context, :Tags); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_Comment(context, token) build(context, token); - return 31 + return 25 end if match_Empty(context, token) build(context, token); - return 31 + return 25 end - state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 31 + return 25 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - def match_token_at_state32(token, context) + def match_token_at_state26(token, context) if match_EOF(context, token) end_rule(context, :Scenario); end_rule(context, :ScenarioDefinition); end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 32 + return 26 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 34 + return 27 end if match_StepLine(context, token) start_rule(context, :Step); build(context, token); - return 35 + return 28 end if match_TagLine(context, token) if lookahead1(context, token) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -2541,7 +2100,7 @@ def match_token_at_state32(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2552,13 +2111,13 @@ def match_token_at_state32(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :Scenario); @@ -2566,7 +2125,7 @@ def match_token_at_state32(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Scenario); @@ -2575,24 +2134,24 @@ def match_token_at_state32(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 33 + return 27 end - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" + state_comment = "State: 26 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 32 + return 26 end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state33(token, context) + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state27(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Scenario); @@ -2600,18 +2159,17 @@ def match_token_at_state33(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 34 + return 27 end if match_StepLine(context, token) end_rule(context, :Description); start_rule(context, :Step); build(context, token); - return 35 + return 28 end if match_TagLine(context, token) if lookahead1(context, token) @@ -2619,7 +2177,7 @@ def match_token_at_state33(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -2630,7 +2188,7 @@ def match_token_at_state33(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2642,14 +2200,14 @@ def match_token_at_state33(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Description); start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -2658,7 +2216,7 @@ def match_token_at_state33(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -2668,106 +2226,23 @@ def match_token_at_state33(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) build(context, token); - return 33 + return 27 end - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 33 - end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state34(token, context) - if match_EOF(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 34 - end - if match_StepLine(context, token) - start_rule(context, :Step); - build(context, token); - return 35 - end - if match_TagLine(context, token) - if lookahead1(context, token) - start_rule(context, :ExamplesDefinition); - start_rule(context, :Tags); - build(context, token); - return 37 - end - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 31 - end - end - if match_TagLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ExamplesLine(context, token) - start_rule(context, :ExamplesDefinition); - start_rule(context, :Examples); - build(context, token); - return 38 - end - if match_ScenarioLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); - build(context, token); - return 32 - end - if match_RuleLine(context, token) - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 34 - end - - state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 34 + return 27 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - def match_token_at_state35(token, context) + def match_token_at_state28(token, context) if match_EOF(context, token) end_rule(context, :Step); end_rule(context, :Scenario); @@ -2775,23 +2250,23 @@ def match_token_at_state35(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) start_rule(context, :DataTable); build(context, token); - return 36 + return 29 end if match_DocStringSeparator(context, token) start_rule(context, :DocString); build(context, token); - return 43 + return 35 end if match_StepLine(context, token) end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 35 + return 28 end if match_TagLine(context, token) if lookahead1(context, token) @@ -2799,7 +2274,7 @@ def match_token_at_state35(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -2810,7 +2285,7 @@ def match_token_at_state35(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2822,14 +2297,14 @@ def match_token_at_state35(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Step); start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :Step); @@ -2838,7 +2313,7 @@ def match_token_at_state35(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Step); @@ -2848,27 +2323,27 @@ def match_token_at_state35(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 35 + return 28 end if match_Empty(context, token) build(context, token); - return 35 + return 28 end - state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" + state_comment = "State: 28 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 35 + return 28 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 - def match_token_at_state36(token, context) + def match_token_at_state29(token, context) if match_EOF(context, token) end_rule(context, :DataTable); end_rule(context, :Step); @@ -2877,18 +2352,18 @@ def match_token_at_state36(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) build(context, token); - return 36 + return 29 end if match_StepLine(context, token) end_rule(context, :DataTable); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 35 + return 28 end if match_TagLine(context, token) if lookahead1(context, token) @@ -2897,7 +2372,7 @@ def match_token_at_state36(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -2909,7 +2384,7 @@ def match_token_at_state36(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -2922,7 +2397,7 @@ def match_token_at_state36(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :DataTable); @@ -2930,7 +2405,7 @@ def match_token_at_state36(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :DataTable); @@ -2940,7 +2415,7 @@ def match_token_at_state36(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :DataTable); @@ -2951,56 +2426,56 @@ def match_token_at_state36(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 36 + return 29 end if match_Empty(context, token) build(context, token); - return 36 + return 29 end - state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" + state_comment = "State: 29 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 36 + return 29 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - def match_token_at_state37(token, context) + def match_token_at_state30(token, context) if match_TagLine(context, token) build(context, token); - return 37 + return 30 end if match_ExamplesLine(context, token) end_rule(context, :Tags); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_Comment(context, token) build(context, token); - return 37 + return 30 end if match_Empty(context, token) build(context, token); - return 37 + return 30 end - state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" + state_comment = "State: 30 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" token.detach expected_tokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 37 + return 30 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - def match_token_at_state38(token, context) + def match_token_at_state31(token, context) if match_EOF(context, token) end_rule(context, :Examples); end_rule(context, :ExamplesDefinition); @@ -3009,20 +2484,21 @@ def match_token_at_state38(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Empty(context, token) build(context, token); - return 38 + return 31 end if match_Comment(context, token) + start_rule(context, :Description); build(context, token); - return 40 + return 32 end if match_TableRow(context, token) start_rule(context, :ExamplesTable); build(context, token); - return 41 + return 33 end if match_TagLine(context, token) if lookahead1(context, token) @@ -3031,7 +2507,7 @@ def match_token_at_state38(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -3043,7 +2519,7 @@ def match_token_at_state38(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -3056,7 +2532,7 @@ def match_token_at_state38(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Examples); @@ -3064,7 +2540,7 @@ def match_token_at_state38(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :Examples); @@ -3074,7 +2550,7 @@ def match_token_at_state38(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Examples); @@ -3085,24 +2561,24 @@ def match_token_at_state38(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) start_rule(context, :Description); build(context, token); - return 39 + return 32 end - state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" + state_comment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" token.detach expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 38 + return 31 end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state39(token, context) + # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0 + def match_token_at_state32(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Examples); @@ -3112,18 +2588,17 @@ def match_token_at_state39(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_Comment(context, token) - end_rule(context, :Description); build(context, token); - return 40 + return 32 end if match_TableRow(context, token) end_rule(context, :Description); start_rule(context, :ExamplesTable); build(context, token); - return 41 + return 33 end if match_TagLine(context, token) if lookahead1(context, token) @@ -3133,7 +2608,7 @@ def match_token_at_state39(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -3146,7 +2621,7 @@ def match_token_at_state39(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -3160,7 +2635,7 @@ def match_token_at_state39(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :Description); @@ -3169,7 +2644,7 @@ def match_token_at_state39(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :Description); @@ -3180,7 +2655,7 @@ def match_token_at_state39(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :Description); @@ -3192,120 +2667,23 @@ def match_token_at_state39(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Other(context, token) - build(context, token); - return 39 - end - - state_comment = "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] - error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) - raise error if (stop_at_first_error) - add_error(context, error) - return 39 - end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state40(token, context) - if match_EOF(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - end_rule(context, :Feature); - build(context, token); - return 42 - end - if match_Comment(context, token) - build(context, token); - return 40 - end - if match_TableRow(context, token) - start_rule(context, :ExamplesTable); - build(context, token); - return 41 - end - if match_TagLine(context, token) - if lookahead1(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - start_rule(context, :ExamplesDefinition); - start_rule(context, :Tags); - build(context, token); - return 37 - end - end - if match_TagLine(context, token) - if lookahead0(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Tags); - build(context, token); - return 31 - end - end - if match_TagLine(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - start_rule(context, :Tags); - build(context, token); - return 22 - end - if match_ExamplesLine(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - start_rule(context, :ExamplesDefinition); - start_rule(context, :Examples); - build(context, token); - return 38 - end - if match_ScenarioLine(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - start_rule(context, :ScenarioDefinition); - start_rule(context, :Scenario); build(context, token); return 32 end - if match_RuleLine(context, token) - end_rule(context, :Examples); - end_rule(context, :ExamplesDefinition); - end_rule(context, :Scenario); - end_rule(context, :ScenarioDefinition); - end_rule(context, :Rule); - start_rule(context, :Rule); - start_rule(context, :RuleHeader); - build(context, token); - return 23 - end - if match_Empty(context, token) - build(context, token); - return 40 - end - state_comment = "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 40 + return 32 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - def match_token_at_state41(token, context) + def match_token_at_state33(token, context) if match_EOF(context, token) end_rule(context, :ExamplesTable); end_rule(context, :Examples); @@ -3315,11 +2693,11 @@ def match_token_at_state41(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_TableRow(context, token) build(context, token); - return 41 + return 33 end if match_TagLine(context, token) if lookahead1(context, token) @@ -3329,7 +2707,7 @@ def match_token_at_state41(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -3342,7 +2720,7 @@ def match_token_at_state41(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -3356,7 +2734,7 @@ def match_token_at_state41(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :ExamplesTable); @@ -3365,7 +2743,7 @@ def match_token_at_state41(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :ExamplesTable); @@ -3376,7 +2754,7 @@ def match_token_at_state41(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :ExamplesTable); @@ -3388,46 +2766,46 @@ def match_token_at_state41(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 41 + return 33 end if match_Empty(context, token) build(context, token); - return 41 + return 33 end - state_comment = "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" + state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" token.detach expected_tokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 41 + return 33 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_state43(token, context) + def match_token_at_state35(token, context) if match_DocStringSeparator(context, token) build(context, token); - return 44 + return 36 end if match_Other(context, token) build(context, token); - return 43 + return 35 end - state_comment = "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 43 + return 35 end # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_state44(token, context) + def match_token_at_state36(token, context) if match_EOF(context, token) end_rule(context, :DocString); end_rule(context, :Step); @@ -3436,14 +2814,14 @@ def match_token_at_state44(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_StepLine(context, token) end_rule(context, :DocString); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 35 + return 28 end if match_TagLine(context, token) if lookahead1(context, token) @@ -3452,7 +2830,7 @@ def match_token_at_state44(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 37 + return 30 end end if match_TagLine(context, token) @@ -3464,7 +2842,7 @@ def match_token_at_state44(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -3477,7 +2855,7 @@ def match_token_at_state44(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :DocString); @@ -3485,7 +2863,7 @@ def match_token_at_state44(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 38 + return 31 end if match_ScenarioLine(context, token) end_rule(context, :DocString); @@ -3495,7 +2873,7 @@ def match_token_at_state44(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :DocString); @@ -3506,46 +2884,46 @@ def match_token_at_state44(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 44 + return 36 end if match_Empty(context, token) build(context, token); - return 44 + return 36 end - state_comment = "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 44 + return 36 end # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_state45(token, context) + def match_token_at_state37(token, context) if match_DocStringSeparator(context, token) build(context, token); - return 46 + return 38 end if match_Other(context, token) build(context, token); - return 45 + return 37 end - state_comment = "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 37 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 45 + return 37 end # GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_state46(token, context) + def match_token_at_state38(token, context) if match_EOF(context, token) end_rule(context, :DocString); end_rule(context, :Step); @@ -3553,14 +2931,14 @@ def match_token_at_state46(token, context) end_rule(context, :Rule); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_StepLine(context, token) end_rule(context, :DocString); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 29 + return 23 end if match_TagLine(context, token) if lookahead0(context, token) @@ -3570,7 +2948,7 @@ def match_token_at_state46(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) @@ -3582,7 +2960,7 @@ def match_token_at_state46(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :DocString); @@ -3591,7 +2969,7 @@ def match_token_at_state46(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 32 + return 26 end if match_RuleLine(context, token) end_rule(context, :DocString); @@ -3601,46 +2979,46 @@ def match_token_at_state46(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 46 + return 38 end if match_Empty(context, token) build(context, token); - return 46 + return 38 end - state_comment = "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 38 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 46 + return 38 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_state47(token, context) + def match_token_at_state39(token, context) if match_DocStringSeparator(context, token) build(context, token); - return 48 + return 40 end if match_Other(context, token) build(context, token); - return 47 + return 39 end - state_comment = "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 39 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 47 + return 39 end # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_state48(token, context) + def match_token_at_state40(token, context) if match_EOF(context, token) end_rule(context, :DocString); end_rule(context, :Step); @@ -3648,14 +3026,14 @@ def match_token_at_state48(token, context) end_rule(context, :ScenarioDefinition); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_StepLine(context, token) end_rule(context, :DocString); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 15 + return 12 end if match_TagLine(context, token) if lookahead1(context, token) @@ -3664,7 +3042,7 @@ def match_token_at_state48(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Tags); build(context, token); - return 17 + return 14 end end if match_TagLine(context, token) @@ -3676,7 +3054,7 @@ def match_token_at_state48(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -3688,7 +3066,7 @@ def match_token_at_state48(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ExamplesLine(context, token) end_rule(context, :DocString); @@ -3696,7 +3074,7 @@ def match_token_at_state48(token, context) start_rule(context, :ExamplesDefinition); start_rule(context, :Examples); build(context, token); - return 18 + return 15 end if match_ScenarioLine(context, token) end_rule(context, :DocString); @@ -3706,7 +3084,7 @@ def match_token_at_state48(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :DocString); @@ -3716,60 +3094,60 @@ def match_token_at_state48(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 48 + return 40 end if match_Empty(context, token) build(context, token); - return 48 + return 40 end - state_comment = "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 40 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 48 + return 40 end # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 - def match_token_at_state49(token, context) + def match_token_at_state41(token, context) if match_DocStringSeparator(context, token) build(context, token); - return 50 + return 42 end if match_Other(context, token) build(context, token); - return 49 + return 41 end - state_comment = "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" + state_comment = "State: 41 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" token.detach expected_tokens = ["#DocStringSeparator", "#Other"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 49 + return 41 end # GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 - def match_token_at_state50(token, context) + def match_token_at_state42(token, context) if match_EOF(context, token) end_rule(context, :DocString); end_rule(context, :Step); end_rule(context, :Background); end_rule(context, :Feature); build(context, token); - return 42 + return 34 end if match_StepLine(context, token) end_rule(context, :DocString); end_rule(context, :Step); start_rule(context, :Step); build(context, token); - return 9 + return 7 end if match_TagLine(context, token) if lookahead0(context, token) @@ -3779,7 +3157,7 @@ def match_token_at_state50(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 11 + return 9 end end if match_TagLine(context, token) @@ -3790,7 +3168,7 @@ def match_token_at_state50(token, context) start_rule(context, :RuleHeader); start_rule(context, :Tags); build(context, token); - return 22 + return 18 end if match_ScenarioLine(context, token) end_rule(context, :DocString); @@ -3799,7 +3177,7 @@ def match_token_at_state50(token, context) start_rule(context, :ScenarioDefinition); start_rule(context, :Scenario); build(context, token); - return 12 + return 10 end if match_RuleLine(context, token) end_rule(context, :DocString); @@ -3808,24 +3186,24 @@ def match_token_at_state50(token, context) start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end if match_Comment(context, token) build(context, token); - return 50 + return 42 end if match_Empty(context, token) build(context, token); - return 50 + return 42 end - state_comment = "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" + state_comment = "State: 42 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" token.detach expected_tokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"] error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment) raise error if (stop_at_first_error) add_error(context, error) - return 50 + return 42 end def lookahead0(context, current_token) diff --git a/testdata/good/descriptions.feature.tokens b/testdata/good/descriptions.feature.tokens index 0c2658f47..1b468a776 100644 --- a/testdata/good/descriptions.feature.tokens +++ b/testdata/good/descriptions.feature.tokens @@ -34,7 +34,7 @@ (34:1)Other:/ This description/ (35:1)Other:/ has a comment right after/ (36:1)Comment:/ # this is another comment/ -(37:1)Empty:// +(37:1)Other:// (38:5)StepLine:(Context)Given /the minimalism/ (39:1)Empty:// (40:3)ScenarioLine:()Scenario/description with escaped docstring separator/ diff --git a/testdata/good/descriptions_with_comments.feature b/testdata/good/descriptions_with_comments.feature new file mode 100644 index 000000000..891398ddd --- /dev/null +++ b/testdata/good/descriptions_with_comments.feature @@ -0,0 +1,54 @@ +Feature: Descriptions with comments everywhere + This is a description + # comment + with a comment in the middle and at the end + # comment 2 + + Scenario: two lines + This description + # comment + # comment 2 + has two lines and two comments in the middle and is indented with two spaces + Given the minimalism + +Scenario: without indentation +This is a description without indentation +# comment +and a comment in the middle and at the end +# comment 2 + + Given the minimalism + + Scenario: empty lines in the middle + This description + # comment + + has an empty line and a comment in the middle + Given the minimalism + + Scenario: empty lines around + + # comment + This description + has an empty lines around + # comment + + Given the minimalism + + Scenario Outline: scenario outline with a description +# comment +This is a scenario outline description with comments +# comment 2 +in the middle and before and at the end +# comment 3 + Given the minimalism + + Examples: examples with description +# comment +This is an examples description +# comment +with a comment in the middle +# comment + + | foo | + | bar | diff --git a/testdata/good/descriptions_with_comments.feature.ast.ndjson b/testdata/good/descriptions_with_comments.feature.ast.ndjson new file mode 100644 index 000000000..e3c1f2c4f --- /dev/null +++ b/testdata/good/descriptions_with_comments.feature.ast.ndjson @@ -0,0 +1 @@ +{"gherkinDocument":{"comments":[{"location":{"column":1,"line":3},"text":" # comment"},{"location":{"column":1,"line":5},"text":" # comment 2"},{"location":{"column":1,"line":9},"text":" # comment"},{"location":{"column":1,"line":10},"text":" # comment 2"},{"location":{"column":1,"line":16},"text":"# comment"},{"location":{"column":1,"line":18},"text":"# comment 2"},{"location":{"column":1,"line":24},"text":" # comment"},{"location":{"column":1,"line":31},"text":" # comment"},{"location":{"column":1,"line":34},"text":" # comment"},{"location":{"column":1,"line":39},"text":"# comment"},{"location":{"column":1,"line":41},"text":"# comment 2"},{"location":{"column":1,"line":43},"text":"# comment 3"},{"location":{"column":1,"line":47},"text":"# comment"},{"location":{"column":1,"line":49},"text":"# comment"},{"location":{"column":1,"line":51},"text":"# comment"}],"feature":{"children":[{"scenario":{"description":" This description\n has two lines and two comments in the middle and is indented with two spaces","examples":[],"id":"1","keyword":"Scenario","location":{"column":3,"line":7},"name":"two lines","steps":[{"id":"0","keyword":"Given ","keywordType":"Context","location":{"column":5,"line":12},"text":"the minimalism"}],"tags":[]}},{"scenario":{"description":"This is a description without indentation\nand a comment in the middle and at the end","examples":[],"id":"3","keyword":"Scenario","location":{"column":1,"line":14},"name":"without indentation","steps":[{"id":"2","keyword":"Given ","keywordType":"Context","location":{"column":3,"line":20},"text":"the minimalism"}],"tags":[]}},{"scenario":{"description":" This description\n\n has an empty line and a comment in the middle","examples":[],"id":"5","keyword":"Scenario","location":{"column":3,"line":22},"name":"empty lines in the middle","steps":[{"id":"4","keyword":"Given ","keywordType":"Context","location":{"column":5,"line":27},"text":"the minimalism"}],"tags":[]}},{"scenario":{"description":" This description\n has an empty lines around","examples":[],"id":"7","keyword":"Scenario","location":{"column":3,"line":29},"name":"empty lines around","steps":[{"id":"6","keyword":"Given ","keywordType":"Context","location":{"column":5,"line":36},"text":"the minimalism"}],"tags":[]}},{"scenario":{"description":"This is a scenario outline description with comments\nin the middle and before and at the end","examples":[{"description":"This is an examples description\nwith a comment in the middle","id":"11","keyword":"Examples","location":{"column":3,"line":46},"name":"examples with description","tableBody":[{"cells":[{"location":{"column":7,"line":54},"value":"bar"}],"id":"10","location":{"column":5,"line":54}}],"tableHeader":{"cells":[{"location":{"column":7,"line":53},"value":"foo"}],"id":"9","location":{"column":5,"line":53}},"tags":[]}],"id":"12","keyword":"Scenario Outline","location":{"column":3,"line":38},"name":"scenario outline with a description","steps":[{"id":"8","keyword":"Given ","keywordType":"Context","location":{"column":5,"line":44},"text":"the minimalism"}],"tags":[]}}],"description":" This is a description\n with a comment in the middle and at the end","keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Descriptions with comments everywhere","tags":[]},"uri":"../testdata/good/descriptions_with_comments.feature"}} diff --git a/testdata/good/descriptions_with_comments.feature.pickles.ndjson b/testdata/good/descriptions_with_comments.feature.pickles.ndjson new file mode 100644 index 000000000..120e48934 --- /dev/null +++ b/testdata/good/descriptions_with_comments.feature.pickles.ndjson @@ -0,0 +1,5 @@ +{"pickle":{"astNodeIds":["1"],"id":"14","language":"en","name":"two lines","steps":[{"astNodeIds":["0"],"id":"13","text":"the minimalism","type":"Context"}],"tags":[],"uri":"../testdata/good/descriptions_with_comments.feature"}} +{"pickle":{"astNodeIds":["3"],"id":"16","language":"en","name":"without indentation","steps":[{"astNodeIds":["2"],"id":"15","text":"the minimalism","type":"Context"}],"tags":[],"uri":"../testdata/good/descriptions_with_comments.feature"}} +{"pickle":{"astNodeIds":["5"],"id":"18","language":"en","name":"empty lines in the middle","steps":[{"astNodeIds":["4"],"id":"17","text":"the minimalism","type":"Context"}],"tags":[],"uri":"../testdata/good/descriptions_with_comments.feature"}} +{"pickle":{"astNodeIds":["7"],"id":"20","language":"en","name":"empty lines around","steps":[{"astNodeIds":["6"],"id":"19","text":"the minimalism","type":"Context"}],"tags":[],"uri":"../testdata/good/descriptions_with_comments.feature"}} +{"pickle":{"astNodeIds":["12","10"],"id":"22","language":"en","name":"scenario outline with a description","steps":[{"astNodeIds":["8","10"],"id":"21","text":"the minimalism","type":"Context"}],"tags":[],"uri":"../testdata/good/descriptions_with_comments.feature"}} diff --git a/testdata/good/descriptions_with_comments.feature.source.ndjson b/testdata/good/descriptions_with_comments.feature.source.ndjson new file mode 100644 index 000000000..ad4ca1c7d --- /dev/null +++ b/testdata/good/descriptions_with_comments.feature.source.ndjson @@ -0,0 +1 @@ +{"source":{"data":"Feature: Descriptions with comments everywhere\n This is a description\n # comment\n with a comment in the middle and at the end\n # comment 2\n\n Scenario: two lines\n This description\n # comment\n # comment 2\n has two lines and two comments in the middle and is indented with two spaces\n Given the minimalism\n\nScenario: without indentation\nThis is a description without indentation\n# comment\nand a comment in the middle and at the end\n# comment 2\n\n Given the minimalism\n\n Scenario: empty lines in the middle\n This description\n # comment\n\n has an empty line and a comment in the middle\n Given the minimalism\n\n Scenario: empty lines around\n\n # comment\n This description\n has an empty lines around\n # comment\n\n Given the minimalism\n\n Scenario Outline: scenario outline with a description\n# comment\nThis is a scenario outline description with comments\n# comment 2\nin the middle and before and at the end\n# comment 3\n Given the minimalism\n\n Examples: examples with description\n# comment\nThis is an examples description\n# comment\nwith a comment in the middle\n# comment\n\n | foo |\n | bar |\n","mediaType":"text/x.cucumber.gherkin+plain","uri":"../testdata/good/descriptions_with_comments.feature"}} diff --git a/testdata/good/descriptions_with_comments.feature.tokens b/testdata/good/descriptions_with_comments.feature.tokens new file mode 100644 index 000000000..d6b0c493d --- /dev/null +++ b/testdata/good/descriptions_with_comments.feature.tokens @@ -0,0 +1,55 @@ +(1:1)FeatureLine:()Feature/Descriptions with comments everywhere/ +(2:1)Other:/ This is a description/ +(3:1)Comment:/ # comment/ +(4:1)Other:/ with a comment in the middle and at the end/ +(5:1)Comment:/ # comment 2/ +(6:1)Other:// +(7:3)ScenarioLine:()Scenario/two lines/ +(8:1)Other:/ This description/ +(9:1)Comment:/ # comment/ +(10:1)Comment:/ # comment 2/ +(11:1)Other:/ has two lines and two comments in the middle and is indented with two spaces/ +(12:5)StepLine:(Context)Given /the minimalism/ +(13:1)Empty:// +(14:1)ScenarioLine:()Scenario/without indentation/ +(15:1)Other:/This is a description without indentation/ +(16:1)Comment:/# comment/ +(17:1)Other:/and a comment in the middle and at the end/ +(18:1)Comment:/# comment 2/ +(19:1)Other:// +(20:3)StepLine:(Context)Given /the minimalism/ +(21:1)Empty:// +(22:3)ScenarioLine:()Scenario/empty lines in the middle/ +(23:1)Other:/ This description/ +(24:1)Comment:/ # comment/ +(25:1)Other:// +(26:1)Other:/ has an empty line and a comment in the middle/ +(27:5)StepLine:(Context)Given /the minimalism/ +(28:1)Empty:// +(29:3)ScenarioLine:()Scenario/empty lines around/ +(30:1)Empty:// +(31:1)Comment:/ # comment/ +(32:1)Other:/ This description/ +(33:1)Other:/ has an empty lines around/ +(34:1)Comment:/ # comment/ +(35:1)Other:// +(36:5)StepLine:(Context)Given /the minimalism/ +(37:1)Empty:// +(38:3)ScenarioLine:()Scenario Outline/scenario outline with a description/ +(39:1)Comment:/# comment/ +(40:1)Other:/This is a scenario outline description with comments/ +(41:1)Comment:/# comment 2/ +(42:1)Other:/in the middle and before and at the end/ +(43:1)Comment:/# comment 3/ +(44:5)StepLine:(Context)Given /the minimalism/ +(45:1)Empty:// +(46:3)ExamplesLine:()Examples/examples with description/ +(47:1)Comment:/# comment/ +(48:1)Other:/This is an examples description/ +(49:1)Comment:/# comment/ +(50:1)Other:/with a comment in the middle/ +(51:1)Comment:/# comment/ +(52:1)Other:// +(53:5)TableRow://7:foo +(54:5)TableRow://7:bar +EOF