From 1815327d541af43474fef27b5ade530897cb43a0 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Mon, 9 Dec 2024 10:58:07 +0100 Subject: [PATCH 01/12] comments should not change parser state --- .../main/java/io/cucumber/gherkin/Parser.java | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/java/src/main/java/io/cucumber/gherkin/Parser.java b/java/src/main/java/io/cucumber/gherkin/Parser.java index b87e58824..914dcc1af 100644 --- a/java/src/main/java/io/cucumber/gherkin/Parser.java +++ b/java/src/main/java/io/cucumber/gherkin/Parser.java @@ -615,7 +615,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 5; + return 3; } if (match_BackgroundLine(context, token)) { @@ -690,9 +690,8 @@ private int matchTokenAt_4(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 5; + return 4; } if (match_BackgroundLine(context, token)) { @@ -850,7 +849,7 @@ private int matchTokenAt_6(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 8; + return 6; } if (match_StepLine(context, token)) { @@ -924,9 +923,8 @@ private int matchTokenAt_7(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 8; + return 7; } if (match_StepLine(context, token)) { @@ -1300,7 +1298,7 @@ private int matchTokenAt_12(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 14; + return 12; } if (match_StepLine(context, token)) { @@ -1396,9 +1394,8 @@ private int matchTokenAt_13(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 14; + return 13; } if (match_StepLine(context, token)) { @@ -1869,7 +1866,7 @@ private int matchTokenAt_18(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 20; + return 18; } if (match_TableRow(context, token)) { @@ -1979,9 +1976,8 @@ private int matchTokenAt_19(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 20; + return 19; } if (match_TableRow(context, token)) { @@ -2359,7 +2355,7 @@ private int matchTokenAt_23(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 25; + return 23; } if (match_BackgroundLine(context, token)) { @@ -2437,9 +2433,8 @@ private int matchTokenAt_24(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 25; + return 24; } if (match_BackgroundLine(context, token)) { @@ -2603,7 +2598,7 @@ private int matchTokenAt_26(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 28; + return 26; } if (match_StepLine(context, token)) { @@ -2682,7 +2677,7 @@ private int matchTokenAt_27(Token token, ParserContext context) { { endRule(context, RuleType.Description); build(context, token); - return 28; + return 27; } if (match_StepLine(context, token)) { @@ -3068,7 +3063,7 @@ private int matchTokenAt_32(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 34; + return 32; } if (match_StepLine(context, token)) { @@ -3167,9 +3162,8 @@ private int matchTokenAt_33(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 34; + return 33; } if (match_StepLine(context, token)) { @@ -3652,7 +3646,7 @@ private int matchTokenAt_38(Token token, ParserContext context) { if (match_Comment(context, token)) { build(context, token); - return 40; + return 38; } if (match_TableRow(context, token)) { @@ -3765,9 +3759,8 @@ private int matchTokenAt_39(Token token, ParserContext context) { } if (match_Comment(context, token)) { - endRule(context, RuleType.Description); build(context, token); - return 40; + return 39; } if (match_TableRow(context, token)) { From 9fed6d3948ecfdeccff69a223e7fef2ccdac56f5 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Tue, 10 Dec 2024 15:07:19 +0100 Subject: [PATCH 02/12] Description should be allowed to contain comments and empty lines --- c/include/rule_type.h | 4 +- c/src/parser.c | 1436 +++--- dotnet/Gherkin/Parser.cs | 2470 ++++------ elixir/lib/gherkin/parser.ex | 1568 ++----- gherkin.berp | 4 +- go/parser.go | 2076 +++------ .../main/java/io/cucumber/gherkin/Parser.java | 2117 +++------ javascript/src/Parser.ts | 2104 ++++----- perl/lib/Gherkin/Generated/Parser.pm | 2044 +++------ php/src-generated/Parser.php | 4019 ----------------- python/gherkin/parser.py | 1634 +++---- ruby/lib/gherkin/parser.rb | 1610 +++---- 12 files changed, 6151 insertions(+), 14935 deletions(-) delete mode 100644 php/src-generated/Parser.php diff --git a/c/include/rule_type.h b/c/include/rule_type.h index d7654b5ed..8dd7497b3 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 | #Comment)* Description? */ + Rule_Description, /* Description! := #Other+ ((#Empty | #Comment)+ #Other+)* */ Rule_Count } RuleType; diff --git a/c/src/parser.c b/c/src/parser.c index 96b23f486..b464b0e38 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 50; } if (match_Language(context, token)) { start_rule(context, Rule_Feature); @@ -393,7 +393,7 @@ 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 50; } if (match_Empty(context, token)) { build(context, token); @@ -401,13 +401,13 @@ static int match_token_at_3(Token* token, ParserContext* context) { } if (match_Comment(context, token)) { build(context, token); - return 5; + return 3; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Background); build(context, token); - return 6; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -415,7 +415,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 13; } } if (match_TagLine(context, token)) { @@ -424,21 +424,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 26; } 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 14; } 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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); @@ -461,10 +461,13 @@ static int match_token_at_4(Token* token, ParserContext* context) { end_rule(context, Rule_FeatureHeader); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 5; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); return 5; } @@ -473,7 +476,7 @@ static int match_token_at_4(Token* token, ParserContext* context) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Background); build(context, token); - return 6; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -482,7 +485,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 13; } } if (match_TagLine(context, token)) { @@ -492,7 +495,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -500,7 +503,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -508,7 +511,7 @@ 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 27; } if (match_Other(context, token)) { build(context, token); @@ -516,95 +519,128 @@ static int match_token_at_4(Token* token, ParserContext* context) { } /* "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + 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 4;} -/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 */ +/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ static int match_token_at_5(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 5; + } + if (match_Comment(context, token)) { + build(context, token); + return 5; + } + if (match_Other(context, token)) { + build(context, token); + return 6; + } + + /* "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 5;} +/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:2>#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_FeatureHeader); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 5; } if (match_Comment(context, token)) { build(context, token); return 5; } 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 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 13; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); 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; + return 26; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 14; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 5; + return 6; } - /* "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"; + /* "State: 6 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 5;} + return 6;} /* GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 */ -static int match_token_at_6(Token* token, ParserContext* context) { +static int match_token_at_7(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 50; } if (match_Empty(context, token)) { build(context, token); - return 6; + return 7; } if (match_Comment(context, token)) { build(context, token); - return 8; + return 7; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 9; + return 11; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -612,7 +648,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 13; } } if (match_TagLine(context, token)) { @@ -621,55 +657,58 @@ 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 26; } 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 14; } 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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 7; + return 8; } - /* "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" */ + /* "State: 7 - 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;} + return 7;} /* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_7(Token* token, ParserContext* context) { +static int match_token_at_8(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 9; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 8; + return 9; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 9; + return 11; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -678,7 +717,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 13; } } if (match_TagLine(context, token)) { @@ -688,7 +727,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -696,7 +735,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -704,106 +743,139 @@ 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 27; } if (match_Other(context, token)) { build(context, token); - return 7; + return 8; } - /* "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other: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 7;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_8(Token* token, ParserContext* context) { + return 8;} +/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_9(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 9; + } + if (match_Comment(context, token)) { + build(context, token); + return 9; + } + if (match_Other(context, token)) { + build(context, token); + return 10; + } + + /* "State: 9 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 9;} +/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_10(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 9; } if (match_Comment(context, token)) { build(context, token); - return 8; + return 9; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 9; + return 11; } 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 11; + return 13; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); 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; + return 26; } 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 12; + return 14; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 8; + return 10; } - /* "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"; + /* "State: 10 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 8;} + return 10;} /* 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_11(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 50; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 10; + return 12; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 49; + return 57; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 9; + return 11; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -812,7 +884,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 13; } } if (match_TagLine(context, token)) { @@ -822,7 +894,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -830,7 +902,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -838,45 +910,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 27; } if (match_Comment(context, token)) { build(context, token); - return 9; + return 11; } if (match_Empty(context, token)) { build(context, token); - return 9; + return 11; } - /* "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" */ + /* "State: 11 - 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 11;} /* 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_12(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 50; } if (match_TableRow(context, token)) { build(context, token); - return 10; + return 12; } 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 11; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -886,7 +958,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 13; } } if (match_TagLine(context, token)) { @@ -897,7 +969,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -906,7 +978,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -915,66 +987,66 @@ 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 27; } if (match_Comment(context, token)) { build(context, token); - return 10; + return 12; } if (match_Empty(context, token)) { build(context, token); - return 10; + return 12; } - /* "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 12 - 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 12;} /* 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_13(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 11; + return 13; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 14; } if (match_Comment(context, token)) { build(context, token); - return 11; + return 13; } if (match_Empty(context, token)) { build(context, token); - return 11; + return 13; } - /* "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 13 - 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 13;} /* 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_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; + return 50; } if (match_Empty(context, token)) { build(context, token); - return 12; + return 14; } if (match_Comment(context, token)) { build(context, token); @@ -983,14 +1055,14 @@ static int match_token_at_12(Token* token, ParserContext* context) { if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 15; + return 18; } 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 20; } } if (match_TagLine(context, token)) { @@ -1000,7 +1072,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 13; } } if (match_TagLine(context, token)) { @@ -1010,13 +1082,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 26; } if (match_ExamplesLine(context, token)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Scenario); @@ -1024,7 +1096,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Scenario); @@ -1032,42 +1104,45 @@ 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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 13; + return 15; } - /* "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ + /* "State: 14 - 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;} + return 14;} /* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_13(Token* token, ParserContext* context) { +static int match_token_at_15(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 16; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 14; + return 16; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 15; + return 18; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1075,7 +1150,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 20; } } if (match_TagLine(context, token)) { @@ -1086,7 +1161,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 13; } } if (match_TagLine(context, token)) { @@ -1097,14 +1172,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 26; } 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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1113,7 +1188,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1122,126 +1197,161 @@ 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 27; } if (match_Other(context, token)) { build(context, token); - return 13; + return 15; } - /* "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"; + /* "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other: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 13;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_14(Token* token, ParserContext* context) { + return 15;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_16(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 16; + } + if (match_Comment(context, token)) { + build(context, token); + return 16; + } + if (match_Other(context, token)) { + build(context, token); + return 17; + } + + /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 16;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_17(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 16; } if (match_Comment(context, token)) { build(context, token); - return 14; + return 16; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 15; + return 18; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 20; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); 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; + return 13; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); 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; + return 26; } 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 21; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); 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; + return 14; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); 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; + return 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 14; + return 17; } - /* "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: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 14;} + return 17;} /* 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_18(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 50; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 16; + return 19; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 47; + return 55; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 15; + return 18; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1249,7 +1359,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 20; } } if (match_TagLine(context, token)) { @@ -1260,7 +1370,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 13; } } if (match_TagLine(context, token)) { @@ -1271,14 +1381,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 26; } 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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -1287,7 +1397,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -1296,27 +1406,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 27; } if (match_Comment(context, token)) { build(context, token); - return 15; + return 18; } if (match_Empty(context, token)) { build(context, token); - return 15; + return 18; } - /* "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ + /* "State: 18 - 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 18;} /* 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_19(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -1324,18 +1434,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 50; } if (match_TableRow(context, token)) { build(context, token); - return 16; + return 19; } 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 18; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1344,7 +1454,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 20; } } if (match_TagLine(context, token)) { @@ -1356,7 +1466,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 13; } } if (match_TagLine(context, token)) { @@ -1368,7 +1478,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1376,7 +1486,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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1386,7 +1496,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -1396,56 +1506,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 27; } if (match_Comment(context, token)) { build(context, token); - return 16; + return 19; } if (match_Empty(context, token)) { build(context, token); - return 16; + return 19; } - /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 19 - 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 19;} /* 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_20(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 17; + return 20; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Examples); build(context, token); - return 18; + return 21; } if (match_Comment(context, token)) { build(context, token); - return 17; + return 20; } if (match_Empty(context, token)) { build(context, token); - return 17; + return 20; } - /* "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 20 - 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 20;} /* 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_21(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); @@ -1453,20 +1563,20 @@ 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 50; } if (match_Empty(context, token)) { build(context, token); - return 18; + return 21; } if (match_Comment(context, token)) { build(context, token); - return 20; + return 21; } if (match_TableRow(context, token)) { start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 25; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1475,7 +1585,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 20; } } if (match_TagLine(context, token)) { @@ -1487,7 +1597,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 13; } } if (match_TagLine(context, token)) { @@ -1499,7 +1609,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Examples); @@ -1507,7 +1617,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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Examples); @@ -1517,7 +1627,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Examples); @@ -1527,24 +1637,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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 19; + return 22; } - /* "State: 18 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ + /* "State: 21 - 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;} + return 21;} /* 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) { +static int match_token_at_22(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Examples); @@ -1553,18 +1663,21 @@ 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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 23; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 20; + return 23; } if (match_TableRow(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 25; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1574,7 +1687,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 20; } } if (match_TagLine(context, token)) { @@ -1587,7 +1700,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 13; } } if (match_TagLine(context, token)) { @@ -1600,7 +1713,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); @@ -1609,7 +1722,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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1620,7 +1733,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1630,54 +1743,85 @@ static int match_token_at_19(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); + build(context, token); + return 27; + } + if (match_Other(context, token)) { + build(context, token); + return 22; + } + + /* "State: 22 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other: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 22;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_23(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 23; + } + if (match_Comment(context, token)) { build(context, token); return 23; } if (match_Other(context, token)) { build(context, token); - return 19; + return 24; } - /* "State: 19 - GherkinDocument:0>Feature: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: 23 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 23;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_24(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); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 23; } if (match_Comment(context, token)) { build(context, token); - return 20; + return 23; } if (match_TableRow(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 21; + return 25; } 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 17; + return 20; } } 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); @@ -1685,10 +1829,11 @@ static int match_token_at_20(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 11; + return 13; } } 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); @@ -1697,17 +1842,19 @@ static int match_token_at_20(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 26; } 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 18; + return 21; } 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); @@ -1715,9 +1862,10 @@ static int match_token_at_20(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 12; + return 14; } 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); @@ -1725,23 +1873,23 @@ static int match_token_at_20(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 20; + return 24; } - /* "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"; + /* "State: 24 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 20;} + return 24;} /* 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) { +static int match_token_at_25(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_ExamplesTable); end_rule(context, Rule_Examples); @@ -1750,11 +1898,11 @@ static int match_token_at_21(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; } if (match_TableRow(context, token)) { build(context, token); - return 21; + return 25; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -1764,7 +1912,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 17; + return 20; } } if (match_TagLine(context, token)) { @@ -1777,7 +1925,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 13; } } if (match_TagLine(context, token)) { @@ -1790,7 +1938,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1799,7 +1947,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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1810,7 +1958,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -1821,75 +1969,75 @@ 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 27; } if (match_Comment(context, token)) { build(context, token); - return 21; + return 25; } if (match_Empty(context, token)) { build(context, token); - return 21; + return 25; } - /* "State: 21 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ + /* "State: 25 - 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 25;} /* 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_26(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 22; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Tags); build(context, token); - return 23; + return 27; } if (match_Comment(context, token)) { build(context, token); - return 22; + return 26; } if (match_Empty(context, token)) { build(context, token); - return 22; + return 26; } - /* "State: 22 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0" */ + /* "State: 26 - 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 26;} /* 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_27(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 50; } if (match_Empty(context, token)) { build(context, token); - return 23; + return 27; } if (match_Comment(context, token)) { build(context, token); - return 25; + return 27; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_RuleHeader); start_rule(context, Rule_Background); build(context, token); - return 26; + return 31; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -1897,7 +2045,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 37; } } if (match_TagLine(context, token)) { @@ -1907,14 +2055,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 26; } 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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_RuleHeader); @@ -1922,43 +2070,46 @@ 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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 24; + return 28; } - /* "State: 23 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0" */ + /* "State: 27 - 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;} + return 27;} /* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_24(Token* token, ParserContext* context) { +static int match_token_at_28(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 29; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 25; + return 29; } 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 31; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -1967,7 +2118,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 37; } } if (match_TagLine(context, token)) { @@ -1978,7 +2129,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -1986,7 +2137,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -1995,107 +2146,140 @@ 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 27; } if (match_Other(context, token)) { build(context, token); - return 24; + return 28; } - /* "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 28 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other: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 24;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_25(Token* token, ParserContext* context) { + return 28;} +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_29(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 29; + } + if (match_Comment(context, token)) { + build(context, token); + return 29; + } + if (match_Other(context, token)) { + build(context, token); + return 30; + } + + /* "State: 29 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 29;} +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_30(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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 29; } if (match_Comment(context, token)) { build(context, token); - return 25; + return 29; } 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 31; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 37; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); 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 26; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 38; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 25; + return 30; } - /* "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: 30 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 25;} + return 30;} /* GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 */ -static int match_token_at_26(Token* token, ParserContext* context) { +static int match_token_at_31(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; + return 50; } if (match_Empty(context, token)) { build(context, token); - return 26; + return 31; } if (match_Comment(context, token)) { build(context, token); - return 28; + return 31; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 29; + return 35; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2103,7 +2287,7 @@ static int match_token_at_26(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 37; } } if (match_TagLine(context, token)) { @@ -2113,14 +2297,14 @@ static int match_token_at_26(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 26; } 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; + return 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Background); @@ -2128,42 +2312,45 @@ static int match_token_at_26(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 27; + return 32; } - /* "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" */ + /* "State: 31 - 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 26;} + return 31;} /* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_27(Token* token, ParserContext* context) { +static int match_token_at_32(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; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 33; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 28; + return 33; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 29; + return 35; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2172,7 +2359,7 @@ static int match_token_at_27(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 37; } } if (match_TagLine(context, token)) { @@ -2183,7 +2370,7 @@ static int match_token_at_27(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -2191,7 +2378,7 @@ static int match_token_at_27(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -2200,110 +2387,143 @@ static int match_token_at_27(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } if (match_Other(context, token)) { build(context, token); - return 27; + return 32; } - /* "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"; + /* "State: 32 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other: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 27;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 */ -static int match_token_at_28(Token* token, ParserContext* context) { + return 32;} +/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_33(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 33; + } + if (match_Comment(context, token)) { + build(context, token); + return 33; + } + if (match_Other(context, token)) { + build(context, token); + return 34; + } + + /* "State: 33 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_34(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; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 33; } if (match_Comment(context, token)) { build(context, token); - return 28; + return 33; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 29; + return 35; } 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 37; } } 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 26; } 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 38; } 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 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 28; + return 34; } - /* "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"; + /* "State: 34 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 28;} + return 34;} /* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 */ -static int match_token_at_29(Token* token, ParserContext* context) { +static int match_token_at_35(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; + return 50; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 30; + return 36; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 45; + return 53; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 29; + return 35; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2312,7 +2532,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 37; } } if (match_TagLine(context, token)) { @@ -2323,7 +2543,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -2331,7 +2551,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -2340,27 +2560,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 27; } if (match_Comment(context, token)) { build(context, token); - return 29; + return 35; } if (match_Empty(context, token)) { build(context, token); - return 29; + return 35; } - /* "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0" */ + /* "State: 35 - 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 35;} /* 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_36(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -2368,18 +2588,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 50; } if (match_TableRow(context, token)) { build(context, token); - return 30; + return 36; } 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 35; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -2389,7 +2609,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 37; } } if (match_TagLine(context, token)) { @@ -2401,7 +2621,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2410,7 +2630,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2420,83 +2640,83 @@ 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 27; } if (match_Comment(context, token)) { build(context, token); - return 30; + return 36; } if (match_Empty(context, token)) { build(context, token); - return 30; + return 36; } - /* "State: 30 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 36 - 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 36;} /* 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_37(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 31; + return 37; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 38; } if (match_Comment(context, token)) { build(context, token); - return 31; + return 37; } if (match_Empty(context, token)) { build(context, token); - return 31; + return 37; } - /* "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 37 - 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 37;} /* 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_38(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 50; } if (match_Empty(context, token)) { build(context, token); - return 32; + return 38; } if (match_Comment(context, token)) { build(context, token); - return 34; + return 38; } if (match_StepLine(context, token)) { start_rule(context, Rule_Step); build(context, token); - return 35; + return 42; } 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 44; } } if (match_TagLine(context, token)) { @@ -2506,7 +2726,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 37; } } if (match_TagLine(context, token)) { @@ -2517,13 +2737,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 26; } if (match_ExamplesLine(context, token)) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Scenario); @@ -2531,7 +2751,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Scenario); @@ -2540,24 +2760,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 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 33; + return 39; } - /* "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0" */ + /* "State: 38 - 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;} + return 38;} /* 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) { +static int match_token_at_39(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); @@ -2565,18 +2785,21 @@ 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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 40; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 34; + return 40; } if (match_StepLine(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 35; + return 42; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2584,7 +2807,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 44; } } if (match_TagLine(context, token)) { @@ -2595,7 +2818,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 37; } } if (match_TagLine(context, token)) { @@ -2607,14 +2830,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 26; } 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 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -2623,7 +2846,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -2633,59 +2856,91 @@ 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 27; } if (match_Other(context, token)) { build(context, token); - return 33; + return 39; } - /* "State: 33 - GherkinDocument:0>Feature:3>Rule: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"; + /* "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other: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 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) { + return 39;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_40(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 40; + } + if (match_Comment(context, token)) { + build(context, token); + return 40; + } + if (match_Other(context, token)) { + build(context, token); + return 41; + } + + /* "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_41(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_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 40; } if (match_Comment(context, token)) { build(context, token); - return 34; + return 40; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 35; + return 42; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 44; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Description); 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 37; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); @@ -2693,46 +2948,49 @@ static int match_token_at_34(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 26; } 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 45; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Description); 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 38; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Description); 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 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 34; + return 41; } - /* "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"; + /* "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 34;} + return 41;} /* 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_42(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Step); end_rule(context, Rule_Scenario); @@ -2740,23 +2998,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 50; } if (match_TableRow(context, token)) { start_rule(context, Rule_DataTable); build(context, token); - return 36; + return 43; } if (match_DocStringSeparator(context, token)) { start_rule(context, Rule_DocString); build(context, token); - return 43; + return 51; } if (match_StepLine(context, token)) { end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 35; + return 42; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2764,7 +3022,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 44; } } if (match_TagLine(context, token)) { @@ -2775,7 +3033,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 37; } } if (match_TagLine(context, token)) { @@ -2787,14 +3045,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 26; } 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 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Step); @@ -2803,7 +3061,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Step); @@ -2813,27 +3071,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 27; } if (match_Comment(context, token)) { build(context, token); - return 35; + return 42; } if (match_Empty(context, token)) { build(context, token); - return 35; + return 42; } - /* "State: 35 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0" */ + /* "State: 42 - 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 42;} /* 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_43(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); @@ -2842,18 +3100,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 50; } if (match_TableRow(context, token)) { build(context, token); - return 36; + return 43; } 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 42; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2862,7 +3120,7 @@ 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; + return 44; } } if (match_TagLine(context, token)) { @@ -2874,7 +3132,7 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 37; } } if (match_TagLine(context, token)) { @@ -2887,7 +3145,7 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 22; + return 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2895,7 +3153,7 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2905,7 +3163,7 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DataTable); @@ -2916,56 +3174,56 @@ static int match_token_at_36(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } if (match_Comment(context, token)) { build(context, token); - return 36; + return 43; } if (match_Empty(context, token)) { build(context, token); - return 36; + return 43; } - /* "State: 36 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0" */ + /* "State: 43 - 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;} + return 43;} /* 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) { +static int match_token_at_44(Token* token, ParserContext* context) { if (match_TagLine(context, token)) { build(context, token); - return 37; + return 44; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Tags); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 45; } if (match_Comment(context, token)) { build(context, token); - return 37; + return 44; } if (match_Empty(context, token)) { build(context, token); - return 37; + return 44; } - /* "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0" */ + /* "State: 44 - 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;} + return 44;} /* 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) { +static int match_token_at_45(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Examples); end_rule(context, Rule_ExamplesDefinition); @@ -2974,20 +3232,20 @@ static int match_token_at_38(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 42; + return 50; } if (match_Empty(context, token)) { build(context, token); - return 38; + return 45; } if (match_Comment(context, token)) { build(context, token); - return 40; + return 45; } if (match_TableRow(context, token)) { start_rule(context, Rule_ExamplesTable); build(context, token); - return 41; + return 49; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -2996,7 +3254,7 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 44; } } if (match_TagLine(context, token)) { @@ -3008,7 +3266,7 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 31; + return 37; } } if (match_TagLine(context, token)) { @@ -3021,7 +3279,7 @@ 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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Examples); @@ -3029,7 +3287,7 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Examples); @@ -3039,7 +3297,7 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 32; + return 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Examples); @@ -3050,24 +3308,24 @@ static int match_token_at_38(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 23; + return 27; } if (match_Other(context, token)) { start_rule(context, Rule_Description); build(context, token); - return 39; + return 46; } - /* "State: 38 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0" */ + /* "State: 45 - 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 38;} + return 45;} /* 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) { +static int match_token_at_46(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_Description); end_rule(context, Rule_Examples); @@ -3077,18 +3335,21 @@ 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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 47; } if (match_Comment(context, token)) { - end_rule(context, Rule_Description); build(context, token); - return 40; + return 47; } if (match_TableRow(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 41; + return 49; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3098,7 +3359,7 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 44; } } if (match_TagLine(context, token)) { @@ -3111,7 +3372,7 @@ 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 37; } } if (match_TagLine(context, token)) { @@ -3125,7 +3386,7 @@ 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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); @@ -3134,7 +3395,7 @@ static int match_token_at_39(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 38; + return 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -3145,7 +3406,7 @@ 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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -3157,24 +3418,48 @@ 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 27; } if (match_Other(context, token)) { build(context, token); - return 39; + return 46; } - /* "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: 46 - 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, #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 46;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +static int match_token_at_47(Token* token, ParserContext* context) { + if (match_Empty(context, token)) { + build(context, token); + return 47; + } + if (match_Comment(context, token)) { + build(context, token); + return 47; + } + if (match_Other(context, token)) { + build(context, token); + return 48; + } + + /* "State: 47 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ + const wchar_t* const expected_tokens = L"#Empty, #Comment, #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;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +static int match_token_at_48(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 +3467,36 @@ 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 50; + } + if (match_Empty(context, token)) { + build(context, token); + return 47; } if (match_Comment(context, token)) { build(context, token); - return 40; + return 47; } if (match_TableRow(context, token)) { + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 41; + return 49; } 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 44; } } 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 +3504,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 37; } } 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 +3518,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 26; } 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 45; } 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 +3538,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 38; } 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 +3550,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 27; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 40; + return 48; } - /* "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: 48 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 40;} + return 48;} /* 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_49(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_ExamplesTable); end_rule(context, Rule_Examples); @@ -3280,11 +3576,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 50; } if (match_TableRow(context, token)) { build(context, token); - return 41; + return 49; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3294,7 +3590,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 44; } } if (match_TagLine(context, token)) { @@ -3307,7 +3603,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 37; } } if (match_TagLine(context, token)) { @@ -3321,7 +3617,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3330,7 +3626,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 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3341,7 +3637,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3353,46 +3649,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 27; } if (match_Comment(context, token)) { build(context, token); - return 41; + return 49; } if (match_Empty(context, token)) { build(context, token); - return 41; + return 49; } - /* "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0" */ + /* "State: 49 - 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 49;} /* 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_51(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 44; + return 52; } if (match_Other(context, token)) { build(context, token); - return 43; + return 51; } - /* "State: 43 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 51 - 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 51;} /* 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_52(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3401,14 +3697,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 50; } 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 42; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3417,7 +3713,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 44; } } if (match_TagLine(context, token)) { @@ -3429,7 +3725,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 37; } } if (match_TagLine(context, token)) { @@ -3442,7 +3738,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3450,7 +3746,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 45; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3460,7 +3756,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3471,46 +3767,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 27; } if (match_Comment(context, token)) { build(context, token); - return 44; + return 52; } if (match_Empty(context, token)) { build(context, token); - return 44; + return 52; } - /* "State: 44 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 52 - 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 52;} /* 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_53(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 46; + return 54; } if (match_Other(context, token)) { build(context, token); - return 45; + return 53; } - /* "State: 45 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 53 - 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 53;} /* 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_54(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3518,14 +3814,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 50; } 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 35; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -3535,7 +3831,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 37; } } if (match_TagLine(context, token)) { @@ -3547,7 +3843,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3556,7 +3852,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 38; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3566,46 +3862,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 27; } if (match_Comment(context, token)) { build(context, token); - return 46; + return 54; } if (match_Empty(context, token)) { build(context, token); - return 46; + return 54; } - /* "State: 46 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 54 - 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 54;} /* 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_55(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 48; + return 56; } if (match_Other(context, token)) { build(context, token); - return 47; + return 55; } - /* "State: 47 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 55 - 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 55;} /* 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_56(Token* token, ParserContext* context) { if (match_EOF(context, token)) { end_rule(context, Rule_DocString); end_rule(context, Rule_Step); @@ -3613,14 +3909,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 50; } 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 18; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3629,7 +3925,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 20; } } if (match_TagLine(context, token)) { @@ -3641,7 +3937,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 13; } } if (match_TagLine(context, token)) { @@ -3653,7 +3949,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 26; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3661,7 +3957,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 21; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3671,7 +3967,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3681,60 +3977,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 27; } if (match_Comment(context, token)) { build(context, token); - return 48; + return 56; } if (match_Empty(context, token)) { build(context, token); - return 48; + return 56; } - /* "State: 48 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 56 - 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 56;} /* 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_57(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 50; + return 58; } if (match_Other(context, token)) { build(context, token); - return 49; + return 57; } - /* "State: 49 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0" */ + /* "State: 57 - 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 57;} /* 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_58(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 50; } 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 11; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -3744,7 +4040,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 13; } } if (match_TagLine(context, token)) { @@ -3755,7 +4051,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 26; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3764,7 +4060,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 14; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3773,25 +4069,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 27; } if (match_Comment(context, token)) { build(context, token); - return 50; + return 58; } if (match_Empty(context, token)) { build(context, token); - return 50; + return 58; } - /* "State: 50 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0" */ + /* "State: 58 - 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 58;} static int match_token(int state, Token* token, ParserContext* context) { switch (state) { case 0: @@ -3878,6 +4174,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 42: + return match_token_at_42(token, context); case 43: return match_token_at_43(token, context); case 44: @@ -3892,8 +4190,22 @@ static int match_token(int state, Token* token, ParserContext* context) { 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 51: + return match_token_at_51(token, context); + case 52: + return match_token_at_52(token, context); + case 53: + return match_token_at_53(token, context); + case 54: + return match_token_at_54(token, context); + case 55: + return match_token_at_55(token, context); + case 56: + return match_token_at_56(token, context); + case 57: + return match_token_at_57(token, context); + case 58: + return match_token_at_58(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..5b3c6399d 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 := Description? + Description, // Description! := (#Empty | #Comment | #Other)+ } [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,24 +675,26 @@ 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)) { + StartRule(context, RuleType.Description); Build(context, token); - return 3; + return 4; } 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 +704,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 +714,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 +722,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 +730,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 +751,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:0>Description:0>__alt1:0>#Empty:0 int MatchTokenAt_4(Token token, ParserContext context) { if (Match_EOF(context, token)) @@ -782,13 +760,17 @@ int MatchTokenAt_4(Token token, ParserContext context) EndRule(context, RuleType.FeatureHeader); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 4; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 5; + return 4; } if (Match_BackgroundLine(context, token)) { @@ -796,7 +778,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 +789,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 +800,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 +809,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 +818,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,9 +826,9 @@ 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:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -856,73 +838,80 @@ 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)) { + StartRule(context, RuleType.Description); Build(context, token); - return 5; + return 6; } - 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,15 +921,16 @@ int MatchTokenAt_5(Token token, ParserContext context) return 5; } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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; + return 34; } if (Match_Empty(context, token)) { @@ -950,58 +940,62 @@ int MatchTokenAt_6(Token token, ParserContext context) 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:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) @@ -1013,79 +1007,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 +1100,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 +1180,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 +1192,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 +1218,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,89 +1230,102 @@ 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.Scenario); + EndRule(context, RuleType.ScenarioDefinition); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_TableRow(context, token)) + if (Match_Empty(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 10; + return 11; + } + if (Match_Comment(context, token)) + { + StartRule(context, RuleType.Description); + Build(context, token); + return 11; } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); StartRule(context, RuleType.Step); Build(context, token); - return 9; + return 12; + } + if (Match_TagLine(context, token)) + { + if (LookAhead_1(context, token)) + { + StartRule(context, RuleType.ExamplesDefinition); + StartRule(context, RuleType.Tags); + Build(context, token); + return 14; + } } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); + 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.Background); + 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)) + { + StartRule(context, RuleType.ExamplesDefinition); + StartRule(context, RuleType.Examples); + Build(context, token); + return 15; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); - EndRule(context, RuleType.Background); + 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.Background); + 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 10; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 10; + return 11; } - const string stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0"; + const string stateComment = "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#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) @@ -1355,136 +1335,105 @@ int MatchTokenAt_10(Token token, ParserContext context) return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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)) { + EndRule(context, RuleType.Description); 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 11; } if (Match_Comment(context, token)) { 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)) { if (LookAhead_1(context, token)) { + EndRule(context, RuleType.Description); 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.Description); 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.Description); 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.Description); StartRule(context, RuleType.ExamplesDefinition); StartRule(context, RuleType.Examples); Build(context, token); - return 18; + return 15; } if (Match_ScenarioLine(context, token)) { + EndRule(context, RuleType.Description); 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.Description); 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_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: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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,203 +1442,273 @@ int MatchTokenAt_12(Token token, ParserContext context) throw error; AddError(context, error); - return 12; + return 11; } - // 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:2>Step:0>#StepLine:0 + int MatchTokenAt_12(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Description); + 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)) { - EndRule(context, RuleType.Description); + 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.Description); + 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.Description); + 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.Description); + 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.Description); + 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.Description); + 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.Description); + 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.Description); + 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_Other(context, token)) + if (Match_Comment(context, token)) { Build(context, token); - return 13; + return 12; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 12; } - const string stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other: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", "#Other"}; + 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 13; + return 12; } - // 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: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_Comment(context, token)) + if (Match_TableRow(context, token)) { Build(context, token); - return 14; + 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); 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.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_Empty(context, token)) + if (Match_Comment(context, token)) { Build(context, token); - return 14; + return 13; } - - const string stateComment = "State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + if (Match_Empty(context, token)) + { + Build(context, token); + return 13; + } + + 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) + : new UnexpectedTokenException(token, expectedTokens, stateComment); + if (StopAtFirstError) + throw error; + + AddError(context, error); + return 13; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + int MatchTokenAt_14(Token token, ParserContext context) + { + if (Match_TagLine(context, token)) + { + Build(context, token); + return 14; + } + if (Match_ExamplesLine(context, token)) + { + EndRule(context, RuleType.Tags); + StartRule(context, RuleType.Examples); + Build(context, token); + return 15; + } + if (Match_Comment(context, token)) + { + Build(context, token); + return 14; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 14; + } + + 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) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -1699,114 +1718,116 @@ int MatchTokenAt_14(Token token, ParserContext context) return 14; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 int MatchTokenAt_15(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Step); + 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 34; } - if (Match_TableRow(context, token)) + if (Match_Empty(context, token)) { - StartRule(context, RuleType.DataTable); + StartRule(context, RuleType.Description); Build(context, token); return 16; } - if (Match_DocStringSeparator(context, token)) + if (Match_Comment(context, token)) { - StartRule(context, RuleType.DocString); + StartRule(context, RuleType.Description); Build(context, token); - return 47; + return 16; } - if (Match_StepLine(context, token)) + if (Match_TableRow(context, token)) { - EndRule(context, RuleType.Step); - StartRule(context, RuleType.Step); + StartRule(context, RuleType.ExamplesTable); Build(context, token); - return 15; + return 17; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.Step); + 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.Step); + 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; + return 9; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Step); + 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; + return 18; } if (Match_ExamplesLine(context, token)) { - EndRule(context, RuleType.Step); + 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.Step); + 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; + return 10; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Step); + 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 15; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 15; + return 16; } - const string stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine: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", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; + 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) @@ -1816,115 +1837,121 @@ int MatchTokenAt_15(Token token, ParserContext context) return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 int MatchTokenAt_16(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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 34; } - if (Match_TableRow(context, token)) + if (Match_Empty(context, token)) { Build(context, token); return 16; } - 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; + return 16; + } + if (Match_TableRow(context, token)) + { + EndRule(context, RuleType.Description); + StartRule(context, RuleType.ExamplesTable); + Build(context, token); + return 17; } if (Match_TagLine(context, token)) { if (LookAhead_1(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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; + return 9; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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; + return 18; } if (Match_ExamplesLine(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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; + return 10; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.DataTable); - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); + 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 16; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { Build(context, token); return 16; } - 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: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"}; + 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) @@ -1934,89 +1961,43 @@ int MatchTokenAt_16(Token token, ParserContext context) return 16; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + // 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_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; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 17; - } - - const string stateComment = "State: 17 - 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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 17; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - int MatchTokenAt_18(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_Empty(context, token)) - { - Build(context, token); - return 18; - } - 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); @@ -2024,11 +2005,12 @@ 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)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2037,19 +2019,21 @@ 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)) { + 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); @@ -2057,10 +2041,11 @@ 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)) { + EndRule(context, RuleType.ExamplesTable); EndRule(context, RuleType.Examples); EndRule(context, RuleType.ExamplesDefinition); EndRule(context, RuleType.Scenario); @@ -2068,833 +2053,247 @@ int MatchTokenAt_18(Token token, ParserContext context) 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 19; - } - - const string stateComment = "State: 18 - 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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 18; - } - - // 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) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Description); - 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)) - { - EndRule(context, RuleType.Description); - Build(context, token); - return 20; - } - if (Match_TableRow(context, token)) - { - EndRule(context, RuleType.Description); - StartRule(context, RuleType.ExamplesTable); - Build(context, token); - return 21; - } - 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 17; - } - } - 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); - 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.Description); - 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.Description); - 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.Description); - 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.Description); - 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_Other(context, token)) - { - Build(context, token); - return 19; - } - - const string stateComment = "State: 19 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description: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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 19; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_20(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - 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; - } - if (Match_TableRow(context, token)) - { - StartRule(context, RuleType.ExamplesTable); - Build(context, token); - return 21; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_1(context, token)) - { - 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.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.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.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.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.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_Empty(context, token)) - { - Build(context, token); - return 20; - } - - const string stateComment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0"; - token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#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 20; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 - int MatchTokenAt_21(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_TableRow(context, token)) - { - Build(context, token); - return 21; - } - 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; - } - } - 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; - } - - const string stateComment = "State: 22 - 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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 22; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - int MatchTokenAt_23(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; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 23; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 25; - } - if (Match_BackgroundLine(context, token)) - { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Background); - Build(context, token); - return 26; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } - if (Match_TagLine(context, token)) - { - EndRule(context, RuleType.RuleHeader); - 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.RuleHeader); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); - Build(context, token); - return 32; - } - if (Match_RuleLine(context, token)) - { - EndRule(context, RuleType.RuleHeader); - 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 24; - } - - const string stateComment = "State: 23 - 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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - throw error; - - AddError(context, error); - return 23; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - int MatchTokenAt_24(Token token, ParserContext context) - { - if (Match_EOF(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.RuleHeader); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; + return 19; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); - Build(context, token); - return 25; - } - if (Match_BackgroundLine(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Background); - Build(context, token); - return 26; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.Description); - EndRule(context, RuleType.RuleHeader); - 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.RuleHeader); - 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.RuleHeader); - 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.RuleHeader); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 17; } - if (Match_Other(context, token)) + if (Match_Empty(context, token)) { Build(context, token); - return 24; + return 17; } - const string stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other: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", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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 24; + return 17; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_25(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)) - { - EndRule(context, RuleType.RuleHeader); - EndRule(context, RuleType.Rule); - EndRule(context, RuleType.Feature); - Build(context, token); - return 42; - } - if (Match_Comment(context, token)) - { - Build(context, token); - return 25; - } - if (Match_BackgroundLine(context, token)) - { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.Background); - Build(context, token); - return 26; - } - if (Match_TagLine(context, token)) - { - if (LookAhead_0(context, token)) - { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Tags); - Build(context, token); - return 31; - } - } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.RuleHeader); - 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)) + if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.RuleHeader); - StartRule(context, RuleType.ScenarioDefinition); - StartRule(context, RuleType.Scenario); + EndRule(context, RuleType.Tags); Build(context, token); - return 32; + return 19; } - if (Match_RuleLine(context, token)) + if (Match_Comment(context, token)) { - EndRule(context, RuleType.RuleHeader); - EndRule(context, RuleType.Rule); - StartRule(context, RuleType.Rule); - StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 18; } if (Match_Empty(context, token)) { Build(context, token); - return 25; + return 18; } - const string stateComment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0"; + const string stateComment = "State: 18 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + var expectedTokens = new string[] {"#TagLine", "#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 25; + return 18; } - // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - int MatchTokenAt_26(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 + int MatchTokenAt_19(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Background); + EndRule(context, RuleType.RuleHeader); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } if (Match_Empty(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 26; + return 20; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 28; + return 20; } - if (Match_StepLine(context, token)) + if (Match_BackgroundLine(context, token)) { - StartRule(context, RuleType.Step); + EndRule(context, RuleType.RuleHeader); + StartRule(context, RuleType.Background); Build(context, token); - return 29; + return 21; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Background); + EndRule(context, RuleType.RuleHeader); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) { - EndRule(context, RuleType.Background); + EndRule(context, RuleType.RuleHeader); 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.Background); + EndRule(context, RuleType.RuleHeader); StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { - EndRule(context, RuleType.Background); + EndRule(context, RuleType.RuleHeader); 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 20; } - const string stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine: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", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#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 19; } - // 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:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + int MatchTokenAt_20(Token token, ParserContext context) { if (Match_EOF(context, token)) { EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); + 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 20; } if (Match_Comment(context, token)) { - EndRule(context, RuleType.Description); Build(context, token); - return 28; + return 20; } - if (Match_StepLine(context, token)) + if (Match_BackgroundLine(context, token)) { EndRule(context, RuleType.Description); - StartRule(context, RuleType.Step); + EndRule(context, RuleType.RuleHeader); + StartRule(context, RuleType.Background); Build(context, token); - return 29; + return 21; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { EndRule(context, RuleType.Description); - EndRule(context, RuleType.Background); + EndRule(context, RuleType.RuleHeader); 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.RuleHeader); 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); + EndRule(context, RuleType.RuleHeader); 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.RuleHeader); EndRule(context, RuleType.Rule); StartRule(context, RuleType.Rule); StartRule(context, RuleType.RuleHeader); Build(context, token); - return 23; + return 19; } if (Match_Other(context, token)) { Build(context, token); - return 27; + return 20; } - const string stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0"; + const string stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#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; + return 20; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - int MatchTokenAt_28(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)) { @@ -2902,18 +2301,25 @@ int MatchTokenAt_28(Token token, ParserContext context) EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; + } + if (Match_Empty(context, token)) + { + StartRule(context, RuleType.Description); + Build(context, token); + return 22; } if (Match_Comment(context, token)) { + StartRule(context, RuleType.Description); Build(context, token); - return 28; + return 22; } if (Match_StepLine(context, token)) { StartRule(context, RuleType.Step); Build(context, token); - return 29; + return 23; } if (Match_TagLine(context, token)) { @@ -2923,7 +2329,7 @@ int MatchTokenAt_28(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Tags); Build(context, token); - return 31; + return 25; } } if (Match_TagLine(context, token)) @@ -2934,7 +2340,7 @@ int MatchTokenAt_28(Token token, ParserContext context) StartRule(context, RuleType.RuleHeader); StartRule(context, RuleType.Tags); Build(context, token); - return 22; + return 18; } if (Match_ScenarioLine(context, token)) { @@ -2942,7 +2348,7 @@ int MatchTokenAt_28(Token token, ParserContext context) StartRule(context, RuleType.ScenarioDefinition); StartRule(context, RuleType.Scenario); Build(context, token); - return 32; + return 26; } if (Match_RuleLine(context, token)) { @@ -2951,164 +2357,161 @@ int MatchTokenAt_28(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 28; + return 22; } - const string stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule:1>Background:1>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", "#StepLine", "#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 28; + return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - int MatchTokenAt_29(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + int MatchTokenAt_22(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Step); + EndRule(context, RuleType.Description); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); EndRule(context, RuleType.Feature); Build(context, token); - return 42; + return 34; } - if (Match_TableRow(context, token)) + if (Match_Empty(context, token)) { - StartRule(context, RuleType.DataTable); Build(context, token); - return 30; + return 22; } - if (Match_DocStringSeparator(context, token)) + if (Match_Comment(context, token)) { - StartRule(context, RuleType.DocString); Build(context, token); - return 45; + return 22; } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.Step); + 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.Step); + 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.Step); + 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.Step); + 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.Step); + 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_Comment(context, token)) - { - Build(context, token); - return 29; + return 19; } - if (Match_Empty(context, token)) + if (Match_Other(context, token)) { Build(context, token); - return 29; + return 22; } - const string stateComment = "State: 29 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; + const string stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#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 29; + return 22; } - // 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) + // 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.DataTable); 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_TableRow(context, token)) { + StartRule(context, RuleType.DataTable); Build(context, token); - return 30; + return 24; + } + if (Match_DocStringSeparator(context, token)) + { + StartRule(context, RuleType.DocString); + Build(context, token); + return 37; } if (Match_StepLine(context, token)) { - EndRule(context, RuleType.DataTable); 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.DataTable); 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.DataTable); EndRule(context, RuleType.Step); EndRule(context, RuleType.Background); EndRule(context, RuleType.Rule); @@ -3116,307 +2519,185 @@ 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)) { - EndRule(context, RuleType.DataTable); 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.DataTable); 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 30; - } - if (Match_Empty(context, token)) - { - Build(context, token); - return 30; - } - - const string stateComment = "State: 30 - 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) - : new UnexpectedTokenException(token, expectedTokens, stateComment); - if (StopAtFirstError) - 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; + return 19; } if (Match_Comment(context, token)) { Build(context, token); - return 31; + return 23; } if (Match_Empty(context, token)) { Build(context, token); - return 31; + return 23; } - const string stateComment = "State: 31 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; + const string stateComment = "State: 23 - GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0"; token.Detach(); - var expectedTokens = new string[] {"#TagLine", "#ScenarioLine", "#Comment", "#Empty"}; + 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) throw error; AddError(context, error); - return 31; + return 23; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - int MatchTokenAt_32(Token token, ParserContext context) + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 + int MatchTokenAt_24(Token token, ParserContext context) { if (Match_EOF(context, token)) { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); + 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 32; + return 34; } - if (Match_Comment(context, token)) + if (Match_TableRow(context, token)) { Build(context, token); - return 34; + return 24; } if (Match_StepLine(context, token)) { + EndRule(context, RuleType.DataTable); + EndRule(context, RuleType.Step); 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; - } + return 23; } if (Match_TagLine(context, token)) { if (LookAhead_0(context, token)) { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.DataTable); + 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.Scenario); - EndRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.DataTable); + 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_ExamplesLine(context, token)) - { - StartRule(context, RuleType.ExamplesDefinition); - StartRule(context, RuleType.Examples); - Build(context, token); - return 38; + return 18; } if (Match_ScenarioLine(context, token)) { - EndRule(context, RuleType.Scenario); - EndRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.DataTable); + 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.Scenario); - EndRule(context, RuleType.ScenarioDefinition); + EndRule(context, RuleType.DataTable); + 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; + return 19; } - if (Match_Other(context, token)) + if (Match_Comment(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 33; + return 24; + } + if (Match_Empty(context, token)) + { + Build(context, token); + return 24; } - const string stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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 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 +2706,25 @@ 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)) + { + StartRule(context, RuleType.Description); + Build(context, token); + return 27; } 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 +2733,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 +2745,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 +2757,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 +2773,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 +2783,84 @@ 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:0>Description:0>__alt1:0>#Empty: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; + return 34; } - if (Match_TableRow(context, token)) + if (Match_Empty(context, token)) { - StartRule(context, RuleType.DataTable); Build(context, token); - return 36; + return 27; } - 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 +2868,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:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#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 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 +2983,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 +3012,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 +3101,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 +3208,42 @@ 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)) + { + StartRule(context, RuleType.Description); + Build(context, token); + return 32; } 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 +3251,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 +3265,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 +3285,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 +3297,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:0>Description:0>__alt1:0>#Empty: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 +3331,43 @@ int MatchTokenAt_40(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 32; } 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 +3375,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 +3390,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 +3412,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 +3425,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:0>Description:0>__alt1:0>#Empty:0"; token.Detach(); - var expectedTokens = new string[] {"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"}; + 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 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 +3458,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 +3475,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 +3490,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 +3505,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 +3515,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 +3527,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 +3540,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 +3562,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 +3588,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 +3603,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 +3611,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 +3622,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 +3636,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 +3650,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 +3659,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 +3670,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 +3682,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 +3704,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 +3730,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 +3744,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 +3752,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 +3764,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 +3777,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 +3787,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 +3798,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 +3820,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 +3846,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 +3860,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 +3868,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 +3879,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 +3893,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 +3906,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 +3915,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 +3926,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 +3937,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 +3959,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 +3985,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 +3998,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 +4006,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 +4018,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 +4030,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 +4040,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 +4050,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 +4072,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..580cbcd84 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,24 +198,26 @@ 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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(3) + update_next_state(4) 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 +227,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 +236,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 +244,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 +252,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 +275,17 @@ 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(4) 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 +293,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 +304,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 +314,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 +323,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,112 +332,46 @@ 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" - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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: 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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> update_next_state(6) 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 +381,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 +390,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 +398,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 +406,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 +429,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(6) 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 +457,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 +467,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 +476,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 +485,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) - true -> - state_comment = "State: 7 - GherkinDocument:0>Feature: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: 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) + update_next_state(6) true -> - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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: 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 +507,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 +537,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 +547,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 +556,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 +565,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 +593,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 +606,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 +618,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 +629,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 +639,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 +649,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 +707,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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(12) + update_next_state(11) 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 +734,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 +745,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 +755,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 +771,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 +780,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 +804,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(11) 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 +831,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 +843,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 +854,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 +862,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 +872,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 +882,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:0>Description:0>__alt1:0>#Empty: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: 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 +905,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 +934,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 +946,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 +957,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 +965,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 +975,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 +985,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 +1014,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 +1027,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 +1038,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 +1051,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 +1063,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 +1072,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 +1083,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 +1094,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 +1154,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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(18) + update_next_state(16) 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 +1183,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 +1196,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 +1208,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 +1217,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 +1228,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 +1239,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 +1265,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(16) 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 +1294,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 +1308,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 +1321,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 +1331,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 +1343,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 +1355,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) - true -> - state_comment = "State: 19 - GherkinDocument:0>Feature: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: 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) + update_next_state(16) 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"] + state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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: 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 +1380,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 +1397,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 +1411,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 +1424,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 +1434,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 +1446,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 +1458,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 +1515,26 @@ 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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(23) + update_next_state(20) 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 +1544,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 +1554,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 +1562,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 +1571,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 +1595,17 @@ 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(20) 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 +1613,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 +1624,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 +1635,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 +1644,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 +1654,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) - true -> - state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description: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) + update_next_state(20) 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"] + state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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: 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 +1676,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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(26) + update_next_state(22) 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 +1704,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 +1714,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 +1722,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 +1731,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 +1755,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(22) 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 +1783,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 +1794,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 +1803,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 +1813,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(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) |> - AstBuilder.build() |> - - update_next_state(28) 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:0>Description:0>__alt1:0>#Empty: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: 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 +1836,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 +1866,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 +1877,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 +1886,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 +1896,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 +1925,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 +1938,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 +1950,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 +1962,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 +1972,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 +1983,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 +2042,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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(32) + update_next_state(27) 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 +2069,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 +2080,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 +2091,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 +2107,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 +2117,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 +2142,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(27) 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 +2169,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 +2181,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 +2193,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 +2201,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 +2211,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 +2222,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) - true -> - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule: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: 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) + update_next_state(27) 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"] + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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: 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 +2246,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 +2275,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 +2287,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 +2299,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 +2307,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 +2317,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 +2328,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 +2358,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 +2371,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 +2382,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 +2395,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 +2408,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 +2417,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 +2428,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 +2440,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 +2501,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() |> + AstBuilder.start_rule(Description) |> + AstBuilder.build() |> - update_next_state(38) + update_next_state(32) 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 +2530,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 +2543,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 +2556,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 +2565,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 +2576,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 +2588,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 +2615,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) 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 +2644,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 +2658,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 +2672,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 +2682,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 +2694,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 +2707,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:0>Description:0>__alt1:0>#Empty: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: 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 +2733,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 +2750,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 +2764,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 +2778,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 +2788,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 +2800,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 +2813,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 +2862,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 +2870,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 +2881,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 +2894,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 +2907,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 +2916,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 +2927,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 +2939,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 +2987,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 +2995,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 +3007,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 +3019,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 +3029,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 +3040,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 +3088,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 +3096,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 +3107,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 +3120,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 +3132,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 +3141,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 +3152,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 +3163,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 +3210,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 +3218,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 +3230,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 +3241,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 +3251,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 +3261,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..c19b6dd8c 100644 --- a/gherkin.berp +++ b/gherkin.berp @@ -34,5 +34,5 @@ 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+ +DescriptionHelper := Description? +Description! := (#Empty | #Comment | #Other)+ diff --git a/go/parser.go b/go/parser.go index ed6dddba7..9d255c381 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,23 @@ 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.startRule(RuleTypeDescription) ctxt.build(token) - return 3, err + return 4, 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 +572,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 +581,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 +621,29 @@ 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:0>Description:0>__alt1:0>#Empty: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.matchEmpty(line); ok { + ctxt.build(token) + return 4, 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 +652,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 +662,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 +670,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,15 +678,15 @@ 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 expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // var stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -714,62 +703,68 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { return 4, err } -// GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 +// GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) + ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } - if ok, token, err := ctxt.matchComment(line); ok { + if ok, token, err := ctxt.matchEmpty(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 5, err + return 6, err } - if ok, token, err := ctxt.matchBackgroundLine(line); ok { - ctxt.endRule(RuleTypeFeatureHeader) - ctxt.startRule(RuleTypeBackground) + if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) return 6, err } + if ok, token, err := ctxt.matchStepLine(line); ok { + ctxt.startRule(RuleTypeStep) + ctxt.build(token) + return 7, err + } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeFeatureHeader) + ctxt.endRule(RuleTypeBackground) 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(RuleTypeFeatureHeader) + ctxt.endRule(RuleTypeBackground) 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(RuleTypeFeatureHeader) + 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(RuleTypeFeatureHeader) + ctxt.endRule(RuleTypeBackground) 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.startRule(RuleTypeDescription) ctxt.build(token) - return 5, err + return 6, 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -786,13 +781,14 @@ func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { return 5, err } -// GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 +// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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.matchEmpty(line); ok { ctxt.build(token) @@ -800,51 +796,55 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { } if ok, token, err := ctxt.matchComment(line); ok { 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) { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) 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(RuleTypeDescription) ctxt.endRule(RuleTypeBackground) 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 12, err + return 10, err } if ok, token, err := ctxt.matchRuleLine(line); ok { + ctxt.endRule(RuleTypeDescription) 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: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -862,68 +862,77 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { return 6, err } -// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 +// GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDescription) + ctxt.endRule(RuleTypeStep) 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) + if ok, token, err := ctxt.matchTableRow(line); ok { + ctxt.startRule(RuleTypeDataTable) ctxt.build(token) return 8, err } + if ok, token, err := ctxt.matchDocStringSeparator(line); ok { + ctxt.startRule(RuleTypeDocString) + ctxt.build(token) + return 41, err + } if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDescription) + 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) { - ctxt.endRule(RuleTypeDescription) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) 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(RuleTypeDescription) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) 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(RuleTypeStep) 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(RuleTypeDescription) + ctxt.endRule(RuleTypeStep) 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 { + if ok, token, err := ctxt.matchComment(line); ok { + ctxt.build(token) + return 7, err + } + if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) return 7, err } - // var stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -940,61 +949,77 @@ func (ctxt *parseContext) matchAt7(line *Line) (newState int, err error) { return 7, err } -// 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 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.matchComment(line); ok { + if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) 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) { + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) 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(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) 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(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) 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(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeBackground) 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 8, 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1011,65 +1036,17 @@ func (ctxt *parseContext) matchAt8(line *Line) (newState int, err error) { return 8, err } -// GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 +// GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 func (ctxt *parseContext) matchAt9(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 - } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.startRule(RuleTypeDataTable) - ctxt.build(token) - return 10, err - } - if ok, token, err := ctxt.matchDocStringSeparator(line); ok { - ctxt.startRule(RuleTypeDocString) - ctxt.build(token) - return 49, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 9, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeStep) - 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(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 22, err + return 9, err } if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) + ctxt.endRule(RuleTypeTags) ctxt.startRule(RuleTypeScenario) ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err + return 10, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) @@ -1080,8 +1057,8 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { return 9, err } - // var stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0" - var expectedTokens = []string{"#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1098,160 +1075,36 @@ func (ctxt *parseContext) matchAt9(line *Line) (newState int, err error) { return 9, err } -// 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 func (ctxt *parseContext) matchAt10(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(RuleTypeScenario) + ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } - if ok, token, err := ctxt.matchTableRow(line); ok { + if ok, token, err := ctxt.matchEmpty(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 10, err + return 11, err + } + if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) + ctxt.build(token) + return 11, 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 12, err } if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeScenarioDefinition) + if ctxt.lookahead1(line) { + ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 11, err - } - } - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 10, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 10, err - } - - // var stateComment = "State: 10 - 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{ - 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 10, err -} - -// GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.build(token) - return 11, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeTags) - ctxt.startRule(RuleTypeScenario) - ctxt.build(token) - return 12, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 11, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 11, err - } - - // var stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0" - var expectedTokens = []string{"#TagLine", "#ScenarioLine", "#Comment", "#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 11, err -} - -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 -func (ctxt *parseContext) matchAt12(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.matchEmpty(line); ok { - ctxt.build(token) - return 12, 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 + return 14, err } } if ok, token, err := ctxt.matchTagLine(line); ok { @@ -1261,7 +1114,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 +1124,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 +1138,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 +1146,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 +1169,32 @@ 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:0>Description:0>__alt1:0>#Empty: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.matchEmpty(line); ok { + ctxt.build(token) + return 11, 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 +1202,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 +1213,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 +1224,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 +1240,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,15 +1249,15 @@ 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 expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // var stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1415,83 +1271,101 @@ func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 13, err + return 11, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt14(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 +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.matchComment(line); ok { + if ok, token, err := ctxt.matchTableRow(line); ok { + ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 14, err + return 13, err + } + if ok, token, err := ctxt.matchDocStringSeparator(line); ok { + ctxt.startRule(RuleTypeDocString) + ctxt.build(token) + 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) { + ctxt.endRule(RuleTypeStep) 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(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.startRule(RuleTypeRule) 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) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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) 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 12, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 14, err + return 12, 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1505,56 +1379,55 @@ func (ctxt *parseContext) matchAt14(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 14, err + return 12, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 +func (ctxt *parseContext) matchAt13(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { + ctxt.endRule(RuleTypeDataTable) 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 - } - if ok, token, err := ctxt.matchDocStringSeparator(line); ok { - ctxt.startRule(RuleTypeDocString) ctxt.build(token) - return 47, 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) { + ctxt.endRule(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) 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(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) @@ -1562,44 +1435,47 @@ 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(RuleTypeDataTable) 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(RuleTypeDataTable) ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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) ctxt.endRule(RuleTypeStep) 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 15, err + return 13, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 15, err + return 13, err } - // var stateComment = "State: 15 - 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1613,141 +1489,31 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 15, err + return 13, 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) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.endRule(RuleTypeFeature) +// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 +func (ctxt *parseContext) matchAt14(line *Line) (newState int, err error) { + if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 42, err + return 14, err } - if ok, token, err := ctxt.matchTableRow(line); ok { + if ok, token, err := ctxt.matchExamplesLine(line); ok { + ctxt.endRule(RuleTypeTags) + ctxt.startRule(RuleTypeExamples) ctxt.build(token) - return 16, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 15, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 18, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeScenario) - ctxt.endRule(RuleTypeScenarioDefinition) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 16, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 16, err - } - - // var stateComment = "State: 16 - 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{ - 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 16, 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) { - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.build(token) - return 17, 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 +1528,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 +1540,22 @@ 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.startRule(RuleTypeDescription) ctxt.build(token) - return 18, err + return 16, 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 +1564,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 +1576,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 +1588,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 +1596,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 +1606,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 +1616,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 +1639,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:0>Description:0>__alt1:0>#Empty: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 +1652,21 @@ 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.matchEmpty(line); ok { + ctxt.build(token) + return 16, 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 +1676,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 +1689,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 +1702,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 +1711,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 +1722,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,15 +1733,15 @@ 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 expectedTokens = []string{"#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // var stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1984,41 +1755,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 +1795,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 +1808,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 +1828,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,15 +1839,19 @@ func (ctxt *parseContext) matchAt20(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 17, err } if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 20, err + return 17, 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2088,140 +1865,30 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 20, err + return 17, 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) +// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 +func (ctxt *parseContext) matchAt18(line *Line) (newState int, err error) { + if ok, token, err := ctxt.matchTagLine(line); ok { ctxt.build(token) - return 42, err + return 18, err } - if ok, token, err := ctxt.matchTableRow(line); ok { + if ok, token, err := ctxt.matchRuleLine(line); ok { + ctxt.endRule(RuleTypeTags) 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 - } + return 19, 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) + if ok, token, err := ctxt.matchComment(line); ok { 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) + if ok, token, err := ctxt.matchEmpty(line); ok { 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 - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 21, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 21, err - } - - // var stateComment = "State: 21 - 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{ - 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 21, err -} - -// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 -func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchRuleLine(line); ok { - ctxt.endRule(RuleTypeTags) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 22, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 22, 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 +1903,33 @@ 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.startRule(RuleTypeDescription) ctxt.build(token) - return 23, err + return 20, 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 +1937,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 +1947,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 +1962,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 +1985,33 @@ 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:0>Description:0>__alt1:0>#Empty: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.matchEmpty(line); ok { + ctxt.build(token) + return 20, 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 +2020,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 +2031,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 +2039,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,15 +2048,15 @@ 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 expectedTokens = []string{"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // var stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2398,68 +2070,74 @@ func (ctxt *parseContext) matchAt24(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 24, err + return 20, err } -// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 -func (ctxt *parseContext) matchAt25(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 +func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeRuleHeader) + 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.startRule(RuleTypeDescription) + ctxt.build(token) + return 22, err } if ok, token, err := ctxt.matchComment(line); ok { + ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 25, err + return 22, err } - if ok, token, err := ctxt.matchBackgroundLine(line); ok { - ctxt.endRule(RuleTypeRuleHeader) - ctxt.startRule(RuleTypeBackground) + if ok, token, err := ctxt.matchStepLine(line); ok { + ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 26, err + return 23, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeRuleHeader) + 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(RuleTypeRuleHeader) + 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(RuleTypeRuleHeader) + 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(RuleTypeRuleHeader) + 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.startRule(RuleTypeDescription) ctxt.build(token) - return 25, err + return 22, 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"} + // 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, ", ")), @@ -2473,71 +2151,76 @@ func (ctxt *parseContext) matchAt25(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 25, err + return 21, err } -// GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 -func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { +// GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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.matchEmpty(line); ok { ctxt.build(token) - return 26, err + return 22, 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.matchOther(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 27, err + return 22, err } - // var stateComment = "State: 26 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" + // var stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ @@ -2552,74 +2235,83 @@ func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 26, err + return 22, 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) { +// GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 +func (ctxt *parseContext) matchAt23(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDescription) + 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.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) + if ok, token, err := ctxt.matchTableRow(line); ok { + ctxt.startRule(RuleTypeDataTable) ctxt.build(token) - return 28, err + return 24, err + } + if ok, token, err := ctxt.matchDocStringSeparator(line); ok { + ctxt.startRule(RuleTypeDocString) + ctxt.build(token) + return 37, err } if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDescription) + 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) { - ctxt.endRule(RuleTypeDescription) + ctxt.endRule(RuleTypeStep) 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(RuleTypeStep) 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(RuleTypeStep) 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(RuleTypeStep) ctxt.endRule(RuleTypeBackground) ctxt.endRule(RuleTypeRule) ctxt.startRule(RuleTypeRule) ctxt.startRule(RuleTypeRuleHeader) + ctxt.build(token) + return 19, err + } + if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 23, err } - if ok, token, err := ctxt.matchOther(line); ok { + if ok, token, err := ctxt.matchEmpty(line); ok { ctxt.build(token) - return 27, err + return 23, 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: 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2633,225 +2325,61 @@ func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 27, err + return 23, 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:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 +func (ctxt *parseContext) matchAt24(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(RuleTypeRule) ctxt.endRule(RuleTypeFeature) ctxt.build(token) - return 42, err + return 34, err } - if ok, token, err := ctxt.matchComment(line); ok { + if ok, token, err := ctxt.matchTableRow(line); ok { ctxt.build(token) - return 28, 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) { + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) 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(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) 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(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) 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.matchEmpty(line); ok { - ctxt.build(token) - return 28, 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"} - 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 28, err -} - -// GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 -func (ctxt *parseContext) matchAt29(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 - } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.startRule(RuleTypeDataTable) - ctxt.build(token) - return 30, err - } - if ok, token, err := ctxt.matchDocStringSeparator(line); ok { - ctxt.startRule(RuleTypeDocString) - ctxt.build(token) - return 45, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 29, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeStep) - 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(RuleTypeStep) - 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(RuleTypeStep) - 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(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeRule) - ctxt.startRule(RuleTypeRule) - ctxt.startRule(RuleTypeRuleHeader) - ctxt.build(token) - return 23, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 29, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 29, err - } - - // var stateComment = "State: 29 - 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{ - 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 29, 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) { - if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.endRule(RuleTypeBackground) - ctxt.endRule(RuleTypeRule) - ctxt.endRule(RuleTypeFeature) - ctxt.build(token) - return 42, err - } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.build(token) - return 30, err - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 29, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) @@ -2861,18 +2389,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 +2415,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 +2454,40 @@ 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.startRule(RuleTypeDescription) ctxt.build(token) - return 32, err + return 27, 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 +2497,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 +2508,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 +2522,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 +2531,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 +2554,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:0>Description:0>__alt1:0>#Empty: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 +2566,21 @@ 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.matchEmpty(line); ok { + ctxt.build(token) + return 27, 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 +2588,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 +2599,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 +2611,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 +2627,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,108 +2637,15 @@ 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 - } - - // var stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" - var expectedTokens = []string{"#EOF", "#Comment", "#StepLine", "#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 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 + return 27, 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"} + // var stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} if line.IsEof() { err = &parseError{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -3219,11 +2659,11 @@ func (ctxt *parseContext) matchAt34(line *Line) (newState int, err error) { } // 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 +2671,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 +2695,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 +2706,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 +2718,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 +2734,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 +2744,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 +2770,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,198 +2783,44 @@ 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 - } - if ok, token, err := ctxt.matchStepLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeStep) - ctxt.build(token) - return 35, err - } - if ok, token, err := ctxt.matchTagLine(line); ok { - if ctxt.lookahead1(line) { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - ctxt.startRule(RuleTypeExamplesDefinition) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 38, err - } - if ok, token, err := ctxt.matchScenarioLine(line); ok { - ctxt.endRule(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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(RuleTypeDataTable) - ctxt.endRule(RuleTypeStep) - 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.matchComment(line); ok { - ctxt.build(token) - return 36, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 36, 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 expectedTokens = []string{"#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#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 36, 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) { - if ok, token, err := ctxt.matchTagLine(line); ok { - ctxt.build(token) - return 37, err - } - if ok, token, err := ctxt.matchExamplesLine(line); ok { - ctxt.endRule(RuleTypeTags) - ctxt.startRule(RuleTypeExamples) - ctxt.build(token) - return 38, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 37, err - } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 37, err - } - - // var stateComment = "State: 37 - 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{ - 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 37, 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) { - 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.matchEmpty(line); ok { - ctxt.build(token) - return 38, err - } - if ok, token, err := ctxt.matchComment(line); ok { - ctxt.build(token) - return 40, err + return 29, err } - if ok, token, err := ctxt.matchTableRow(line); ok { - ctxt.startRule(RuleTypeExamplesTable) + if ok, token, err := ctxt.matchStepLine(line); ok { + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) + ctxt.startRule(RuleTypeStep) ctxt.build(token) - return 41, err + return 28, err } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead1(line) { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) ctxt.endRule(RuleTypeRule) @@ -3542,45 +2828,48 @@ 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) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + 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(RuleTypeExamples) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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) - ctxt.endRule(RuleTypeExamplesDefinition) + ctxt.endRule(RuleTypeDataTable) + ctxt.endRule(RuleTypeStep) ctxt.endRule(RuleTypeScenario) ctxt.endRule(RuleTypeScenarioDefinition) 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) + if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) - return 39, err + return 29, err + } + if ok, token, err := ctxt.matchEmpty(line); ok { + ctxt.build(token) + return 29, err } - // var stateComment = "State: 38 - 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -3594,13 +2883,51 @@ func (ctxt *parseContext) matchAt38(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 38, err + return 29, 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:0>Tags:0>#TagLine:0 +func (ctxt *parseContext) matchAt30(line *Line) (newState int, err error) { + if ok, token, err := ctxt.matchTagLine(line); ok { + ctxt.build(token) + return 30, err + } + if ok, token, err := ctxt.matchExamplesLine(line); ok { + ctxt.endRule(RuleTypeTags) + ctxt.startRule(RuleTypeExamples) + ctxt.build(token) + return 31, err + } + if ok, token, err := ctxt.matchComment(line); ok { + ctxt.build(token) + return 30, err + } + if ok, token, err := ctxt.matchEmpty(line); ok { + ctxt.build(token) + return 30, err + } + + // 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{ + 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 30, err +} + +// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 +func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { if ok, token, err := ctxt.matchEOF(line); ok { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3608,33 +2935,35 @@ 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.matchEmpty(line); ok { + ctxt.startRule(RuleTypeDescription) + ctxt.build(token) + return 32, err } if ok, token, err := ctxt.matchComment(line); ok { - ctxt.endRule(RuleTypeDescription) + ctxt.startRule(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) { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3642,11 +2971,10 @@ 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 { - ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3656,19 +2984,17 @@ 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) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) 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) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3676,10 +3002,9 @@ 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) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3688,15 +3013,16 @@ 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.startRule(RuleTypeDescription) ctxt.build(token) - return 39, err + return 32, 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"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -3710,12 +3036,13 @@ func (ctxt *parseContext) matchAt39(line *Line) (newState int, err error) { } // if (ctxt.p.stopAtFirstError) throw error; //ctxt.addError(err) - return 39, err + return 31, 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) { +// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3723,29 +3050,36 @@ func (ctxt *parseContext) matchAt40(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 32, err } if ok, token, err := ctxt.matchComment(line); ok { 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) { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeExamplesDefinition) ctxt.startRule(RuleTypeTags) ctxt.build(token) - return 37, err + return 30, err } } if ok, token, err := ctxt.matchTagLine(line); ok { if ctxt.lookahead0(line) { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3753,10 +3087,11 @@ func (ctxt *parseContext) matchAt40(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 { + ctxt.endRule(RuleTypeDescription) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3766,17 +3101,19 @@ func (ctxt *parseContext) matchAt40(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.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) 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) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3784,9 +3121,10 @@ func (ctxt *parseContext) matchAt40(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) ctxt.endRule(RuleTypeExamples) ctxt.endRule(RuleTypeExamplesDefinition) ctxt.endRule(RuleTypeScenario) @@ -3795,15 +3133,15 @@ func (ctxt *parseContext) matchAt40(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.matchEmpty(line); ok { + if ok, token, err := ctxt.matchOther(line); ok { ctxt.build(token) - return 40, err + return 32, 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:0>Description:0>__alt1:0>#Empty:0" + var expectedTokens = []string{"#EOF", "#Empty", "#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 +3155,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 +3169,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 +3183,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 +3196,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 +3210,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 +3219,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 +3230,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 +3242,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 +3268,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 +3297,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 +3310,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 +3326,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 +3338,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 +3351,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 +3359,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 +3369,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 +3380,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 +3406,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 +3435,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 +3447,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 +3464,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 +3476,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 +3485,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 +3495,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 +3521,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 +3550,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 +3562,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 +3578,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 +3590,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 +3602,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 +3610,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 +3620,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 +3630,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 +3656,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 +3685,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 +3713,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 +3724,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 +3733,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 +3742,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 +3768,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 914dcc1af..5a07c8a40 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 := Description? + Description, // Description! := (#Empty | #Comment | #Other)+ ; 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,24 +581,26 @@ 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)) { + startRule(context, RuleType.Description); build(context, token); - return 3; + return 4; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 3; + 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 +610,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 +620,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 +628,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 +636,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 +656,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:0>Description:0>__alt1:0>#Empty:0 private int matchTokenAt_4(Token token, ParserContext context) { if (match_EOF(context, token)) { @@ -686,7 +664,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_Empty(context, token)) + { + build(context, token); + return 4; } if (match_Comment(context, token)) { @@ -699,7 +682,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)) { @@ -710,7 +693,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)) @@ -721,7 +704,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)) { @@ -730,7 +713,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)) { @@ -739,7 +722,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)) { @@ -747,9 +730,9 @@ 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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); @@ -758,72 +741,79 @@ private 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 private 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)) { + startRule(context, RuleType.Description); build(context, token); - return 5; + return 6; } - 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; } - final String stateComment = "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0"; + final String stateComment = "State: 5 - GherkinDocument:0>Feature: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); @@ -832,14 +822,15 @@ private int matchTokenAt_5(Token token, ParserContext context) { return 5; } - // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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_Empty(context, token)) { @@ -853,54 +844,58 @@ private int matchTokenAt_6(Token token, ParserContext context) { } 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; } - final String stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0"; + final String stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -911,77 +906,89 @@ private 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 private 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)) { + startRule(context, RuleType.DataTable); build(context, token); - return 7; + 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; } - final String stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other: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", "#Other"); + 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); @@ -990,61 +997,78 @@ private 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 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_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)) { @@ -1052,9 +1076,9 @@ private int matchTokenAt_8(Token token, ParserContext context) { return 8; } - final String stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment: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", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#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); @@ -1063,74 +1087,19 @@ private 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 private 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)) { @@ -1143,9 +1112,9 @@ private int matchTokenAt_9(Token token, ParserContext context) { return 9; } - final String stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0"; + final String stateComment = "State: 9 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); + List expectedTokens = asList("#TagLine", "#ScenarioLine", "#Comment", "#Empty"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); @@ -1154,157 +1123,33 @@ private 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 private 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; - } - - 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)) - { - build(context, token); - return 11; - } - - final String stateComment = "State: 11 - GherkinDocument:0>Feature: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 11; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private int matchTokenAt_12(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)) { + startRule(context, RuleType.Description); build(context, token); - return 12; + return 11; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 12; + return 11; } if (match_StepLine(context, token)) { startRule(context, RuleType.Step); build(context, token); - return 15; + return 12; } if (match_TagLine(context, token)) { @@ -1313,7 +1158,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)) @@ -1325,7 +1170,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)) @@ -1336,14 +1181,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)) { @@ -1352,7 +1197,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)) { @@ -1361,16 +1206,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() @@ -1378,11 +1223,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:0>Description:0>__alt1:0>#Empty:0 + private int matchTokenAt_11(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -1390,19 +1235,24 @@ 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_Empty(context, token)) + { + build(context, token); + return 11; } if (match_Comment(context, token)) { build(context, token); - return 13; + 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)) { @@ -1412,7 +1262,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)) @@ -1425,7 +1275,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)) @@ -1437,7 +1287,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)) { @@ -1445,7 +1295,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)) { @@ -1455,7 +1305,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)) { @@ -1465,176 +1315,194 @@ 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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + 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 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); @@ -1642,129 +1510,16 @@ 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; - } - 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; - } - 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; - } - - final String stateComment = "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0"; - token.detach(); - 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 15; - } - - // 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)) - { - 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; + return 15; } if (match_ScenarioLine(context, token)) { @@ -1775,7 +1530,7 @@ private int matchTokenAt_16(Token token, ParserContext context) { startRule(context, RuleType.ScenarioDefinition); startRule(context, RuleType.Scenario); build(context, token); - return 12; + return 10; } if (match_RuleLine(context, token)) { @@ -1786,20 +1541,20 @@ private 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; } - final String stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow: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", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#Empty"); ParserException error = token.isEOF() @@ -1807,35 +1562,35 @@ private int matchTokenAt_16(Token token, ParserContext context) { : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); addError(context, error); - return 16; + return 13; } // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private int matchTokenAt_17(Token token, ParserContext context) { + private 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; } - 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() @@ -1843,11 +1598,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); @@ -1856,23 +1611,25 @@ 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)) { + startRule(context, RuleType.Description); build(context, token); - return 18; + return 16; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 18; + return 16; } if (match_TableRow(context, token)) { startRule(context, RuleType.ExamplesTable); build(context, token); - return 21; + return 17; } if (match_TagLine(context, token)) { @@ -1883,7 +1640,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)) @@ -1897,7 +1654,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)) @@ -1910,7 +1667,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)) { @@ -1919,7 +1676,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)) { @@ -1930,7 +1687,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)) { @@ -1941,16 +1698,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() @@ -1958,11 +1715,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:0>Description:0>__alt1:0>#Empty:0 + private int matchTokenAt_16(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -1972,19 +1729,24 @@ 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_Empty(context, token)) + { + build(context, token); + return 16; } if (match_Comment(context, token)) { build(context, token); - return 19; + 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)) { @@ -1996,7 +1758,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)) @@ -2011,7 +1773,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)) @@ -2025,7 +1787,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)) { @@ -2035,7 +1797,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)) { @@ -2047,7 +1809,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)) { @@ -2059,64 +1821,61 @@ 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:0>Description:0>__alt1:0>#Empty: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 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); @@ -2124,11 +1883,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); @@ -2137,19 +1897,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); @@ -2157,10 +1919,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); @@ -2168,165 +1931,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; - } - } - 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; - } - - 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() @@ -2334,35 +1987,37 @@ 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)) { + startRule(context, RuleType.Description); build(context, token); - return 23; + return 20; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 23; + 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)) { @@ -2372,7 +2027,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)) @@ -2383,7 +2038,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)) { @@ -2391,7 +2046,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)) { @@ -2400,16 +2055,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() @@ -2417,11 +2072,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:0>Description:0>__alt1:0>#Empty:0 + private int matchTokenAt_20(Token token, ParserContext context) { if (match_EOF(context, token)) { endRule(context, RuleType.Description); @@ -2429,12 +2084,17 @@ 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_Empty(context, token)) + { + build(context, token); + return 20; } if (match_Comment(context, token)) { build(context, token); - return 24; + return 20; } if (match_BackgroundLine(context, token)) { @@ -2442,7 +2102,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)) { @@ -2453,7 +2113,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)) @@ -2465,7 +2125,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)) { @@ -2474,7 +2134,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)) { @@ -2484,174 +2144,186 @@ 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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : 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)) + { + startRule(context, RuleType.Description); + build(context, token); + return 22; } 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:0>Description:0>__alt1:0>#Empty: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; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 26; + return 22; } if (match_Comment(context, token)) { build(context, token); - return 26; + 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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); List expectedTokens = asList("#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() @@ -2659,197 +2331,38 @@ private int matchTokenAt_26(Token token, ParserContext context) { : 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 27; + return 24; } - if (match_StepLine(context, token)) - { - endRule(context, RuleType.Description); - startRule(context, RuleType.Step); - 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; - } - - 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; - } - 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)) + 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)) { @@ -2860,7 +2373,7 @@ private 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)) @@ -2872,7 +2385,7 @@ private 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)) { @@ -2881,7 +2394,7 @@ private 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)) { @@ -2891,20 +2404,20 @@ private 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; } - 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() @@ -2912,11 +2425,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); @@ -2925,12 +2438,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)) { @@ -2938,7 +2451,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)) { @@ -2950,7 +2463,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)) @@ -2963,7 +2476,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)) { @@ -2973,7 +2486,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)) { @@ -2984,278 +2497,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 32; - } - 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)) - { - build(context, token); - return 33; - } - 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)) + + 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); @@ -3263,18 +2566,25 @@ 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)) + { + startRule(context, RuleType.Description); + build(context, token); + return 27; } 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)) { @@ -3283,7 +2593,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)) @@ -3295,7 +2605,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)) @@ -3307,14 +2617,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)) { @@ -3323,7 +2633,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)) { @@ -3333,83 +2643,82 @@ 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:0>Description:0>__alt1:0>#Empty: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; + return 34; } - if (match_TableRow(context, token)) + if (match_Empty(context, token)) { - startRule(context, RuleType.DataTable); build(context, token); - return 36; + return 27; } - 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); @@ -3417,114 +2726,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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); - List expectedTokens = asList("#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Comment", "#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 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 29; + } + if (match_DocStringSeparator(context, token)) + { + startRule(context, RuleType.DocString); build(context, token); - return 36; + 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); @@ -3533,31 +2839,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); @@ -3565,125 +2868,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 38; + 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); @@ -3691,63 +2955,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); @@ -3755,38 +3058,42 @@ 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)) + { + startRule(context, RuleType.Description); + build(context, token); + return 32; } if (match_Comment(context, token)) { + startRule(context, RuleType.Description); build(context, token); - return 39; + 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); @@ -3794,12 +3101,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); @@ -3809,21 +3115,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); @@ -3831,11 +3135,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); @@ -3844,29 +3147,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:0>Description:0>__alt1:0>#Empty: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); @@ -3874,35 +3179,43 @@ 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_Empty(context, token)) + { + build(context, token); + return 32; } 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); @@ -3910,11 +3223,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); @@ -3924,19 +3238,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); @@ -3944,10 +3260,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); @@ -3956,27 +3273,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:0>Description:0>__alt1:0>#Empty:0"; token.detach(); - List expectedTokens = asList("#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"); + 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 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); @@ -3987,12 +3304,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)) { @@ -4004,7 +3321,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)) @@ -4019,7 +3336,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)) @@ -4034,7 +3351,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)) { @@ -4044,7 +3361,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)) { @@ -4056,7 +3373,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)) { @@ -4069,20 +3386,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() @@ -4090,23 +3407,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() @@ -4114,11 +3431,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); @@ -4128,7 +3445,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)) { @@ -4136,7 +3453,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)) { @@ -4147,7 +3464,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)) @@ -4161,7 +3478,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)) @@ -4175,7 +3492,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)) { @@ -4184,7 +3501,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)) { @@ -4195,7 +3512,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)) { @@ -4207,20 +3524,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() @@ -4228,23 +3545,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() @@ -4252,11 +3569,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); @@ -4265,7 +3582,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)) { @@ -4273,7 +3590,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)) { @@ -4285,7 +3602,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)) @@ -4298,7 +3615,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)) { @@ -4308,7 +3625,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)) { @@ -4319,20 +3636,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() @@ -4340,23 +3657,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() @@ -4364,11 +3681,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); @@ -4377,7 +3694,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)) { @@ -4385,7 +3702,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)) { @@ -4396,7 +3713,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)) @@ -4410,7 +3727,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)) @@ -4423,7 +3740,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)) { @@ -4432,7 +3749,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)) { @@ -4443,7 +3760,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)) { @@ -4454,20 +3771,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() @@ -4475,23 +3792,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() @@ -4499,11 +3816,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); @@ -4511,7 +3828,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)) { @@ -4519,7 +3836,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)) { @@ -4531,7 +3848,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)) @@ -4543,7 +3860,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)) { @@ -4553,7 +3870,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)) { @@ -4563,20 +3880,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() @@ -4584,7 +3901,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..3eff41e46 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 := Description? + Description, // Description! := (#Empty | #Comment | #Other)+ } 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,23 @@ 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.startRule(context, RuleType.Description); this.build(context, token); - return 3; + return 4; } 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 +430,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 +439,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 +470,29 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token)) { + this.build(context, token); + return 4; } 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 +501,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 +511,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 +519,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 +527,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); @@ -546,7 +535,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#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); @@ -554,31 +543,36 @@ 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.startRule(context, RuleType.Description); this.build(context, token); - return 5; + return 6; } - 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 +581,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,13 +612,14 @@ 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:0>Description:0>__alt1:0>#Empty: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; + return 34; } if(this.match_Empty(context, token)) { this.build(context, token); @@ -631,48 +627,52 @@ export default class Parser { } 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(); @@ -684,25 +684,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 +716,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 +726,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 +734,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 +742,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 +762,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 +832,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 +840,67 @@ 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.startRule(context, RuleType.Description); this.build(context, token); - return 10; + return 11; } - 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 +909,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 +919,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 +933,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 +941,55 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token)) { this.build(context, token); - return 10; + return 11; + } + if(this.match_Comment(context, token)) { + this.build(context, token); + 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 +999,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 +1010,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 +1026,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 +1035,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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1001,85 +1051,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 +1150,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 +1187,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 +1251,173 @@ 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.startRule(context, RuleType.Description); + this.build(context, token); + return 16; } 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token)) { this.build(context, token); return 16; } - if(this.match_DocStringSeparator(context, token)) { - this.startRule(context, RuleType.DocString); + if(this.match_Comment(context, token)) { this.build(context, token); - return 47; + return 16; } - 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,95 +1425,96 @@ 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.startRule(context, RuleType.Rule); + 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; - } - 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", "#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 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 +1523,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 +1535,200 @@ 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.startRule(context, RuleType.Description); this.build(context, token); - return 18; + return 20; } 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:0>Description:0>__alt1:0>#Empty: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); + if(this.match_Empty(context, token)) { this.build(context, token); return 20; } - if(this.match_TableRow(context, token)) { - this.endRule(context); - this.startRule(context, RuleType.ExamplesTable); + if(this.match_Comment(context, token)) { this.build(context, token); - return 21; + return 20; } - 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,917 +1736,211 @@ 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", "#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 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.startRule(context, RuleType.Description); this.build(context, token); - return 20; + return 22; } - 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; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 20; - } - - token.detach(); - const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#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 20; } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow: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.endRule(context); - 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, 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; - } - } - 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; - } - } - if(this.match_TagLine(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.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; - } - 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; - } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 22; - } - - token.detach(); - 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 22; } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine: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; - } - if(this.match_Other(context, token)) { - this.startRule(context, RuleType.Description); - 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); - this.build(context, token); - return 25; - } - if(this.match_BackgroundLine(context, token)) { - this.endRule(context); - 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.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; + return 19; } 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.startRule(context, RuleType.Description); 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 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 28; } + return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - private matchTokenAt_29(token: IToken, context: Context) { + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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.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; - } + return 34; } - 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); + if(this.match_Empty(context, token)) { 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; + return 22; } 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)) { 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)) { 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_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; + 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; - } - 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; + return 19; } - if(this.match_Empty(context, token)) { + if(this.match_Other(context, token)) { this.build(context, token); - return 31; + return 22; } token.detach(); - const expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#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 31; } + return 22; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private matchTokenAt_32(token: IToken, context: Context) { + // 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.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 32; + return 24; } - if(this.match_Comment(context, token)) { + if(this.match_DocStringSeparator(context, token)) { + this.startRule(context, RuleType.DocString); this.build(context, token); - return 34; + return 37; } 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.startRule(context, RuleType.ExamplesDefinition); - this.startRule(context, RuleType.Tags); - this.build(context, token); - return 37; - } + return 23; } if(this.match_TagLine(context, token)) { if(this.lookahead_0(context, token)) { @@ -2564,7 +1949,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)) { @@ -2575,13 +1960,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 +1968,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 +1976,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 +2006,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 +2027,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 +2039,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 +2048,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 +2058,87 @@ 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.startRule(context, RuleType.Description); + this.build(context, token); + return 27; } 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 +2148,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 +2159,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 +2173,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 +2182,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:0>Description:0>__alt1:0>#Empty:0 + private matchTokenAt_27(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -2801,23 +2208,21 @@ 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.startRule(context, RuleType.DataTable); + if(this.match_Empty(context, token)) { this.build(context, token); - return 36; + return 27; } - 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 +2230,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 +2241,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 +2253,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 +2269,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 +2279,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", "#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 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 +2336,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 +2347,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 +2407,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; - } - if(this.match_Comment(context, token)) { - this.build(context, token); - return 40; + return 34; } if(this.match_TableRow(context, token)) { - this.startRule(context, RuleType.ExamplesTable); this.build(context, token); - return 41; + return 29; + } + if(this.match_StepLine(context, token)) { + this.endRule(context); + this.endRule(context); + this.startRule(context, RuleType.Step); + this.build(context, token); + return 28; } if(this.match_TagLine(context, token)) { if(this.lookahead_1(context, token)) { @@ -3060,7 +2427,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 +2439,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 +2452,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 +2460,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 +2470,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 +2481,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 +2541,31 @@ 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.startRule(context, RuleType.Description); + this.build(context, token); + return 32; } 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 +2574,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 +2586,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 +2616,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:0>Description:0>__alt1:0>#Empty:0 + private matchTokenAt_32(token: IToken, context: Context) { if(this.match_EOF(context, token)) { this.endRule(context); this.endRule(context); @@ -3247,26 +2645,33 @@ 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_Empty(context, token)) { + this.build(context, token); + return 32; } 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 +2680,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 +2693,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 +2726,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", "#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 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 +2757,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 +2771,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 +2784,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 +2798,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 +2807,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 +2818,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 +2830,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 +2848,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 +2868,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 +2880,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 +2896,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 +2908,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 +2921,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 +2929,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 +2939,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 +2950,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 +2968,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 +2988,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 +2999,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 +3016,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 +3028,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 +3037,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 +3047,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 +3065,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 +3085,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 +3096,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 +3112,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 +3124,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 +3136,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 +3144,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 +3154,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 +3164,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 +3182,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 +3202,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 +3229,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 +3240,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 +3249,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 +3258,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 +3276,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..d1343e445 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,19 +255,21 @@ 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) { $self->add_error( $context, $err ) if $err; + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 3; + return 4; } ($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 +277,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 +287,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 +298,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 +307,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 +316,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 +337,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:0>Description:0>__alt1:0>#Empty:0 sub match_token_at_4 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); @@ -354,14 +348,19 @@ 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_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 4; } ($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 +369,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 +380,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 +392,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 +402,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 +412,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) { @@ -425,108 +424,117 @@ sub match_token_at_4 { $token->detach; $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", + ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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->_start_rule($context, 'Description'); $self->_build($context, $token); - return 5; + return 6; } - ($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:0>Description:0>__alt1:0>#Empty: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; + return 34; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { @@ -538,145 +546,162 @@ sub match_token_at_6 { 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", + "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 +711,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 +742,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,289 +811,89 @@ 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); + ($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->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 42; + return 9; } - ($ok, $err) = $context->token_matcher->match_TableRow($token); + ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DataTable'); + $self->_end_rule($context, 'Tags'); + $self->_start_rule($context, 'Scenario'); $self->_build($context, $token); return 10; } - ($ok, $err) = $context->token_matcher->match_DocStringSeparator($token); + ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; - $self->_start_rule($context, 'DocString'); $self->_build($context, $token); - return 49; + return 9; } - ($ok, $err) = $context->token_matcher->match_StepLine($token); + ($ok, $err) = $context->token_matcher->match_Empty($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); + + $token->detach; + $err = $self->_construct_parser_error( + $token, + ["#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: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; - 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->_end_rule($context, 'Scenario'); + $self->_end_rule($context, 'ScenarioDefinition'); + $self->_end_rule($context, 'Feature'); $self->_build($context, $token); - return 11; - } + return 34; } - ($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, 'Step'); - $self->_end_rule($context, 'Background'); - $self->_start_rule($context, 'Rule'); - $self->_start_rule($context, 'RuleHeader'); - $self->_start_rule($context, 'Tags'); + $self->_start_rule($context, 'Description'); $self->_build($context, $token); - return 22; + return 11; } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); + ($ok, $err) = $context->token_matcher->match_Comment($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->_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; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 9; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 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", - ); - $self->add_error( $context, $err ); - - return 9; -} - -# GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow: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, '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 10; - } - ($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; - } - ($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->_start_rule($context, 'Description'); $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, 'Background'); - $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, '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; - } - ($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; - } - ($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; - } - - $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); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 11; - } - ($ok, $err) = $context->token_matcher->match_ScenarioLine($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_end_rule($context, 'Tags'); - $self->_start_rule($context, 'Scenario'); - $self->_build($context, $token); - return 12; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 11; - } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 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", - ); - $self->add_error( $context, $err ); - - return 11; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine: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, '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; - } - ($ok, $err) = $context->token_matcher->match_Comment($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 14; } ($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 15; + return 12; } ($ok, $err) = $context->token_matcher->match_TagLine($token); if ($ok) { @@ -1059,7 +902,7 @@ sub match_token_at_12 { $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); @@ -1071,7 +914,7 @@ sub match_token_at_12 { $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); @@ -1083,7 +926,7 @@ sub match_token_at_12 { $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) { @@ -1091,7 +934,7 @@ sub match_token_at_12 { $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) { @@ -1101,7 +944,7 @@ sub match_token_at_12 { $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) { @@ -1111,29 +954,29 @@ sub match_token_at_12 { $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", + "State: 10 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0", ); $self->add_error( $context, $err ); - return 12; + return 10; } -# 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:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +sub match_token_at_11 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1144,215 +987,115 @@ sub match_token_at_13 { $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->_end_rule($context, 'Description'); - $self->_build($context, $token); - return 14; - } - ($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 34; } - ($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; - 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; - } - } - ($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; - } - } - ($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; - } - ($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; - } - ($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; - } - ($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; - } - ($ok, $err) = $context->token_matcher->match_Other($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 13; - } - - $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", - ); - $self->add_error( $context, $err ); - - return 13; -} - -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 -sub match_token_at_14 { - 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, '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 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_Empty($token); + ($ok, $err) = $context->token_matcher->match_Other($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 14; + return 11; } $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", + ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0", ); $self->add_error( $context, $err ); - return 14; + return 11; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 -sub match_token_at_15 { +sub match_token_at_12 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1363,21 +1106,21 @@ sub match_token_at_15 { $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->_start_rule($context, 'DataTable'); $self->_build($context, $token); - return 16; + 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 47; + return 39; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -1385,7 +1128,7 @@ sub match_token_at_15 { $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) { @@ -1395,7 +1138,7 @@ sub match_token_at_15 { $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); @@ -1408,7 +1151,7 @@ sub match_token_at_15 { $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); @@ -1421,7 +1164,7 @@ sub match_token_at_15 { $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) { @@ -1430,7 +1173,7 @@ sub match_token_at_15 { $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) { @@ -1441,7 +1184,7 @@ sub match_token_at_15 { $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) { @@ -1452,34 +1195,34 @@ sub match_token_at_15 { $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 15; + return 12; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 15; + return 12; } $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", + "State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0", ); $self->add_error( $context, $err ); - return 15; + return 12; } # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 -sub match_token_at_16 { +sub match_token_at_13 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1491,13 +1234,13 @@ sub match_token_at_16 { $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 16; + return 13; } ($ok, $err) = $context->token_matcher->match_StepLine($token); if ($ok) { @@ -1506,7 +1249,7 @@ sub match_token_at_16 { $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) { @@ -1517,7 +1260,7 @@ sub match_token_at_16 { $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); @@ -1531,7 +1274,7 @@ sub match_token_at_16 { $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); @@ -1545,7 +1288,7 @@ sub match_token_at_16 { $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) { @@ -1555,7 +1298,7 @@ sub match_token_at_16 { $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) { @@ -1567,7 +1310,7 @@ sub match_token_at_16 { $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 +1322,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 +1364,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 +1403,28 @@ 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->_start_rule($context, 'Description'); $self->_build($context, $token); - return 18; + return 16; } ($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 +1435,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 +1449,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 +1463,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 +1473,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 +1485,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 +1497,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:0>Description:0>__alt1:0>#Empty:0 +sub match_token_at_16 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -1787,14 +1532,19 @@ 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_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 16; } ($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 +1552,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 +1564,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 +1579,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 +1594,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 +1605,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,7 +1618,7 @@ sub match_token_at_19 { $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) { @@ -1881,147 +1631,28 @@ sub match_token_at_19 { $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; - } - ($ok, $err) = $context->token_matcher->match_RuleLine($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->_build($context, $token); - return 23; - } - ($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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 +1665,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 +1683,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 +1698,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 +1713,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 +1724,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 +1737,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 +1750,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 +1828,21 @@ 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->_start_rule($context, 'Description'); $self->_build($context, $token); - return 23; + return 20; } ($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 +1850,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 +1860,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 +1872,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 +1881,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 +1891,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:0>Description:0>__alt1:0>#Empty:0 +sub match_token_at_20 { my ( $self, $token, $context ) = @_; my ( $ok, $err ); ($ok, $err) = $context->token_matcher->match_EOF($token); @@ -2291,444 +1924,285 @@ sub match_token_at_24 { $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->_end_rule($context, 'Description'); - $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, 'Description'); - $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, '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; + return 34; } - - $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); + ($ok, $err) = $context->token_matcher->match_Empty($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; + return 20; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 25; + return 20; } ($ok, $err) = $context->token_matcher->match_BackgroundLine($token); if ($ok) { $self->add_error( $context, $err ) if $err; + $self->_end_rule($context, 'Description'); $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, '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->_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, '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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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->_start_rule($context, 'Description'); + $self->_build($context, $token); + return 22; } ($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:0>Description:0>__alt1:0>#Empty: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_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 22; } ($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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 +2213,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 +2235,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 +2246,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 +2259,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 +2269,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 +2280,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 +2319,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 +2334,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 +2346,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 +2360,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 +2371,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 +2383,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 +2425,92 @@ 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->_start_rule($context, 'Description'); + $self->_build($context, $token); + return 27; } ($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 +2518,119 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $self->_build($context, $token); + return 27; } ($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 +2638,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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 +2703,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 +2725,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 +2735,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 +2748,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 +2762,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 +2771,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 +2782,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 +2794,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 +2834,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 +2849,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 +2860,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 +2874,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 +2889,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 +2899,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 +2911,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 +2924,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; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 37; + return 29; } ($ok, $err) = $context->token_matcher->match_Empty($token); if ($ok) { $self->add_error( $context, $err ) if $err; $self->_build($context, $token); - return 37; + return 29; } $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; - } - ($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; - } - } + $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->_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 30; } ($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->_end_rule($context, 'Tags'); $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, '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 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 +3006,45 @@ 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->_start_rule($context, 'Description'); + $self->_build($context, $token); + return 32; } ($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 +3052,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 +3067,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 +3089,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 +3102,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:0>Description:0>__alt1:0>#Empty: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 +3138,46 @@ 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_Empty($token); + if ($ok) { + $self->add_error( $context, $err ) if $err; + $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 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 +3185,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 +3201,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 +3225,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 +3239,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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 +3274,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 +3292,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 +3307,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 +3323,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 +3334,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 +3347,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 +3361,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 +3429,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 +3438,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 +3449,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 +3463,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 +3478,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 +3488,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 +3500,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 +3513,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 +3580,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 +3589,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 +3601,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 +3615,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 +3626,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 +3638,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 +3705,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 +3714,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 +3725,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 +3739,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 +3753,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 +3763,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 +3775,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 +3787,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 +3853,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 +3862,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 +3874,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 +3887,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 +3898,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 +3909,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 deleted file mode 100644 index 0886c26d0..000000000 --- a/php/src-generated/Parser.php +++ /dev/null @@ -1,4019 +0,0 @@ - - */ - use ParserTrait; - - private function match_EOF(ParserContext $context, Token $token): bool - { - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_EOF($token), - false, - ); - } - - private function match_Empty(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_Empty($token), - false, - ); - } - - private function match_Comment(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_Comment($token), - false, - ); - } - - private function match_TagLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_TagLine($token), - false, - ); - } - - private function match_FeatureLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_FeatureLine($token), - false, - ); - } - - private function match_RuleLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_RuleLine($token), - false, - ); - } - - private function match_BackgroundLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_BackgroundLine($token), - false, - ); - } - - private function match_ScenarioLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_ScenarioLine($token), - false, - ); - } - - private function match_ExamplesLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_ExamplesLine($token), - false, - ); - } - - private function match_StepLine(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_StepLine($token), - false, - ); - } - - private function match_DocStringSeparator(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_DocStringSeparator($token), - false, - ); - } - - private function match_TableRow(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_TableRow($token), - false, - ); - } - - private function match_Language(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_Language($token), - false, - ); - } - - private function match_Other(ParserContext $context, Token $token): bool - { - if ($token->isEOF()) { - return false; - } - - return $this->handleExternalError( - $context, - fn () => $context->tokenMatcher->match_Other($token), - false, - ); - } - - private function matchToken(int $state, Token $token, ParserContext $context): int - { - return match ($state) { - 0 => $this->matchTokenAt_0($token, $context), - 1 => $this->matchTokenAt_1($token, $context), - 2 => $this->matchTokenAt_2($token, $context), - 3 => $this->matchTokenAt_3($token, $context), - 4 => $this->matchTokenAt_4($token, $context), - 5 => $this->matchTokenAt_5($token, $context), - 6 => $this->matchTokenAt_6($token, $context), - 7 => $this->matchTokenAt_7($token, $context), - 8 => $this->matchTokenAt_8($token, $context), - 9 => $this->matchTokenAt_9($token, $context), - 10 => $this->matchTokenAt_10($token, $context), - 11 => $this->matchTokenAt_11($token, $context), - 12 => $this->matchTokenAt_12($token, $context), - 13 => $this->matchTokenAt_13($token, $context), - 14 => $this->matchTokenAt_14($token, $context), - 15 => $this->matchTokenAt_15($token, $context), - 16 => $this->matchTokenAt_16($token, $context), - 17 => $this->matchTokenAt_17($token, $context), - 18 => $this->matchTokenAt_18($token, $context), - 19 => $this->matchTokenAt_19($token, $context), - 20 => $this->matchTokenAt_20($token, $context), - 21 => $this->matchTokenAt_21($token, $context), - 22 => $this->matchTokenAt_22($token, $context), - 23 => $this->matchTokenAt_23($token, $context), - 24 => $this->matchTokenAt_24($token, $context), - 25 => $this->matchTokenAt_25($token, $context), - 26 => $this->matchTokenAt_26($token, $context), - 27 => $this->matchTokenAt_27($token, $context), - 28 => $this->matchTokenAt_28($token, $context), - 29 => $this->matchTokenAt_29($token, $context), - 30 => $this->matchTokenAt_30($token, $context), - 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), - 38 => $this->matchTokenAt_38($token, $context), - 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), - default => throw new \LogicException("Unknown state: $state"), - }; - } - - - // Start - private function matchTokenAt_0(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->build($context, $token); - return 42; - } - if ($this->match_Language($context, $token)) { - $this->startRule($context, RuleType::Feature); - $this->startRule($context, RuleType::FeatureHeader); - $this->build($context, $token); - return 1; - } - if ($this->match_TagLine($context, $token)) { - $this->startRule($context, RuleType::Feature); - $this->startRule($context, RuleType::FeatureHeader); - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 2; - } - if ($this->match_FeatureLine($context, $token)) { - $this->startRule($context, RuleType::Feature); - $this->startRule($context, RuleType::FeatureHeader); - $this->build($context, $token); - return 3; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 0; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 0; - } - - $stateComment = "State: 0 - Start"; - $expectedTokens = ["#EOF", "#Language", "#TagLine", "#FeatureLine", "#Comment", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 0; - } - - // GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0 - private function matchTokenAt_1(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->startRule($context, RuleType::Tags); - $this->build($context, $token); - return 2; - } - if ($this->match_FeatureLine($context, $token)) { - $this->build($context, $token); - return 3; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 1; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 1; - } - - $stateComment = "State: 1 - GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0"; - $expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 1; - } - - // GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0 - private function matchTokenAt_2(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 2; - } - if ($this->match_FeatureLine($context, $token)) { - $this->endRule($context, RuleType::Tags); - $this->build($context, $token); - return 3; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 2; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 2; - } - - $stateComment = "State: 2 - GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0"; - $expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 2; - } - - // GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0 - private function matchTokenAt_3(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_Empty($context, $token)) { - $this->build($context, $token); - return 3; - } - 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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 4; - } - - $stateComment = "State: 3 - GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0"; - $expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 3; - } - - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_4(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->endRule($context, RuleType::FeatureHeader); - $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 5; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $this->endRule($context, RuleType::FeatureHeader); - $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 4; - } - - $stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - 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 - { - 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_Empty($context, $token)) { - $this->build($context, $token); - return 6; - } - 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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 7; - } - - $stateComment = "State: 6 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 6; - } - - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_7(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; - } - if ($this->match_Comment($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->build($context, $token); - return 8; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $this->endRule($context, RuleType::Background); - $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 7; - } - - $stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description: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 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; - } - - // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 - private function matchTokenAt_9(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; - } - if ($this->match_TableRow($context, $token)) { - $this->startRule($context, RuleType::DataTable); - $this->build($context, $token); - return 10; - } - if ($this->match_DocStringSeparator($context, $token)) { - $this->startRule($context, RuleType::DocString); - $this->build($context, $token); - return 49; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $this->endRule($context, RuleType::Background); - $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; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 9; - } - - $stateComment = "State: 9 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 9; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_TableRow($context, $token)) { - $this->build($context, $token); - return 10; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $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; - } - - $stateComment = "State: 10 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 10; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_11(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 11; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Tags); - $this->startRule($context, RuleType::Scenario); - $this->build($context, $token); - return 12; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 11; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 11; - } - - $stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; - $expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 11; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private function matchTokenAt_12(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_Empty($context, $token)) { - $this->build($context, $token); - return 12; - } - 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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 13; - } - - $stateComment = "State: 12 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 12; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_13(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $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->endRule($context, RuleType::Description); - $this->build($context, $token); - return 14; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 15; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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_Other($context, $token)) { - $this->build($context, $token); - return 13; - } - - $stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $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; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private function matchTokenAt_15(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Step); - $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->startRule($context, RuleType::DataTable); - $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)) { - $this->endRule($context, RuleType::Step); - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 15; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $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 15; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 15; - } - - $stateComment = "State: 15 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 15; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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 16; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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 16; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 16; - } - - $stateComment = "State: 16 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 16; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_17(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 17; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->endRule($context, RuleType::Tags); - $this->startRule($context, RuleType::Examples); - $this->build($context, $token); - return 18; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 17; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 17; - } - - $stateComment = "State: 17 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 17; - } - - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 - private function matchTokenAt_18(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::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 18; - } - if ($this->match_Comment($context, $token)) { - $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)) { - $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::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::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::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::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::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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 19; - } - - $stateComment = "State: 18 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 18; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $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->endRule($context, RuleType::Description); - $this->build($context, $token); - return 20; - } - if ($this->match_TableRow($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->startRule($context, RuleType::ExamplesTable); - $this->build($context, $token); - return 21; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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_Other($context, $token)) { - $this->build($context, $token); - return 19; - } - - $stateComment = "State: 19 - GherkinDocument:0>Feature: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 19; - } - - // 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 - { - 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::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_Comment($context, $token)) { - $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)) { - $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::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::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::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::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::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_Empty($context, $token)) { - $this->build($context, $token); - return 20; - } - - $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"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 20; - } - - // 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 - { - 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; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 22; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 22; - } - - $stateComment = "State: 22 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 22; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 - private function matchTokenAt_23(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_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, 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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 24; - } - - $stateComment = "State: 23 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 23; - } - - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 - private function matchTokenAt_24(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $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->endRule($context, RuleType::Description); - $this->build($context, $token); - return 25; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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_Other($context, $token)) { - $this->build($context, $token); - return 24; - } - - $stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $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; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - private function matchTokenAt_26(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; - } - 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)) { - $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; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::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; - } - 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; - } - 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; - } - if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 27; - } - - $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"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 27; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - private function matchTokenAt_28(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; - } - 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_Empty($context, $token)) { - $this->build($context, $token); - return 28; - } - - $stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule: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 28; - } - - // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 - private function matchTokenAt_29(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::Rule); - $this->endRule($context, RuleType::Feature); - $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, RuleType::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 29; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 29; - } - - $stateComment = "State: 29 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $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 function matchTokenAt_30(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $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, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 30; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 30; - } - - $stateComment = "State: 30 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 30; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 - private function matchTokenAt_31(Token $token, ParserContext $context): int - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 31; - } - if ($this->match_ScenarioLine($context, $token)) { - $this->endRule($context, RuleType::Tags); - $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; - } - - $stateComment = "State: 31 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 31; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 - private function matchTokenAt_32(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_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)) { - $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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 33; - } - - $stateComment = "State: 32 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 32; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $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->endRule($context, RuleType::Description); - $this->build($context, $token); - return 34; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Description); - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 35; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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_Other($context, $token)) { - $this->build($context, $token); - return 33; - } - - $stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; - $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $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; - } - - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 - private function matchTokenAt_35(Token $token, ParserContext $context): int - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Step); - $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_TableRow($context, $token)) { - $this->startRule($context, RuleType::DataTable); - $this->build($context, $token); - return 36; - } - if ($this->match_DocStringSeparator($context, $token)) { - $this->startRule($context, RuleType::DocString); - $this->build($context, $token); - return 43; - } - if ($this->match_StepLine($context, $token)) { - $this->endRule($context, RuleType::Step); - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 35; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $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::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 35; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 35; - } - - $stateComment = "State: 35 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 35; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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_TableRow($context, $token)) { - $this->build($context, $token); - return 36; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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::DataTable); - $this->endRule($context, RuleType::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 36; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 36; - } - - $stateComment = "State: 36 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 36; - } - - // 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 - { - if ($this->match_TagLine($context, $token)) { - $this->build($context, $token); - return 37; - } - if ($this->match_ExamplesLine($context, $token)) { - $this->endRule($context, RuleType::Tags); - $this->startRule($context, RuleType::Examples); - $this->build($context, $token); - return 38; - } - if ($this->match_Comment($context, $token)) { - $this->build($context, $token); - return 37; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 37; - } - - $stateComment = "State: 37 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 37; - } - - // 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 - { - 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_Empty($context, $token)) { - $this->build($context, $token); - return 38; - } - 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_Other($context, $token)) { - $this->startRule($context, RuleType::Description); - $this->build($context, $token); - return 39; - } - - $stateComment = "State: 38 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 38; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::Description); - $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->endRule($context, RuleType::Description); - $this->build($context, $token); - return 40; - } - if ($this->match_TableRow($context, $token)) { - $this->endRule($context, RuleType::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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::Description); - $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_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"]; - $error = $token->isEOF() - ? new UnexpectedEofException($token, $expectedTokens, $stateComment) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 40; - } - - // 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 - { - 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::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - if ($this->match_TableRow($context, $token)) { - $this->build($context, $token); - return 41; - } - 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 37; - } - } - 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 31; - } - } - 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->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::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 38; - } - 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 32; - } - 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->endRule($context, RuleType::Rule); - $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 41; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 41; - } - - $stateComment = "State: 41 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 41; - } - - // 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 - { - if ($this->match_DocStringSeparator($context, $token)) { - $this->build($context, $token); - return 44; - } - if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 43; - } - - $stateComment = "State: 43 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 43; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $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_StepLine($context, $token)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $this->startRule($context, RuleType::Step); - $this->build($context, $token); - return 35; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 44; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 44; - } - - $stateComment = "State: 44 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 44; - } - - // 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 - { - if ($this->match_DocStringSeparator($context, $token)) { - $this->build($context, $token); - return 46; - } - if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 45; - } - - $stateComment = "State: 45 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 45; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Rule); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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_Comment($context, $token)) { - $this->build($context, $token); - return 46; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 46; - } - - $stateComment = "State: 46 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 46; - } - - // 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 - { - if ($this->match_DocStringSeparator($context, $token)) { - $this->build($context, $token); - return 48; - } - if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 47; - } - - $stateComment = "State: 47 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 47; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Scenario); - $this->endRule($context, RuleType::ScenarioDefinition); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_1($context)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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 48; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 48; - } - - $stateComment = "State: 48 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 48; - } - - // 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 - { - if ($this->match_DocStringSeparator($context, $token)) { - $this->build($context, $token); - return 50; - } - if ($this->match_Other($context, $token)) { - $this->build($context, $token); - return 49; - } - - $stateComment = "State: 49 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 49; - } - - // 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 - { - if ($this->match_EOF($context, $token)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $this->endRule($context, RuleType::Feature); - $this->build($context, $token); - return 42; - } - 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; - } - if ($this->match_TagLine($context, $token)) { - if ($this->lookahead_0($context)) { - $this->endRule($context, RuleType::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $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::DocString); - $this->endRule($context, RuleType::Step); - $this->endRule($context, RuleType::Background); - $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 50; - } - if ($this->match_Empty($context, $token)) { - $this->build($context, $token); - return 50; - } - - $stateComment = "State: 50 - 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) - : new UnexpectedTokenException($token, $expectedTokens, $stateComment); - - $this->addError($context, $error); - - return 50; - } - - - private function lookahead_0(ParserContext $context): bool - { - $queue = []; - $match = false; - do { - $token = $this->readToken($context); - $queue[] = $token; - - if (false - || $this->match_ScenarioLine($context, $token) - ) { - $match = true; - break; - } - } while (false - || $this->match_Empty($context, $token) - || $this->match_Comment($context, $token) - || $this->match_TagLine($context, $token) - ); - - $context->tokenQueue = [...$context->tokenQueue, ...$queue]; - - return $match; - } - - private function lookahead_1(ParserContext $context): bool - { - $queue = []; - $match = false; - do { - $token = $this->readToken($context); - $queue[] = $token; - - if (false - || $this->match_ExamplesLine($context, $token) - ) { - $match = true; - break; - } - } while (false - || $this->match_Empty($context, $token) - || $this->match_Comment($context, $token) - || $this->match_TagLine($context, $token) - ); - - $context->tokenQueue = [...$context->tokenQueue, ...$queue]; - - return $match; - } -} diff --git a/python/gherkin/parser.py b/python/gherkin/parser.py index 442502c75..1bd413677 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 := Description? + 'Description', # Description! := (#Empty | #Comment | #Other)+ ] @@ -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,46 @@ 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.start_rule(context, 'Description') self.build(context, token) - return 3 + return 4 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 +375,26 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token): + self.build(context, token) + return 4 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 +402,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,159 +410,110 @@ 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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 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.start_rule(context, 'Description') self.build(context, token) return 6 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token): + self.build(context, token) + return 6 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 +521,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 +529,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 - - state_comment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description: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 + return 6 - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +584,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 +592,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 +648,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 +657,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 +665,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 +673,73 @@ 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.start_rule(context, 'Description') self.build(context, token) - return 12 + return 11 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 +747,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 +755,66 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token): + self.build(context, token) + return 11 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 +823,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 +832,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 +846,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 +854,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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +904,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 +913,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 +927,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 +935,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 +960,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 +977,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 +987,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 +997,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 +1013,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 +1022,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 +1072,19 @@ 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.start_rule(context, 'Description') self.build(context, token) - return 18 + return 16 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 +1092,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 +1102,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 +1112,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 +1128,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 +1137,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:0>Description:0>__alt1:0>#Empty: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 +1161,18 @@ 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_Empty(context, token): + self.build(context, token) + return 16 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 +1181,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 +1192,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 +1203,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 +1211,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 +1221,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 +1231,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:0>Description:0>__alt1:0>#Empty: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 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 +1277,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 +1288,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 +1306,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 +1316,74 @@ 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 - if self.match_Empty(context, token): - self.build(context, token) - return 20 - - state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#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 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 + return 19 if self.match_Comment(context, token): self.build(context, token) - return 21 + return 17 if self.match_Empty(context, token): self.build(context, token) - return 21 + return 17 - 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" 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.start_rule(context, 'Description') self.build(context, token) - return 23 + return 20 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 +1391,54 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token): + self.build(context, token) + return 20 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 +1446,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 +1455,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,297 +1470,190 @@ 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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 24 - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0 - def match_token_at_25(self, token: Token, context: ParserContext) -> int: + return 20 + # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 + def match_token_at_21(self, token: Token, context: ParserContext) -> int: if self.match_EOF(context, token): - self.end_rule(context, 'RuleHeader') + 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.start_rule(context, 'Description') + self.build(context, token) + return 22 if self.match_Comment(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 25 - if self.match_BackgroundLine(context, token): - self.end_rule(context, 'RuleHeader') - self.start_rule(context, 'Background') + return 22 + if self.match_StepLine(context, token): + self.start_rule(context, 'Step') self.build(context, token) - return 26 + return 23 if self.match_TagLine(context, token): if self.lookahead_0(context, token): - self.end_rule(context, 'RuleHeader') + 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, 'RuleHeader') + 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, 'RuleHeader') + 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, 'RuleHeader') + 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): + return 19 + if self.match_Other(context, token): + self.start_rule(context, 'Description') self.build(context, token) - return 25 + return 22 - state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" + state_comment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 25 - # GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 - def match_token_at_26(self, token: Token, context: ParserContext) -> int: + return 21 + # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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_Empty(context, token): self.build(context, token) - return 26 + return 22 if self.match_Comment(context, token): 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') 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, '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 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') 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: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 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, 'Description') + 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): - self.end_rule(context, 'Description') + 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, 'Description') + 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, '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 31 + return 25 if self.match_TagLine(context, token): - self.end_rule(context, 'Description') + 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, 'Description') - 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, '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 - if self.match_Other(context, token): - self.build(context, token) - return 27 - - 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 = 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: - 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 - if self.match_Comment(context, token): - self.build(context, token) - return 28 - if self.match_StepLine(context, token): - 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, '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, '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 +1661,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 +1686,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 +1704,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 +1714,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 +1722,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 +1731,74 @@ 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.start_rule(context, 'Description') self.build(context, token) - return 32 + return 27 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 +1806,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 +1815,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 +1835,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:0>Description:0>__alt1:0>#Empty: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 +1858,25 @@ 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_Empty(context, token): + self.build(context, token) + return 27 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 +1885,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 +1895,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 +1909,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 +1918,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 - - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule: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 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 + return 27 - state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +1940,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 +1969,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 +1979,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 +1993,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 +2002,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,16 +2028,16 @@ 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 + return 28 if self.match_TagLine(context, token): if self.lookahead_1(context, token): self.end_rule(context, 'DataTable') @@ -2462,136 +2045,20 @@ def match_token_at_36(self, token: Token, context: ParserContext) -> int: 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 - if self.match_TagLine(context, token): - 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 + 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 +2066,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 +2143,29 @@ 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.start_rule(context, 'Description') + self.build(context, token) + return 32 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 +2173,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 +2184,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 +2200,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 +2210,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:0>Description:0>__alt1:0>#Empty: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 +2235,30 @@ 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_Empty(context, token): + self.build(context, token) + return 32 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 +2266,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 +2278,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 +2296,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 +2307,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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +2331,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 +2343,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 +2354,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 +2366,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 +2374,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 +2384,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 +2395,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 +2438,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 +2452,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 +2462,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 +2473,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 +2489,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 +2499,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 +2541,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 +2556,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 +2566,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 +2574,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 +2583,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 +2625,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 +2639,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 +2649,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 +2659,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 +2675,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 +2684,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 +2740,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 +2749,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 +2757,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 +2765,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..7693a0970 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 := Description? + :Description, # Description! := (#Empty | #Comment | #Other)+ ] 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,23 @@ 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) + start_rule(context, :Description); build(context, token); - return 3 + return 4 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 +436,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 +445,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 +475,29 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token) + build(context, token); + return 4 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 +506,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 +516,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 +524,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,103 +532,43 @@ 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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 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) + start_rule(context, :Description); build(context, token); return 6 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 +576,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 +585,58 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token) + build(context, token); + return 6 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 +645,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 +655,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 +663,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 +671,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 - end - - state_comment = "State: 7 - GherkinDocument:0>Feature: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 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 + return 6 end - state_comment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +718,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 +728,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 +736,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 +744,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 +792,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 +803,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 +812,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 +821,84 @@ 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) + start_rule(context, :Description); build(context, token); - return 12 + return 11 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 +908,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 +918,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 +932,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 +940,45 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token) + build(context, token); + return 11 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 +986,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 +997,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 +1008,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 +1024,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 +1033,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 - end - - 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 = 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 + return 11 end - 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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +1080,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 +1091,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 +1102,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 +1118,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 +1127,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 +1155,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 +1175,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 +1187,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 +1199,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 +1207,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 +1217,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 +1227,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 +1284,22 @@ 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) + start_rule(context, :Description); build(context, token); - return 18 + return 16 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 +1308,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 +1320,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 +1332,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 +1340,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 +1350,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 +1360,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:0>Description:0>__alt1:0>#Empty:0 + def match_token_at_state16(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Examples); @@ -1588,18 +1386,21 @@ 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_Empty(context, token) + build(context, token); + return 16 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 +1410,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 +1423,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 +1436,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 +1445,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 +1456,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 +1467,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:0>Description:0>__alt1:0>#Empty: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 = 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 +1519,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 +1532,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 +1552,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 +1563,77 @@ 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_Empty(context, token) + if match_Comment(context, token) build(context, token); - return 20 - end - - state_comment = "State: 20 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:2>#Comment:0" - token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#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 20 - 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); - build(context, token); - return 42 - end - if match_TableRow(context, token) - 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 + return 17 end if match_Empty(context, token) build(context, token); - return 21 + return 17 end - 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" 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 + return 17 end # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 - def match_token_at_state22(token, context) + def match_token_at_state18(token, context) if match_TagLine(context, token) build(context, token); - return 22 + return 18 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) + start_rule(context, :Description); build(context, token); - return 23 + return 20 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 +1641,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 +1651,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 +1666,46 @@ 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:0>Description:0>__alt1:0>#Empty: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_Empty(context, token) + build(context, token); + return 20 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 +1714,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 +1725,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 +1733,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,315 +1742,191 @@ 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 - end - - state_comment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description: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 + return 20 end - state_comment = "State: 25 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:2>#Comment:0" + state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 - 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_Other(context, token) start_rule(context, :Description); build(context, token); - return 27 - end - - state_comment = "State: 26 - 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 - end - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 - def match_token_at_state27(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 22 end if match_Comment(context, token) - end_rule(context, :Description); + start_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) - end_rule(context, :Description); end_rule(context, :Background); start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) - end_rule(context, :Description); 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 + return 18 end if match_ScenarioLine(context, token) - end_rule(context, :Description); 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, :Description); end_rule(context, :Background); end_rule(context, :Rule); 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: 27 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" + state_comment = "State: 21 - GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 27 + return 21 end - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 - def match_token_at_state28(token, context) + # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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_Empty(context, token) + build(context, token); + return 22 end if match_Comment(context, token) 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) + end_rule(context, :Description); end_rule(context, :Background); start_rule(context, :ScenarioDefinition); start_rule(context, :Tags); build(context, token); - return 31 + return 25 end end if match_TagLine(context, token) + end_rule(context, :Description); 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 + return 18 end if match_ScenarioLine(context, token) + end_rule(context, :Description); 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, :Description); end_rule(context, :Background); end_rule(context, :Rule); start_rule(context, :Rule); start_rule(context, :RuleHeader); build(context, token); - return 23 + return 19 end - if match_Empty(context, token) + if match_Other(context, token) build(context, token); - return 28 + return 22 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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +1935,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 +1946,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 +1954,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 +1963,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 +1991,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 +2012,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 +2024,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 +2033,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 +2043,85 @@ 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) + start_rule(context, :Description); build(context, token); - return 32 + return 27 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 +2131,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 +2142,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 +2156,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 +2165,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:0>Description:0>__alt1:0>#Empty:0 + def match_token_at_state27(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Scenario); @@ -2600,18 +2190,21 @@ 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_Empty(context, token) + build(context, token); + return 27 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 +2212,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 +2223,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 +2235,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 +2251,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 +2261,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 - end - - state_comment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description: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 + return 27 end - state_comment = "State: 34 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0" + state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +2285,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 +2309,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 +2320,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 +2332,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 +2348,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 +2358,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 +2387,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 +2407,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 +2419,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 +2432,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 +2440,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 +2450,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 +2461,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 +2519,22 @@ 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) + start_rule(context, :Description); build(context, token); - return 38 + return 32 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 +2543,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 +2555,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 +2568,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 +2576,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 +2586,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 +2597,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:0>Description:0>__alt1:0>#Empty:0 + def match_token_at_state32(token, context) if match_EOF(context, token) end_rule(context, :Description); end_rule(context, :Examples); @@ -3112,18 +2624,21 @@ 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_Empty(context, token) + build(context, token); + return 32 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 +2648,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 +2661,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 +2675,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 +2684,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 +2695,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 +2707,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:0>Description:0>__alt1:0>#Empty:0" token.detach - expected_tokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Empty"] + 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 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 +2733,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 +2747,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 +2760,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 +2774,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 +2783,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 +2794,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 +2806,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 +2854,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 +2870,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 +2882,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 +2895,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 +2903,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 +2913,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 +2924,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 +2971,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 +2988,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 +3000,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 +3009,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 +3019,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 +3066,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 +3082,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 +3094,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 +3106,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 +3114,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 +3124,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 +3134,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 +3197,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 +3208,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 +3217,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 +3226,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) From 991cc3111c5c90244305194855ecb6709366e07f Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Tue, 10 Dec 2024 15:18:04 +0100 Subject: [PATCH 03/12] adapt comment --- gherkin.berp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gherkin.berp b/gherkin.berp index c19b6dd8c..a14e0ba9f 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 +// descriptions should be allowed to be interspersed with comments and empty lines +// if only comments and empty lines are encountered, the description text will be empty DescriptionHelper := Description? Description! := (#Empty | #Comment | #Other)+ From 0a9c25bace7fae503158bbcd4a22921296bd5cee Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Tue, 10 Dec 2024 15:22:49 +0100 Subject: [PATCH 04/12] regenerate --- c/include/rule_type.h | 4 +- c/src/parser.c | 2706 ++++++++++++++--------------------------- 2 files changed, 908 insertions(+), 1802 deletions(-) diff --git a/c/include/rule_type.h b/c/include/rule_type.h index 8dd7497b3..24e09ce09 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 | #Comment)* Description? */ - Rule_Description, /* Description! := #Other+ ((#Empty | #Comment)+ #Other+)* */ + Rule_DescriptionHelper, /* DescriptionHelper := Description? */ + Rule_Description, /* Description! := (#Empty | #Comment | #Other)+ */ Rule_Count } RuleType; diff --git a/c/src/parser.c b/c/src/parser.c index b464b0e38..008dc756b 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 50; + return 34; } if (match_Language(context, token)) { start_rule(context, Rule_Feature); @@ -393,21 +393,23 @@ static int match_token_at_3(Token* token, ParserContext* context) { end_rule(context, Rule_FeatureHeader); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 3; + return 4; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 3; + return 4; } if (match_BackgroundLine(context, token)) { end_rule(context, Rule_FeatureHeader); start_rule(context, Rule_Background); build(context, token); - return 7; + return 5; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -415,7 +417,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 13; + return 9; } } if (match_TagLine(context, token)) { @@ -424,21 +426,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 26; + 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 14; + 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 27; + return 19; } if (match_Other(context, token)) { start_rule(context, Rule_Description); @@ -454,29 +456,29 @@ 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:0>Description:0>__alt1:0>#Empty: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 50; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 5; + return 4; } if (match_Comment(context, token)) { 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 7; + return 5; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -485,7 +487,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 13; + return 9; } } if (match_TagLine(context, token)) { @@ -495,7 +497,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 26; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -503,7 +505,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 14; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -511,14 +513,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 27; + 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:0>Description:0>__alt1:0>#Empty: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); @@ -526,468 +528,587 @@ 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:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +/* GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 */ 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 34; + } if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 5; + return 6; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 5; + return 6; + } + if (match_StepLine(context, token)) { + start_rule(context, Rule_Step); + build(context, token); + return 7; + } + 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 9; + } + } + 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 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 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 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); return 6; } - /* "State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #Other"; + /* "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 5;} -/* GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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_FeatureHeader); + end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 5; + return 6; } if (match_Comment(context, token)) { build(context, token); - return 5; + return 6; } - if (match_BackgroundLine(context, token)) { + if (match_StepLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_FeatureHeader); - start_rule(context, Rule_Background); + start_rule(context, Rule_Step); build(context, token); return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { end_rule(context, Rule_Description); - end_rule(context, Rule_FeatureHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_FeatureHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_FeatureHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_FeatureHeader); + end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { build(context, token); return 6; } - /* "State: 6 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:2>__grp3:2>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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:0>#BackgroundLine:0 */ +/* GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 */ 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 50; + return 34; } - if (match_Empty(context, token)) { + if (match_TableRow(context, token)) { + start_rule(context, Rule_DataTable); build(context, token); - return 7; + return 8; } - if (match_Comment(context, token)) { + if (match_DocStringSeparator(context, token)) { + start_rule(context, Rule_DocString); build(context, token); - return 7; + return 41; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 11; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); + if (match_Comment(context, token)) { build(context, token); - return 8; + return 7; + } + if (match_Empty(context, token)) { + build(context, token); + return 7; } - /* "State: 7 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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 7;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 */ +/* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ static int match_token_at_8(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Feature); build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 9; + return 34; } - if (match_Comment(context, token)) { + if (match_TableRow(context, token)) { build(context, token); - return 9; + return 8; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 11; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } - if (match_Other(context, token)) { + if (match_Comment(context, token)) { + build(context, token); + return 8; + } + if (match_Empty(context, token)) { build(context, token); return 8; } - /* "State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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 8;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 */ static int match_token_at_9(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { + if (match_TagLine(context, token)) { build(context, token); return 9; } + if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Tags); + start_rule(context, Rule_Scenario); + build(context, token); + return 10; + } if (match_Comment(context, token)) { build(context, token); return 9; } - if (match_Other(context, token)) { + if (match_Empty(context, token)) { build(context, token); - return 10; + return 9; } - /* "State: 9 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #Other"; + /* "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 9;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ static int match_token_at_10(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 9; + return 11; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 9; + return 11; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 11; + 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 14; + } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + 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 26; + return 18; + } + if (match_ExamplesLine(context, token)) { + start_rule(context, Rule_ExamplesDefinition); + start_rule(context, Rule_Examples); + build(context, token); + return 15; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 10; + return 11; } - /* "State: 10 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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 10;} -/* GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ static int match_token_at_11(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Description); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_TableRow(context, token)) { - start_rule(context, Rule_DataTable); + if (match_Empty(context, token)) { build(context, token); - return 12; + return 11; } - if (match_DocStringSeparator(context, token)) { - start_rule(context, Rule_DocString); + if (match_Comment(context, token)) { build(context, token); - return 57; + return 11; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 11; + return 12; + } + if (match_TagLine(context, token)) { + if (lookahead_1(context)) { + end_rule(context, Rule_Description); + start_rule(context, Rule_ExamplesDefinition); + start_rule(context, Rule_Tags); + build(context, token); + return 14; + } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Description); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Description); + 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 26; + 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 15; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Description); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Description); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 11; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); return 11; } - /* "State: 11 - 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"; + /* "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 11;} -/* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ static int match_token_at_12(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_Scenario); + end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_TableRow(context, token)) { + start_rule(context, Rule_DataTable); build(context, token); - return 12; + return 13; + } + if (match_DocStringSeparator(context, token)) { + start_rule(context, Rule_DocString); + build(context, token); + return 39; } if (match_StepLine(context, token)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 11; + return 12; + } + if (match_TagLine(context, token)) { + if (lookahead_1(context)) { + end_rule(context, Rule_Step); + start_rule(context, Rule_ExamplesDefinition); + start_rule(context, Rule_Tags); + build(context, token); + return 14; + } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + 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 26; + 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 15; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); - end_rule(context, Rule_Background); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); @@ -998,252 +1119,255 @@ static int match_token_at_12(Token* token, ParserContext* context) { return 12; } - /* "State: 12 - 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"; + /* "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 12;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ static int match_token_at_13(Token* token, ParserContext* context) { - if (match_TagLine(context, token)) { - build(context, token); - return 13; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Tags); - start_rule(context, Rule_Scenario); - build(context, token); - return 14; - } - if (match_Comment(context, token)) { - build(context, token); - return 13; - } - if (match_Empty(context, token)) { - build(context, token); - return 13; - } - - /* "State: 13 - 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 13;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ -static int match_token_at_14(Token* token, ParserContext* context) { if (match_EOF(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_Feature); build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 14; + return 34; } - if (match_Comment(context, token)) { + if (match_TableRow(context, token)) { build(context, token); - return 14; + 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 18; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 20; + return 14; } } 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 13; + return 9; } } 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); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } 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 21; + return 15; } 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 14; + return 10; } 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); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); + if (match_Comment(context, token)) { build(context, token); - return 15; + return 13; + } + if (match_Empty(context, token)) { + build(context, token); + return 13; } - /* "State: 14 - 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"; + /* "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 14;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_15(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); + return 13;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ +static int match_token_at_14(Token* token, ParserContext* context) { + if (match_TagLine(context, token)) { build(context, token); - return 50; + return 14; } - if (match_Empty(context, token)) { + if (match_ExamplesLine(context, token)) { + end_rule(context, Rule_Tags); + start_rule(context, Rule_Examples); build(context, token); - return 16; + return 15; } if (match_Comment(context, token)) { build(context, token); - return 16; + return 14; } - if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_Step); + if (match_Empty(context, token)) { build(context, token); - return 18; + return 14; } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - end_rule(context, Rule_Description); + + /* "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 14;} +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ +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); + end_rule(context, Rule_Scenario); + end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Feature); + build(context, token); + return 34; + } + if (match_Empty(context, token)) { + start_rule(context, Rule_Description); + build(context, token); + return 16; + } + if (match_Comment(context, token)) { + start_rule(context, Rule_Description); + build(context, token); + return 16; + } + if (match_TableRow(context, token)) { + start_rule(context, Rule_ExamplesTable); + build(context, token); + return 17; + } + 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 20; + return 14; } } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + 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 21; + return 15; } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 15; + return 16; } - /* "State: 15 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; + /* "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 15;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ +/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ static int match_token_at_16(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { - build(context, token); - return 16; - } - if (match_Comment(context, token)) { - build(context, token); - return 16; - } - if (match_Other(context, token)) { - build(context, token); - return 17; - } - - /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 16;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_17(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); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { build(context, token); @@ -1253,160 +1377,202 @@ static int match_token_at_17(Token* token, ParserContext* context) { build(context, token); return 16; } - if (match_StepLine(context, token)) { + if (match_TableRow(context, token)) { end_rule(context, Rule_Description); - start_rule(context, Rule_Step); + start_rule(context, Rule_ExamplesTable); build(context, token); - return 18; + return 17; } 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 20; + return 14; } } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + 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 21; + return 15; } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } 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); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { build(context, token); - return 17; + return 16; } - /* "State: 17 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 17;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ -static int match_token_at_18(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_Step); + 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 50; + return 34; } if (match_TableRow(context, token)) { - start_rule(context, Rule_DataTable); - build(context, token); - return 19; - } - if (match_DocStringSeparator(context, token)) { - start_rule(context, Rule_DocString); - build(context, token); - return 55; - } - if (match_StepLine(context, token)) { - end_rule(context, Rule_Step); - start_rule(context, Rule_Step); build(context, token); - return 18; + return 17; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - end_rule(context, Rule_Step); + 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 20; + return 14; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Step); + 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); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Step); + 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); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_ExamplesTable); + end_rule(context, Rule_Examples); + end_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 21; + return 15; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Step); + 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); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Step); + 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); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; + } + if (match_Comment(context, token)) { + build(context, token); + return 17; + } + if (match_Empty(context, token)) { + build(context, token); + return 17; + } + + /* "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 17;} +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 */ +static int match_token_at_18(Token* token, ParserContext* context) { + if (match_TagLine(context, token)) { + build(context, token); + return 18; + } + if (match_RuleLine(context, token)) { + end_rule(context, Rule_Tags); + build(context, token); + return 19; } if (match_Comment(context, token)) { build(context, token); @@ -1417,1530 +1583,539 @@ static int match_token_at_18(Token* token, ParserContext* context) { return 18; } - /* "State: 18 - 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"; + /* "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 18;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 */ static int match_token_at_19(Token* token, ParserContext* context) { if (match_EOF(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_RuleHeader); + end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_TableRow(context, token)) { + if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 19; + return 20; } - if (match_StepLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - start_rule(context, Rule_Step); + if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 18; + return 20; } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); + if (match_BackgroundLine(context, token)) { + end_rule(context, Rule_RuleHeader); + start_rule(context, Rule_Background); build(context, token); - return 20; - } + return 21; } 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); + end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; - } - } - 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); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - 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 21; - } - 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 14; - } - 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); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 19; - } - if (match_Empty(context, token)) { - build(context, token); - return 19; - } - - /* "State: 19 - 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 19;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_20(Token* token, ParserContext* context) { - if (match_TagLine(context, token)) { - build(context, token); - return 20; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Tags); - start_rule(context, Rule_Examples); - build(context, token); - return 21; - } - if (match_Comment(context, token)) { - build(context, token); - return 20; - } - if (match_Empty(context, token)) { - build(context, token); - return 20; - } - - /* "State: 20 - 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 20;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ -static int match_token_at_21(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_Feature); - build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 21; - } - if (match_Comment(context, token)) { - build(context, token); - return 21; - } - if (match_TableRow(context, token)) { - start_rule(context, Rule_ExamplesTable); - build(context, token); - return 25; - } - 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 20; - } - } - 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 13; - } - } - 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 26; - } - 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 21; - } - 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 14; - } - 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 27; - } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); - build(context, token); - return 22; - } - - /* "State: 21 - 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 21;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description: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_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 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 23; - } - if (match_Comment(context, token)) { - build(context, token); - return 23; - } - if (match_TableRow(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_ExamplesTable); - build(context, token); - return 25; - } - 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 20; - } - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 13; - } - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - 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 21; - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 14; - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Other(context, token)) { - build(context, token); - return 22; - } - - /* "State: 22 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other: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 22;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ -static int match_token_at_23(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { - build(context, token); - return 23; - } - if (match_Comment(context, token)) { - build(context, token); - return 23; - } - if (match_Other(context, token)) { - build(context, token); - return 24; - } - - /* "State: 23 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #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:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_24(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); - end_rule(context, Rule_ScenarioDefinition); - end_rule(context, Rule_Feature); - build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 23; - } - if (match_Comment(context, token)) { - build(context, token); - return 23; - } - if (match_TableRow(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_ExamplesTable); - build(context, token); - return 25; - } - 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 20; - } - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 13; - } - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - 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 21; - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 14; - } - 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); - end_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Other(context, token)) { - build(context, token); - return 24; - } - - /* "State: 24 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 24;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:2>ExamplesTable:0>#TableRow:0 */ -static int match_token_at_25(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 50; - } - if (match_TableRow(context, token)) { - build(context, token); - return 25; - } - 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 20; - } - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - 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); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 13; - } - } - if (match_TagLine(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); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_ExamplesTable); - end_rule(context, Rule_Examples); - end_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 21; - } - if (match_ScenarioLine(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); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 14; - } - if (match_RuleLine(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); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 25; - } - if (match_Empty(context, token)) { - build(context, token); - return 25; - } - - /* "State: 25 - 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 25;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:0>Tags:0>#TagLine:0 */ -static int match_token_at_26(Token* token, ParserContext* context) { - if (match_TagLine(context, token)) { - build(context, token); - return 26; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Tags); - build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 26; - } - if (match_Empty(context, token)) { - build(context, token); - return 26; - } - - /* "State: 26 - 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 26;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 */ -static int match_token_at_27(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 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 27; - } - if (match_BackgroundLine(context, token)) { - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Background); - build(context, token); - return 31; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_RuleHeader); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 38; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_RuleHeader); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); - build(context, token); - return 28; - } - - /* "State: 27 - 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 27;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_28(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 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 29; - } - if (match_Comment(context, token)) { - build(context, token); - return 29; - } - if (match_BackgroundLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Background); - build(context, token); - return 31; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 37; - } - } - if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 38; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Other(context, token)) { - build(context, token); - return 28; - } - - /* "State: 28 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other: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 28;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ -static int match_token_at_29(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { - build(context, token); - return 29; - } - if (match_Comment(context, token)) { - build(context, token); - return 29; - } - if (match_Other(context, token)) { - build(context, token); - return 30; - } - - /* "State: 29 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #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 29;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_30(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 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 29; - } - if (match_Comment(context, token)) { - build(context, token); - return 29; - } - if (match_BackgroundLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Background); - build(context, token); - return 31; - } - if (match_TagLine(context, token)) { - if (lookahead_0(context)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - end_rule(context, Rule_Rule); - start_rule(context, Rule_Rule); - start_rule(context, Rule_RuleHeader); - start_rule(context, Rule_Tags); - build(context, token); - return 26; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_RuleHeader); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 38; - } - if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); - build(context, token); - return 27; - } - if (match_Other(context, token)) { - build(context, token); - return 30; - } - - /* "State: 30 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 30;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 */ -static int match_token_at_31(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 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 31; - } - if (match_Comment(context, token)) { - build(context, token); - return 31; - } - if (match_StepLine(context, token)) { - start_rule(context, Rule_Step); - build(context, token); - return 35; - } - 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 37; - } - } - 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 26; - } - if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Background); - start_rule(context, Rule_ScenarioDefinition); - start_rule(context, Rule_Scenario); - build(context, token); - return 38; - } - 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 27; - } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); - build(context, token); - return 32; - } - - /* "State: 31 - 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 31;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description: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_Background); - end_rule(context, Rule_Rule); - end_rule(context, Rule_Feature); - build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 33; - } - if (match_Comment(context, token)) { - build(context, token); - return 33; - } - if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_Step); - build(context, token); - return 35; - } - 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 37; - } - } - 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 26; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; - } - if (match_Other(context, token)) { - build(context, token); - return 32; - } - - /* "State: 32 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:0>#Other: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 32;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ -static int match_token_at_33(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { - build(context, token); - return 33; - } - if (match_Comment(context, token)) { - build(context, token); - return 33; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 34; + return 20; } - /* "State: 33 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #Other"; + /* "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 33;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_34(Token* token, ParserContext* context) { + return 19;} +/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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_Background); + end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 33; + return 20; } if (match_Comment(context, token)) { build(context, token); - return 33; + return 20; } - if (match_StepLine(context, token)) { + if (match_BackgroundLine(context, token)) { end_rule(context, Rule_Description); - start_rule(context, Rule_Step); + end_rule(context, Rule_RuleHeader); + start_rule(context, Rule_Background); build(context, token); - return 35; + return 21; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); - end_rule(context, Rule_Background); + end_rule(context, Rule_RuleHeader); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { build(context, token); - return 34; + return 20; } - /* "State: 34 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 34;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 */ -static int match_token_at_35(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_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_TableRow(context, token)) { - start_rule(context, Rule_DataTable); + if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 36; + return 22; } - if (match_DocStringSeparator(context, token)) { - start_rule(context, Rule_DocString); + if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 53; + return 22; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 35; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Step); 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 26; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Step); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Step); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 35; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 35; + return 22; } - /* "State: 35 - 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"; + /* "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 35;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 */ -static int match_token_at_36(Token* token, ParserContext* context) { + return 21;} +/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +static int match_token_at_22(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_TableRow(context, token)) { + if (match_Empty(context, token)) { build(context, token); - return 36; + return 22; + } + if (match_Comment(context, token)) { + build(context, token); + return 22; } if (match_StepLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 35; + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + 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 26; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_DataTable); - end_rule(context, Rule_Step); + 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 27; - } - 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: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 36;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition: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_ScenarioLine(context, token)) { - end_rule(context, Rule_Tags); - start_rule(context, Rule_Scenario); - build(context, token); - return 38; - } - if (match_Comment(context, token)) { - build(context, token); - return 37; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 37; + return 22; } - /* "State: 37 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0" */ - const wchar_t* const expected_tokens = L"#TagLine, #ScenarioLine, #Comment, #Empty"; + /* "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 37;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ -static int match_token_at_38(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_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_Empty(context, token)) { + if (match_TableRow(context, token)) { + start_rule(context, Rule_DataTable); build(context, token); - return 38; + return 24; } - if (match_Comment(context, token)) { + if (match_DocStringSeparator(context, token)) { + start_rule(context, Rule_DocString); build(context, token); - return 38; + return 37; } if (match_StepLine(context, token)) { + end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 42; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 44; - } + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Step); + 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 26; - } - if (match_ExamplesLine(context, token)) { - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 45; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; + } + if (match_Comment(context, token)) { + build(context, token); + return 23; } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); + if (match_Empty(context, token)) { build(context, token); - return 39; + return 23; } - /* "State: 38 - 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"; + /* "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 38;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 */ -static int match_token_at_39(Token* token, ParserContext* context) { + 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_24(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_DataTable); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 40; + return 34; } - if (match_Comment(context, token)) { + if (match_TableRow(context, token)) { build(context, token); - return 40; + return 24; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 42; - } - if (match_TagLine(context, token)) { - if (lookahead_1(context)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Tags); - build(context, token); - return 44; - } + return 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); + 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 26; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Description); - start_rule(context, Rule_ExamplesDefinition); - start_rule(context, Rule_Examples); - build(context, token); - return 45; + return 18; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); - end_rule(context, Rule_Scenario); - end_rule(context, Rule_ScenarioDefinition); + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); + end_rule(context, Rule_Background); end_rule(context, Rule_Rule); start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } - if (match_Other(context, token)) { + if (match_Comment(context, token)) { build(context, token); - return 39; + return 24; + } + if (match_Empty(context, token)) { + build(context, token); + return 24; } - /* "State: 39 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Other"; + /* "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 39;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ -static int match_token_at_40(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { + return 24;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 */ +static int match_token_at_25(Token* token, ParserContext* context) { + if (match_TagLine(context, token)) { build(context, token); - return 40; + return 25; + } + if (match_ScenarioLine(context, token)) { + end_rule(context, Rule_Tags); + start_rule(context, Rule_Scenario); + build(context, token); + return 26; } if (match_Comment(context, token)) { build(context, token); - return 40; + return 25; } - if (match_Other(context, token)) { + if (match_Empty(context, token)) { build(context, token); - return 41; + return 25; } - /* "State: 40 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #Other"; + /* "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 40;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_41(Token* token, ParserContext* context) { + return 25;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 */ +static int match_token_at_26(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_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 40; + return 27; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 40; + return 27; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 42; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 44; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); @@ -2948,96 +2123,92 @@ static int match_token_at_41(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + 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 45; + return 31; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Description); 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 27; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 41; + return 27; } - /* "State: 41 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:2>__grp3:2>#Other: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 41;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ -static int match_token_at_42(Token* token, ParserContext* context) { + return 26;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +static int match_token_at_27(Token* token, ParserContext* context) { if (match_EOF(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } - if (match_TableRow(context, token)) { - start_rule(context, Rule_DataTable); + if (match_Empty(context, token)) { build(context, token); - return 43; + return 27; } - if (match_DocStringSeparator(context, token)) { - start_rule(context, Rule_DocString); + if (match_Comment(context, token)) { build(context, token); - return 51; + return 27; } if (match_StepLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); start_rule(context, Rule_Step); build(context, token); - return 42; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 44; + return 30; } } if (match_TagLine(context, token)) { if (lookahead_0(context)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Rule); @@ -3045,98 +2216,95 @@ static int match_token_at_42(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 45; + return 31; } if (match_ScenarioLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); end_rule(context, Rule_Scenario); end_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { - end_rule(context, Rule_Step); + end_rule(context, Rule_Description); 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 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 42; + return 19; } - if (match_Empty(context, token)) { + if (match_Other(context, token)) { build(context, token); - return 42; + return 27; } - /* "State: 42 - 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"; + /* "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 42;} -/* 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_43(Token* token, ParserContext* context) { + return 27;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 */ +static int match_token_at_28(Token* token, ParserContext* context) { if (match_EOF(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); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_TableRow(context, token)) { + start_rule(context, Rule_DataTable); + build(context, token); + 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_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_Step); build(context, token); - return 42; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - end_rule(context, Rule_DataTable); end_rule(context, Rule_Step); start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 44; + return 30; } } 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 37; + return 25; } } 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); @@ -3145,28 +2313,25 @@ static int match_token_at_43(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } 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 45; + return 31; } 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 38; + return 26; } 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); @@ -3174,104 +2339,73 @@ static int match_token_at_43(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; - } - if (match_Comment(context, token)) { - build(context, token); - return 43; - } - if (match_Empty(context, token)) { - build(context, token); - return 43; - } - - /* "State: 43 - 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 43;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 */ -static int match_token_at_44(Token* token, ParserContext* context) { - if (match_TagLine(context, token)) { - build(context, token); - return 44; - } - if (match_ExamplesLine(context, token)) { - end_rule(context, Rule_Tags); - start_rule(context, Rule_Examples); - build(context, token); - return 45; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 44; + return 28; } if (match_Empty(context, token)) { build(context, token); - return 44; + return 28; } - /* "State: 44 - 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"; + /* "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 44;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 */ -static int match_token_at_45(Token* token, ParserContext* context) { + 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_29(Token* token, ParserContext* context) { if (match_EOF(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); end_rule(context, Rule_Feature); build(context, token); - return 50; - } - if (match_Empty(context, token)) { - build(context, token); - return 45; + return 34; } - if (match_Comment(context, token)) { + if (match_TableRow(context, token)) { build(context, token); - return 45; + return 29; } - if (match_TableRow(context, token)) { - start_rule(context, Rule_ExamplesTable); + if (match_StepLine(context, token)) { + end_rule(context, Rule_DataTable); + end_rule(context, Rule_Step); + start_rule(context, Rule_Step); build(context, token); - return 49; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { - 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_Tags); build(context, token); - return 44; + 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 37; + 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); @@ -3279,55 +2413,86 @@ static int match_token_at_45(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + 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 45; + 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 38; + 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 27; + return 19; } - if (match_Other(context, token)) { - start_rule(context, Rule_Description); + if (match_Comment(context, token)) { + build(context, token); + return 29; + } + if (match_Empty(context, token)) { build(context, token); - return 46; + return 29; } - /* "State: 45 - 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 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 45;} -/* 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_46(Token* token, ParserContext* context) { + 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); @@ -3335,36 +2500,35 @@ static int match_token_at_46(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 47; + return 32; } if (match_Comment(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 47; + return 32; } if (match_TableRow(context, token)) { - end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 49; + 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 44; + 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); @@ -3372,11 +2536,10 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + 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); @@ -3386,19 +2549,17 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + 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 45; + 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); @@ -3406,10 +2567,9 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + 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); @@ -3418,46 +2578,24 @@ static int match_token_at_46(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { + start_rule(context, Rule_Description); build(context, token); - return 46; + return 32; } - /* "State: 46 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:0>#Other:0" */ + /* "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 46;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0 */ -static int match_token_at_47(Token* token, ParserContext* context) { - if (match_Empty(context, token)) { - build(context, token); - return 47; - } - if (match_Comment(context, token)) { - build(context, token); - return 47; - } - if (match_Other(context, token)) { - build(context, token); - return 48; - } - - /* "State: 47 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:0>__alt2:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#Empty, #Comment, #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;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0 */ -static int match_token_at_48(Token* token, ParserContext* context) { + return 31;} +/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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); @@ -3467,21 +2605,21 @@ static int match_token_at_48(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_Empty(context, token)) { build(context, token); - return 47; + return 32; } if (match_Comment(context, token)) { build(context, token); - return 47; + return 32; } if (match_TableRow(context, token)) { end_rule(context, Rule_Description); start_rule(context, Rule_ExamplesTable); build(context, token); - return 49; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3491,7 +2629,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 44; + return 30; } } if (match_TagLine(context, token)) { @@ -3504,7 +2642,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 37; + return 25; } } if (match_TagLine(context, token)) { @@ -3518,7 +2656,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 26; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_Description); @@ -3527,7 +2665,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 45; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_Description); @@ -3538,7 +2676,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 38; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_Description); @@ -3550,23 +2688,23 @@ static int match_token_at_48(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Other(context, token)) { build(context, token); - return 48; + return 32; } - /* "State: 48 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:1>Description:2>__grp3:2>#Other:0" */ + /* "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 48;} + 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_49(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); @@ -3576,11 +2714,11 @@ static int match_token_at_49(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + return 34; } if (match_TableRow(context, token)) { build(context, token); - return 49; + return 33; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3590,7 +2728,7 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 44; + return 30; } } if (match_TagLine(context, token)) { @@ -3603,7 +2741,7 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { @@ -3617,7 +2755,7 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3626,7 +2764,7 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 45; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3637,7 +2775,7 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_ExamplesTable); @@ -3649,46 +2787,46 @@ static int match_token_at_49(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 49; + return 33; } if (match_Empty(context, token)) { build(context, token); - return 49; + return 33; } - /* "State: 49 - 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 49;} + 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_51(Token* token, ParserContext* context) { +static int match_token_at_35(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 52; + return 36; } if (match_Other(context, token)) { build(context, token); - return 51; + return 35; } - /* "State: 51 - 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 51;} + 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_52(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); @@ -3697,14 +2835,14 @@ static int match_token_at_52(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + 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 42; + return 28; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3713,7 +2851,7 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 44; + return 30; } } if (match_TagLine(context, token)) { @@ -3725,7 +2863,7 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { @@ -3738,7 +2876,7 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3746,7 +2884,7 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 45; + return 31; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3756,7 +2894,7 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3767,46 +2905,46 @@ static int match_token_at_52(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 52; + return 36; } if (match_Empty(context, token)) { build(context, token); - return 52; + return 36; } - /* "State: 52 - 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 52;} + 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_53(Token* token, ParserContext* context) { +static int match_token_at_37(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 54; + return 38; } if (match_Other(context, token)) { build(context, token); - return 53; + return 37; } - /* "State: 53 - 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 53;} + 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_54(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); @@ -3814,14 +2952,14 @@ static int match_token_at_54(Token* token, ParserContext* context) { end_rule(context, Rule_Rule); end_rule(context, Rule_Feature); build(context, token); - return 50; + 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 23; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -3831,7 +2969,7 @@ static int match_token_at_54(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 37; + return 25; } } if (match_TagLine(context, token)) { @@ -3843,7 +2981,7 @@ static int match_token_at_54(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3852,7 +2990,7 @@ static int match_token_at_54(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 38; + return 26; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3862,46 +3000,46 @@ static int match_token_at_54(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 54; + return 38; } if (match_Empty(context, token)) { build(context, token); - return 54; + return 38; } - /* "State: 54 - 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 54;} + 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_55(Token* token, ParserContext* context) { +static int match_token_at_39(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 56; + return 40; } if (match_Other(context, token)) { build(context, token); - return 55; + return 39; } - /* "State: 55 - 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 55;} + 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_56(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); @@ -3909,14 +3047,14 @@ static int match_token_at_56(Token* token, ParserContext* context) { end_rule(context, Rule_ScenarioDefinition); end_rule(context, Rule_Feature); build(context, token); - return 50; + 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 18; + return 12; } if (match_TagLine(context, token)) { if (lookahead_1(context)) { @@ -3925,7 +3063,7 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Tags); build(context, token); - return 20; + return 14; } } if (match_TagLine(context, token)) { @@ -3937,7 +3075,7 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { @@ -3949,7 +3087,7 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ExamplesLine(context, token)) { end_rule(context, Rule_DocString); @@ -3957,7 +3095,7 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_ExamplesDefinition); start_rule(context, Rule_Examples); build(context, token); - return 21; + return 15; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -3967,7 +3105,7 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -3977,60 +3115,60 @@ static int match_token_at_56(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 56; + return 40; } if (match_Empty(context, token)) { build(context, token); - return 56; + return 40; } - /* "State: 56 - 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 56;} + return 40;} /* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:0>#DocStringSeparator:0 */ -static int match_token_at_57(Token* token, ParserContext* context) { +static int match_token_at_41(Token* token, ParserContext* context) { if (match_DocStringSeparator(context, token)) { build(context, token); - return 58; + return 42; } if (match_Other(context, token)) { build(context, token); - return 57; + return 41; } - /* "State: 57 - 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 57;} + return 41;} /* GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:1>DocString:2>#DocStringSeparator:0 */ -static int match_token_at_58(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 50; + 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 11; + return 7; } if (match_TagLine(context, token)) { if (lookahead_0(context)) { @@ -4040,7 +3178,7 @@ static int match_token_at_58(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Tags); build(context, token); - return 13; + return 9; } } if (match_TagLine(context, token)) { @@ -4051,7 +3189,7 @@ static int match_token_at_58(Token* token, ParserContext* context) { start_rule(context, Rule_RuleHeader); start_rule(context, Rule_Tags); build(context, token); - return 26; + return 18; } if (match_ScenarioLine(context, token)) { end_rule(context, Rule_DocString); @@ -4060,7 +3198,7 @@ static int match_token_at_58(Token* token, ParserContext* context) { start_rule(context, Rule_ScenarioDefinition); start_rule(context, Rule_Scenario); build(context, token); - return 14; + return 10; } if (match_RuleLine(context, token)) { end_rule(context, Rule_DocString); @@ -4069,25 +3207,25 @@ static int match_token_at_58(Token* token, ParserContext* context) { start_rule(context, Rule_Rule); start_rule(context, Rule_RuleHeader); build(context, token); - return 27; + return 19; } if (match_Comment(context, token)) { build(context, token); - return 58; + return 42; } if (match_Empty(context, token)) { build(context, token); - return 58; + return 42; } - /* "State: 58 - 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 58;} + return 42;} static int match_token(int state, Token* token, ParserContext* context) { switch (state) { case 0: @@ -4158,8 +3296,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: @@ -4176,36 +3312,6 @@ static int match_token(int state, Token* token, ParserContext* context) { return match_token_at_41(token, context); case 42: return match_token_at_42(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 51: - return match_token_at_51(token, context); - case 52: - return match_token_at_52(token, context); - case 53: - return match_token_at_53(token, context); - case 54: - return match_token_at_54(token, context); - case 55: - return match_token_at_55(token, context); - case 56: - return match_token_at_56(token, context); - case 57: - return match_token_at_57(token, context); - case 58: - return match_token_at_58(token, context); default: ErrorList_add_invalid_operation_error(context->errors, state); ErrorList_jump_to_global_rescue_env(context->errors); From 09d2019e30429f720b0eb5b58fef448da769cffa Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Wed, 11 Dec 2024 11:52:48 +0100 Subject: [PATCH 05/12] extract empty before Description --- c/include/rule_type.h | 4 +- c/src/dialect.c | 3926 ----------------- c/src/parser.c | 104 +- dotnet/Gherkin/Parser.cs | 116 +- elixir/lib/gherkin/parser.ex | 112 +- gherkin.berp | 4 +- go/parser.go | 104 +- .../main/java/io/cucumber/gherkin/Parser.java | 116 +- javascript/src/Parser.ts | 92 +- perl/lib/Gherkin/Generated/Parser.pm | 120 +- python/gherkin/parser.py | 100 +- ruby/lib/gherkin/parser.rb | 108 +- 12 files changed, 294 insertions(+), 4612 deletions(-) delete mode 100644 c/src/dialect.c diff --git a/c/include/rule_type.h b/c/include/rule_type.h index 24e09ce09..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 := Description? */ - Rule_Description, /* Description! := (#Empty | #Comment | #Other)+ */ + Rule_DescriptionHelper, /* DescriptionHelper := #Empty* Description? */ + Rule_Description, /* Description! := (#Other | #Comment)+ */ Rule_Count } RuleType; diff --git a/c/src/dialect.c b/c/src/dialect.c deleted file mode 100644 index fc5aaa98a..000000000 --- a/c/src/dialect.c +++ /dev/null @@ -1,3926 +0,0 @@ -#include "dialect.h" - -static const wchar_t* const af_and_KEYWORDS[] = { L"* ", L"En " }; -static const Keywords af_and_keywords = { 2, af_and_KEYWORDS }; - -static const wchar_t* const af_background_KEYWORDS[] = { L"Agtergrond" }; -static const Keywords af_background_keywords = { 1, af_background_KEYWORDS }; - -static const wchar_t* const af_but_KEYWORDS[] = { L"* ", L"Maar " }; -static const Keywords af_but_keywords = { 2, af_but_KEYWORDS }; - -static const wchar_t* const af_examples_KEYWORDS[] = { L"Voorbeelde" }; -static const Keywords af_examples_keywords = { 1, af_examples_KEYWORDS }; - -static const wchar_t* const af_feature_KEYWORDS[] = { L"Funksie", L"Besigheid Behoefte", L"Vermoë" }; -static const Keywords af_feature_keywords = { 3, af_feature_KEYWORDS }; - -static const wchar_t* const af_given_KEYWORDS[] = { L"* ", L"Gegewe " }; -static const Keywords af_given_keywords = { 2, af_given_KEYWORDS }; - -static const wchar_t* const af_rule_KEYWORDS[] = { L"Regel" }; -static const Keywords af_rule_keywords = { 1, af_rule_KEYWORDS }; - -static const wchar_t* const af_scenario_KEYWORDS[] = { L"Voorbeeld", L"Situasie" }; -static const Keywords af_scenario_keywords = { 2, af_scenario_KEYWORDS }; - -static const wchar_t* const af_scenarioOutline_KEYWORDS[] = { L"Situasie Uiteensetting" }; -static const Keywords af_scenarioOutline_keywords = { 1, af_scenarioOutline_KEYWORDS }; - -static const wchar_t* const af_then_KEYWORDS[] = { L"* ", L"Dan " }; -static const Keywords af_then_keywords = { 2, af_then_KEYWORDS }; - -static const wchar_t* const af_when_KEYWORDS[] = { L"* ", L"Wanneer " }; -static const Keywords af_when_keywords = { 2, af_when_KEYWORDS }; - -static const Dialect af_dialect = { - L"af", - &af_and_keywords, - &af_background_keywords, - &af_but_keywords, - &af_examples_keywords, - &af_feature_keywords, - &af_given_keywords, - &af_rule_keywords, - &af_scenario_keywords, - &af_scenarioOutline_keywords, - &af_then_keywords, - &af_when_keywords }; - -static const wchar_t* const am_and_KEYWORDS[] = { L"* ", L"Եվ " }; -static const Keywords am_and_keywords = { 2, am_and_KEYWORDS }; - -static const wchar_t* const am_background_KEYWORDS[] = { L"Կոնտեքստ" }; -static const Keywords am_background_keywords = { 1, am_background_KEYWORDS }; - -static const wchar_t* const am_but_KEYWORDS[] = { L"* ", L"Բայց " }; -static const Keywords am_but_keywords = { 2, am_but_KEYWORDS }; - -static const wchar_t* const am_examples_KEYWORDS[] = { L"Օրինակներ" }; -static const Keywords am_examples_keywords = { 1, am_examples_KEYWORDS }; - -static const wchar_t* const am_feature_KEYWORDS[] = { L"Ֆունկցիոնալություն", L"Հատկություն" }; -static const Keywords am_feature_keywords = { 2, am_feature_KEYWORDS }; - -static const wchar_t* const am_given_KEYWORDS[] = { L"* ", L"Դիցուք " }; -static const Keywords am_given_keywords = { 2, am_given_KEYWORDS }; - -static const wchar_t* const am_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords am_rule_keywords = { 1, am_rule_KEYWORDS }; - -static const wchar_t* const am_scenario_KEYWORDS[] = { L"Օրինակ", L"Սցենար" }; -static const Keywords am_scenario_keywords = { 2, am_scenario_KEYWORDS }; - -static const wchar_t* const am_scenarioOutline_KEYWORDS[] = { L"Սցենարի կառուցվացքը" }; -static const Keywords am_scenarioOutline_keywords = { 1, am_scenarioOutline_KEYWORDS }; - -static const wchar_t* const am_then_KEYWORDS[] = { L"* ", L"Ապա " }; -static const Keywords am_then_keywords = { 2, am_then_KEYWORDS }; - -static const wchar_t* const am_when_KEYWORDS[] = { L"* ", L"Եթե ", L"Երբ " }; -static const Keywords am_when_keywords = { 3, am_when_KEYWORDS }; - -static const Dialect am_dialect = { - L"am", - &am_and_keywords, - &am_background_keywords, - &am_but_keywords, - &am_examples_keywords, - &am_feature_keywords, - &am_given_keywords, - &am_rule_keywords, - &am_scenario_keywords, - &am_scenarioOutline_keywords, - &am_then_keywords, - &am_when_keywords }; - -static const wchar_t* const an_and_KEYWORDS[] = { L"* ", L"Y ", L"E " }; -static const Keywords an_and_keywords = { 3, an_and_KEYWORDS }; - -static const wchar_t* const an_background_KEYWORDS[] = { L"Antecedents" }; -static const Keywords an_background_keywords = { 1, an_background_KEYWORDS }; - -static const wchar_t* const an_but_KEYWORDS[] = { L"* ", L"Pero " }; -static const Keywords an_but_keywords = { 2, an_but_KEYWORDS }; - -static const wchar_t* const an_examples_KEYWORDS[] = { L"Eixemplos" }; -static const Keywords an_examples_keywords = { 1, an_examples_KEYWORDS }; - -static const wchar_t* const an_feature_KEYWORDS[] = { L"Caracteristica" }; -static const Keywords an_feature_keywords = { 1, an_feature_KEYWORDS }; - -static const wchar_t* const an_given_KEYWORDS[] = { L"* ", L"Dau ", L"Dada ", L"Daus ", L"Dadas " }; -static const Keywords an_given_keywords = { 5, an_given_KEYWORDS }; - -static const wchar_t* const an_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords an_rule_keywords = { 1, an_rule_KEYWORDS }; - -static const wchar_t* const an_scenario_KEYWORDS[] = { L"Eixemplo", L"Caso" }; -static const Keywords an_scenario_keywords = { 2, an_scenario_KEYWORDS }; - -static const wchar_t* const an_scenarioOutline_KEYWORDS[] = { L"Esquema del caso" }; -static const Keywords an_scenarioOutline_keywords = { 1, an_scenarioOutline_KEYWORDS }; - -static const wchar_t* const an_then_KEYWORDS[] = { L"* ", L"Alavez ", L"Allora ", L"Antonces " }; -static const Keywords an_then_keywords = { 4, an_then_KEYWORDS }; - -static const wchar_t* const an_when_KEYWORDS[] = { L"* ", L"Cuan " }; -static const Keywords an_when_keywords = { 2, an_when_KEYWORDS }; - -static const Dialect an_dialect = { - L"an", - &an_and_keywords, - &an_background_keywords, - &an_but_keywords, - &an_examples_keywords, - &an_feature_keywords, - &an_given_keywords, - &an_rule_keywords, - &an_scenario_keywords, - &an_scenarioOutline_keywords, - &an_then_keywords, - &an_when_keywords }; - -static const wchar_t* const ar_and_KEYWORDS[] = { L"* ", L"و " }; -static const Keywords ar_and_keywords = { 2, ar_and_KEYWORDS }; - -static const wchar_t* const ar_background_KEYWORDS[] = { L"الخلفية" }; -static const Keywords ar_background_keywords = { 1, ar_background_KEYWORDS }; - -static const wchar_t* const ar_but_KEYWORDS[] = { L"* ", L"لكن " }; -static const Keywords ar_but_keywords = { 2, ar_but_KEYWORDS }; - -static const wchar_t* const ar_examples_KEYWORDS[] = { L"امثلة" }; -static const Keywords ar_examples_keywords = { 1, ar_examples_KEYWORDS }; - -static const wchar_t* const ar_feature_KEYWORDS[] = { L"خاصية" }; -static const Keywords ar_feature_keywords = { 1, ar_feature_KEYWORDS }; - -static const wchar_t* const ar_given_KEYWORDS[] = { L"* ", L"بفرض " }; -static const Keywords ar_given_keywords = { 2, ar_given_KEYWORDS }; - -static const wchar_t* const ar_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ar_rule_keywords = { 1, ar_rule_KEYWORDS }; - -static const wchar_t* const ar_scenario_KEYWORDS[] = { L"مثال", L"سيناريو" }; -static const Keywords ar_scenario_keywords = { 2, ar_scenario_KEYWORDS }; - -static const wchar_t* const ar_scenarioOutline_KEYWORDS[] = { L"سيناريو مخطط" }; -static const Keywords ar_scenarioOutline_keywords = { 1, ar_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ar_then_KEYWORDS[] = { L"* ", L"اذاً ", L"ثم " }; -static const Keywords ar_then_keywords = { 3, ar_then_KEYWORDS }; - -static const wchar_t* const ar_when_KEYWORDS[] = { L"* ", L"متى ", L"عندما " }; -static const Keywords ar_when_keywords = { 3, ar_when_KEYWORDS }; - -static const Dialect ar_dialect = { - L"ar", - &ar_and_keywords, - &ar_background_keywords, - &ar_but_keywords, - &ar_examples_keywords, - &ar_feature_keywords, - &ar_given_keywords, - &ar_rule_keywords, - &ar_scenario_keywords, - &ar_scenarioOutline_keywords, - &ar_then_keywords, - &ar_when_keywords }; - -static const wchar_t* const ast_and_KEYWORDS[] = { L"* ", L"Y ", L"Ya " }; -static const Keywords ast_and_keywords = { 3, ast_and_KEYWORDS }; - -static const wchar_t* const ast_background_KEYWORDS[] = { L"Antecedentes" }; -static const Keywords ast_background_keywords = { 1, ast_background_KEYWORDS }; - -static const wchar_t* const ast_but_KEYWORDS[] = { L"* ", L"Peru " }; -static const Keywords ast_but_keywords = { 2, ast_but_KEYWORDS }; - -static const wchar_t* const ast_examples_KEYWORDS[] = { L"Exemplos" }; -static const Keywords ast_examples_keywords = { 1, ast_examples_KEYWORDS }; - -static const wchar_t* const ast_feature_KEYWORDS[] = { L"Carauterística" }; -static const Keywords ast_feature_keywords = { 1, ast_feature_KEYWORDS }; - -static const wchar_t* const ast_given_KEYWORDS[] = { L"* ", L"Dáu ", L"Dada ", L"Daos ", L"Daes " }; -static const Keywords ast_given_keywords = { 5, ast_given_KEYWORDS }; - -static const wchar_t* const ast_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ast_rule_keywords = { 1, ast_rule_KEYWORDS }; - -static const wchar_t* const ast_scenario_KEYWORDS[] = { L"Exemplo", L"Casu" }; -static const Keywords ast_scenario_keywords = { 2, ast_scenario_KEYWORDS }; - -static const wchar_t* const ast_scenarioOutline_KEYWORDS[] = { L"Esbozu del casu" }; -static const Keywords ast_scenarioOutline_keywords = { 1, ast_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ast_then_KEYWORDS[] = { L"* ", L"Entós " }; -static const Keywords ast_then_keywords = { 2, ast_then_KEYWORDS }; - -static const wchar_t* const ast_when_KEYWORDS[] = { L"* ", L"Cuando " }; -static const Keywords ast_when_keywords = { 2, ast_when_KEYWORDS }; - -static const Dialect ast_dialect = { - L"ast", - &ast_and_keywords, - &ast_background_keywords, - &ast_but_keywords, - &ast_examples_keywords, - &ast_feature_keywords, - &ast_given_keywords, - &ast_rule_keywords, - &ast_scenario_keywords, - &ast_scenarioOutline_keywords, - &ast_then_keywords, - &ast_when_keywords }; - -static const wchar_t* const az_and_KEYWORDS[] = { L"* ", L"Və ", L"Həm " }; -static const Keywords az_and_keywords = { 3, az_and_KEYWORDS }; - -static const wchar_t* const az_background_KEYWORDS[] = { L"Keçmiş", L"Kontekst" }; -static const Keywords az_background_keywords = { 2, az_background_KEYWORDS }; - -static const wchar_t* const az_but_KEYWORDS[] = { L"* ", L"Amma ", L"Ancaq " }; -static const Keywords az_but_keywords = { 3, az_but_KEYWORDS }; - -static const wchar_t* const az_examples_KEYWORDS[] = { L"Nümunələr" }; -static const Keywords az_examples_keywords = { 1, az_examples_KEYWORDS }; - -static const wchar_t* const az_feature_KEYWORDS[] = { L"Özəllik" }; -static const Keywords az_feature_keywords = { 1, az_feature_KEYWORDS }; - -static const wchar_t* const az_given_KEYWORDS[] = { L"* ", L"Tutaq ki ", L"Verilir " }; -static const Keywords az_given_keywords = { 3, az_given_KEYWORDS }; - -static const wchar_t* const az_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords az_rule_keywords = { 1, az_rule_KEYWORDS }; - -static const wchar_t* const az_scenario_KEYWORDS[] = { L"Nümunə", L"Ssenari" }; -static const Keywords az_scenario_keywords = { 2, az_scenario_KEYWORDS }; - -static const wchar_t* const az_scenarioOutline_KEYWORDS[] = { L"Ssenarinin strukturu" }; -static const Keywords az_scenarioOutline_keywords = { 1, az_scenarioOutline_KEYWORDS }; - -static const wchar_t* const az_then_KEYWORDS[] = { L"* ", L"O halda " }; -static const Keywords az_then_keywords = { 2, az_then_KEYWORDS }; - -static const wchar_t* const az_when_KEYWORDS[] = { L"* ", L"Əgər ", L"Nə vaxt ki " }; -static const Keywords az_when_keywords = { 3, az_when_KEYWORDS }; - -static const Dialect az_dialect = { - L"az", - &az_and_keywords, - &az_background_keywords, - &az_but_keywords, - &az_examples_keywords, - &az_feature_keywords, - &az_given_keywords, - &az_rule_keywords, - &az_scenario_keywords, - &az_scenarioOutline_keywords, - &az_then_keywords, - &az_when_keywords }; - -static const wchar_t* const be_and_KEYWORDS[] = { L"* ", L"I ", L"Ды ", L"Таксама " }; -static const Keywords be_and_keywords = { 4, be_and_KEYWORDS }; - -static const wchar_t* const be_background_KEYWORDS[] = { L"Кантэкст" }; -static const Keywords be_background_keywords = { 1, be_background_KEYWORDS }; - -static const wchar_t* const be_but_KEYWORDS[] = { L"* ", L"Але ", L"Інакш " }; -static const Keywords be_but_keywords = { 3, be_but_KEYWORDS }; - -static const wchar_t* const be_examples_KEYWORDS[] = { L"Прыклады" }; -static const Keywords be_examples_keywords = { 1, be_examples_KEYWORDS }; - -static const wchar_t* const be_feature_KEYWORDS[] = { L"Функцыянальнасць", L"Фіча" }; -static const Keywords be_feature_keywords = { 2, be_feature_KEYWORDS }; - -static const wchar_t* const be_given_KEYWORDS[] = { L"* ", L"Няхай ", L"Дадзена " }; -static const Keywords be_given_keywords = { 3, be_given_KEYWORDS }; - -static const wchar_t* const be_rule_KEYWORDS[] = { L"Правілы" }; -static const Keywords be_rule_keywords = { 1, be_rule_KEYWORDS }; - -static const wchar_t* const be_scenario_KEYWORDS[] = { L"Сцэнарый", L"Cцэнар" }; -static const Keywords be_scenario_keywords = { 2, be_scenario_KEYWORDS }; - -static const wchar_t* const be_scenarioOutline_KEYWORDS[] = { L"Шаблон сцэнарыя", L"Узор сцэнара" }; -static const Keywords be_scenarioOutline_keywords = { 2, be_scenarioOutline_KEYWORDS }; - -static const wchar_t* const be_then_KEYWORDS[] = { L"* ", L"Тады " }; -static const Keywords be_then_keywords = { 2, be_then_KEYWORDS }; - -static const wchar_t* const be_when_KEYWORDS[] = { L"* ", L"Калі " }; -static const Keywords be_when_keywords = { 2, be_when_KEYWORDS }; - -static const Dialect be_dialect = { - L"be", - &be_and_keywords, - &be_background_keywords, - &be_but_keywords, - &be_examples_keywords, - &be_feature_keywords, - &be_given_keywords, - &be_rule_keywords, - &be_scenario_keywords, - &be_scenarioOutline_keywords, - &be_then_keywords, - &be_when_keywords }; - -static const wchar_t* const bg_and_KEYWORDS[] = { L"* ", L"И " }; -static const Keywords bg_and_keywords = { 2, bg_and_KEYWORDS }; - -static const wchar_t* const bg_background_KEYWORDS[] = { L"Предистория" }; -static const Keywords bg_background_keywords = { 1, bg_background_KEYWORDS }; - -static const wchar_t* const bg_but_KEYWORDS[] = { L"* ", L"Но " }; -static const Keywords bg_but_keywords = { 2, bg_but_KEYWORDS }; - -static const wchar_t* const bg_examples_KEYWORDS[] = { L"Примери" }; -static const Keywords bg_examples_keywords = { 1, bg_examples_KEYWORDS }; - -static const wchar_t* const bg_feature_KEYWORDS[] = { L"Функционалност" }; -static const Keywords bg_feature_keywords = { 1, bg_feature_KEYWORDS }; - -static const wchar_t* const bg_given_KEYWORDS[] = { L"* ", L"Дадено " }; -static const Keywords bg_given_keywords = { 2, bg_given_KEYWORDS }; - -static const wchar_t* const bg_rule_KEYWORDS[] = { L"Правило" }; -static const Keywords bg_rule_keywords = { 1, bg_rule_KEYWORDS }; - -static const wchar_t* const bg_scenario_KEYWORDS[] = { L"Пример", L"Сценарий" }; -static const Keywords bg_scenario_keywords = { 2, bg_scenario_KEYWORDS }; - -static const wchar_t* const bg_scenarioOutline_KEYWORDS[] = { L"Рамка на сценарий" }; -static const Keywords bg_scenarioOutline_keywords = { 1, bg_scenarioOutline_KEYWORDS }; - -static const wchar_t* const bg_then_KEYWORDS[] = { L"* ", L"То " }; -static const Keywords bg_then_keywords = { 2, bg_then_KEYWORDS }; - -static const wchar_t* const bg_when_KEYWORDS[] = { L"* ", L"Когато " }; -static const Keywords bg_when_keywords = { 2, bg_when_KEYWORDS }; - -static const Dialect bg_dialect = { - L"bg", - &bg_and_keywords, - &bg_background_keywords, - &bg_but_keywords, - &bg_examples_keywords, - &bg_feature_keywords, - &bg_given_keywords, - &bg_rule_keywords, - &bg_scenario_keywords, - &bg_scenarioOutline_keywords, - &bg_then_keywords, - &bg_when_keywords }; - -static const wchar_t* const bm_and_KEYWORDS[] = { L"* ", L"Dan " }; -static const Keywords bm_and_keywords = { 2, bm_and_KEYWORDS }; - -static const wchar_t* const bm_background_KEYWORDS[] = { L"Latar Belakang" }; -static const Keywords bm_background_keywords = { 1, bm_background_KEYWORDS }; - -static const wchar_t* const bm_but_KEYWORDS[] = { L"* ", L"Tetapi ", L"Tapi " }; -static const Keywords bm_but_keywords = { 3, bm_but_KEYWORDS }; - -static const wchar_t* const bm_examples_KEYWORDS[] = { L"Contoh" }; -static const Keywords bm_examples_keywords = { 1, bm_examples_KEYWORDS }; - -static const wchar_t* const bm_feature_KEYWORDS[] = { L"Fungsi" }; -static const Keywords bm_feature_keywords = { 1, bm_feature_KEYWORDS }; - -static const wchar_t* const bm_given_KEYWORDS[] = { L"* ", L"Diberi ", L"Bagi " }; -static const Keywords bm_given_keywords = { 3, bm_given_KEYWORDS }; - -static const wchar_t* const bm_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords bm_rule_keywords = { 1, bm_rule_KEYWORDS }; - -static const wchar_t* const bm_scenario_KEYWORDS[] = { L"Senario", L"Situasi", L"Keadaan" }; -static const Keywords bm_scenario_keywords = { 3, bm_scenario_KEYWORDS }; - -static const wchar_t* const bm_scenarioOutline_KEYWORDS[] = { L"Kerangka Senario", L"Kerangka Situasi", L"Kerangka Keadaan", L"Garis Panduan Senario" }; -static const Keywords bm_scenarioOutline_keywords = { 4, bm_scenarioOutline_KEYWORDS }; - -static const wchar_t* const bm_then_KEYWORDS[] = { L"* ", L"Maka ", L"Kemudian " }; -static const Keywords bm_then_keywords = { 3, bm_then_KEYWORDS }; - -static const wchar_t* const bm_when_KEYWORDS[] = { L"* ", L"Apabila " }; -static const Keywords bm_when_keywords = { 2, bm_when_KEYWORDS }; - -static const Dialect bm_dialect = { - L"bm", - &bm_and_keywords, - &bm_background_keywords, - &bm_but_keywords, - &bm_examples_keywords, - &bm_feature_keywords, - &bm_given_keywords, - &bm_rule_keywords, - &bm_scenario_keywords, - &bm_scenarioOutline_keywords, - &bm_then_keywords, - &bm_when_keywords }; - -static const wchar_t* const bs_and_KEYWORDS[] = { L"* ", L"I ", L"A " }; -static const Keywords bs_and_keywords = { 3, bs_and_KEYWORDS }; - -static const wchar_t* const bs_background_KEYWORDS[] = { L"Pozadina" }; -static const Keywords bs_background_keywords = { 1, bs_background_KEYWORDS }; - -static const wchar_t* const bs_but_KEYWORDS[] = { L"* ", L"Ali " }; -static const Keywords bs_but_keywords = { 2, bs_but_KEYWORDS }; - -static const wchar_t* const bs_examples_KEYWORDS[] = { L"Primjeri" }; -static const Keywords bs_examples_keywords = { 1, bs_examples_KEYWORDS }; - -static const wchar_t* const bs_feature_KEYWORDS[] = { L"Karakteristika" }; -static const Keywords bs_feature_keywords = { 1, bs_feature_KEYWORDS }; - -static const wchar_t* const bs_given_KEYWORDS[] = { L"* ", L"Dato " }; -static const Keywords bs_given_keywords = { 2, bs_given_KEYWORDS }; - -static const wchar_t* const bs_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords bs_rule_keywords = { 1, bs_rule_KEYWORDS }; - -static const wchar_t* const bs_scenario_KEYWORDS[] = { L"Primjer", L"Scenariju", L"Scenario" }; -static const Keywords bs_scenario_keywords = { 3, bs_scenario_KEYWORDS }; - -static const wchar_t* const bs_scenarioOutline_KEYWORDS[] = { L"Scenariju-obris", L"Scenario-outline" }; -static const Keywords bs_scenarioOutline_keywords = { 2, bs_scenarioOutline_KEYWORDS }; - -static const wchar_t* const bs_then_KEYWORDS[] = { L"* ", L"Zatim " }; -static const Keywords bs_then_keywords = { 2, bs_then_KEYWORDS }; - -static const wchar_t* const bs_when_KEYWORDS[] = { L"* ", L"Kada " }; -static const Keywords bs_when_keywords = { 2, bs_when_KEYWORDS }; - -static const Dialect bs_dialect = { - L"bs", - &bs_and_keywords, - &bs_background_keywords, - &bs_but_keywords, - &bs_examples_keywords, - &bs_feature_keywords, - &bs_given_keywords, - &bs_rule_keywords, - &bs_scenario_keywords, - &bs_scenarioOutline_keywords, - &bs_then_keywords, - &bs_when_keywords }; - -static const wchar_t* const ca_and_KEYWORDS[] = { L"* ", L"I " }; -static const Keywords ca_and_keywords = { 2, ca_and_KEYWORDS }; - -static const wchar_t* const ca_background_KEYWORDS[] = { L"Rerefons", L"Antecedents" }; -static const Keywords ca_background_keywords = { 2, ca_background_KEYWORDS }; - -static const wchar_t* const ca_but_KEYWORDS[] = { L"* ", L"Però " }; -static const Keywords ca_but_keywords = { 2, ca_but_KEYWORDS }; - -static const wchar_t* const ca_examples_KEYWORDS[] = { L"Exemples" }; -static const Keywords ca_examples_keywords = { 1, ca_examples_KEYWORDS }; - -static const wchar_t* const ca_feature_KEYWORDS[] = { L"Característica", L"Funcionalitat" }; -static const Keywords ca_feature_keywords = { 2, ca_feature_KEYWORDS }; - -static const wchar_t* const ca_given_KEYWORDS[] = { L"* ", L"Donat ", L"Donada ", L"Atès ", L"Atesa " }; -static const Keywords ca_given_keywords = { 5, ca_given_KEYWORDS }; - -static const wchar_t* const ca_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ca_rule_keywords = { 1, ca_rule_KEYWORDS }; - -static const wchar_t* const ca_scenario_KEYWORDS[] = { L"Exemple", L"Escenari" }; -static const Keywords ca_scenario_keywords = { 2, ca_scenario_KEYWORDS }; - -static const wchar_t* const ca_scenarioOutline_KEYWORDS[] = { L"Esquema de l'escenari" }; -static const Keywords ca_scenarioOutline_keywords = { 1, ca_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ca_then_KEYWORDS[] = { L"* ", L"Aleshores ", L"Cal " }; -static const Keywords ca_then_keywords = { 3, ca_then_KEYWORDS }; - -static const wchar_t* const ca_when_KEYWORDS[] = { L"* ", L"Quan " }; -static const Keywords ca_when_keywords = { 2, ca_when_KEYWORDS }; - -static const Dialect ca_dialect = { - L"ca", - &ca_and_keywords, - &ca_background_keywords, - &ca_but_keywords, - &ca_examples_keywords, - &ca_feature_keywords, - &ca_given_keywords, - &ca_rule_keywords, - &ca_scenario_keywords, - &ca_scenarioOutline_keywords, - &ca_then_keywords, - &ca_when_keywords }; - -static const wchar_t* const cs_and_KEYWORDS[] = { L"* ", L"A také ", L"A " }; -static const Keywords cs_and_keywords = { 3, cs_and_KEYWORDS }; - -static const wchar_t* const cs_background_KEYWORDS[] = { L"Pozadí", L"Kontext" }; -static const Keywords cs_background_keywords = { 2, cs_background_KEYWORDS }; - -static const wchar_t* const cs_but_KEYWORDS[] = { L"* ", L"Ale " }; -static const Keywords cs_but_keywords = { 2, cs_but_KEYWORDS }; - -static const wchar_t* const cs_examples_KEYWORDS[] = { L"Příklady" }; -static const Keywords cs_examples_keywords = { 1, cs_examples_KEYWORDS }; - -static const wchar_t* const cs_feature_KEYWORDS[] = { L"Požadavek" }; -static const Keywords cs_feature_keywords = { 1, cs_feature_KEYWORDS }; - -static const wchar_t* const cs_given_KEYWORDS[] = { L"* ", L"Pokud ", L"Za předpokladu " }; -static const Keywords cs_given_keywords = { 3, cs_given_KEYWORDS }; - -static const wchar_t* const cs_rule_KEYWORDS[] = { L"Pravidlo" }; -static const Keywords cs_rule_keywords = { 1, cs_rule_KEYWORDS }; - -static const wchar_t* const cs_scenario_KEYWORDS[] = { L"Příklad", L"Scénář" }; -static const Keywords cs_scenario_keywords = { 2, cs_scenario_KEYWORDS }; - -static const wchar_t* const cs_scenarioOutline_KEYWORDS[] = { L"Náčrt Scénáře", L"Osnova scénáře" }; -static const Keywords cs_scenarioOutline_keywords = { 2, cs_scenarioOutline_KEYWORDS }; - -static const wchar_t* const cs_then_KEYWORDS[] = { L"* ", L"Pak " }; -static const Keywords cs_then_keywords = { 2, cs_then_KEYWORDS }; - -static const wchar_t* const cs_when_KEYWORDS[] = { L"* ", L"Když " }; -static const Keywords cs_when_keywords = { 2, cs_when_KEYWORDS }; - -static const Dialect cs_dialect = { - L"cs", - &cs_and_keywords, - &cs_background_keywords, - &cs_but_keywords, - &cs_examples_keywords, - &cs_feature_keywords, - &cs_given_keywords, - &cs_rule_keywords, - &cs_scenario_keywords, - &cs_scenarioOutline_keywords, - &cs_then_keywords, - &cs_when_keywords }; - -static const wchar_t* const cy_GB_and_KEYWORDS[] = { L"* ", L"A " }; -static const Keywords cy_GB_and_keywords = { 2, cy_GB_and_KEYWORDS }; - -static const wchar_t* const cy_GB_background_KEYWORDS[] = { L"Cefndir" }; -static const Keywords cy_GB_background_keywords = { 1, cy_GB_background_KEYWORDS }; - -static const wchar_t* const cy_GB_but_KEYWORDS[] = { L"* ", L"Ond " }; -static const Keywords cy_GB_but_keywords = { 2, cy_GB_but_KEYWORDS }; - -static const wchar_t* const cy_GB_examples_KEYWORDS[] = { L"Enghreifftiau" }; -static const Keywords cy_GB_examples_keywords = { 1, cy_GB_examples_KEYWORDS }; - -static const wchar_t* const cy_GB_feature_KEYWORDS[] = { L"Arwedd" }; -static const Keywords cy_GB_feature_keywords = { 1, cy_GB_feature_KEYWORDS }; - -static const wchar_t* const cy_GB_given_KEYWORDS[] = { L"* ", L"Anrhegedig a " }; -static const Keywords cy_GB_given_keywords = { 2, cy_GB_given_KEYWORDS }; - -static const wchar_t* const cy_GB_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords cy_GB_rule_keywords = { 1, cy_GB_rule_KEYWORDS }; - -static const wchar_t* const cy_GB_scenario_KEYWORDS[] = { L"Enghraifft", L"Scenario" }; -static const Keywords cy_GB_scenario_keywords = { 2, cy_GB_scenario_KEYWORDS }; - -static const wchar_t* const cy_GB_scenarioOutline_KEYWORDS[] = { L"Scenario Amlinellol" }; -static const Keywords cy_GB_scenarioOutline_keywords = { 1, cy_GB_scenarioOutline_KEYWORDS }; - -static const wchar_t* const cy_GB_then_KEYWORDS[] = { L"* ", L"Yna " }; -static const Keywords cy_GB_then_keywords = { 2, cy_GB_then_KEYWORDS }; - -static const wchar_t* const cy_GB_when_KEYWORDS[] = { L"* ", L"Pryd " }; -static const Keywords cy_GB_when_keywords = { 2, cy_GB_when_KEYWORDS }; - -static const Dialect cy_GB_dialect = { - L"cy-GB", - &cy_GB_and_keywords, - &cy_GB_background_keywords, - &cy_GB_but_keywords, - &cy_GB_examples_keywords, - &cy_GB_feature_keywords, - &cy_GB_given_keywords, - &cy_GB_rule_keywords, - &cy_GB_scenario_keywords, - &cy_GB_scenarioOutline_keywords, - &cy_GB_then_keywords, - &cy_GB_when_keywords }; - -static const wchar_t* const da_and_KEYWORDS[] = { L"* ", L"Og " }; -static const Keywords da_and_keywords = { 2, da_and_KEYWORDS }; - -static const wchar_t* const da_background_KEYWORDS[] = { L"Baggrund" }; -static const Keywords da_background_keywords = { 1, da_background_KEYWORDS }; - -static const wchar_t* const da_but_KEYWORDS[] = { L"* ", L"Men " }; -static const Keywords da_but_keywords = { 2, da_but_KEYWORDS }; - -static const wchar_t* const da_examples_KEYWORDS[] = { L"Eksempler" }; -static const Keywords da_examples_keywords = { 1, da_examples_KEYWORDS }; - -static const wchar_t* const da_feature_KEYWORDS[] = { L"Egenskab" }; -static const Keywords da_feature_keywords = { 1, da_feature_KEYWORDS }; - -static const wchar_t* const da_given_KEYWORDS[] = { L"* ", L"Givet " }; -static const Keywords da_given_keywords = { 2, da_given_KEYWORDS }; - -static const wchar_t* const da_rule_KEYWORDS[] = { L"Regel" }; -static const Keywords da_rule_keywords = { 1, da_rule_KEYWORDS }; - -static const wchar_t* const da_scenario_KEYWORDS[] = { L"Eksempel", L"Scenarie" }; -static const Keywords da_scenario_keywords = { 2, da_scenario_KEYWORDS }; - -static const wchar_t* const da_scenarioOutline_KEYWORDS[] = { L"Abstrakt Scenario" }; -static const Keywords da_scenarioOutline_keywords = { 1, da_scenarioOutline_KEYWORDS }; - -static const wchar_t* const da_then_KEYWORDS[] = { L"* ", L"Så " }; -static const Keywords da_then_keywords = { 2, da_then_KEYWORDS }; - -static const wchar_t* const da_when_KEYWORDS[] = { L"* ", L"Når " }; -static const Keywords da_when_keywords = { 2, da_when_KEYWORDS }; - -static const Dialect da_dialect = { - L"da", - &da_and_keywords, - &da_background_keywords, - &da_but_keywords, - &da_examples_keywords, - &da_feature_keywords, - &da_given_keywords, - &da_rule_keywords, - &da_scenario_keywords, - &da_scenarioOutline_keywords, - &da_then_keywords, - &da_when_keywords }; - -static const wchar_t* const de_and_KEYWORDS[] = { L"* ", L"Und " }; -static const Keywords de_and_keywords = { 2, de_and_KEYWORDS }; - -static const wchar_t* const de_background_KEYWORDS[] = { L"Grundlage", L"Hintergrund", L"Voraussetzungen", L"Vorbedingungen" }; -static const Keywords de_background_keywords = { 4, de_background_KEYWORDS }; - -static const wchar_t* const de_but_KEYWORDS[] = { L"* ", L"Aber " }; -static const Keywords de_but_keywords = { 2, de_but_KEYWORDS }; - -static const wchar_t* const de_examples_KEYWORDS[] = { L"Beispiele" }; -static const Keywords de_examples_keywords = { 1, de_examples_KEYWORDS }; - -static const wchar_t* const de_feature_KEYWORDS[] = { L"Funktionalität", L"Funktion" }; -static const Keywords de_feature_keywords = { 2, de_feature_KEYWORDS }; - -static const wchar_t* const de_given_KEYWORDS[] = { L"* ", L"Angenommen ", L"Gegeben sei ", L"Gegeben seien " }; -static const Keywords de_given_keywords = { 4, de_given_KEYWORDS }; - -static const wchar_t* const de_rule_KEYWORDS[] = { L"Rule", L"Regel" }; -static const Keywords de_rule_keywords = { 2, de_rule_KEYWORDS }; - -static const wchar_t* const de_scenario_KEYWORDS[] = { L"Beispiel", L"Szenario" }; -static const Keywords de_scenario_keywords = { 2, de_scenario_KEYWORDS }; - -static const wchar_t* const de_scenarioOutline_KEYWORDS[] = { L"Szenariogrundriss", L"Szenarien" }; -static const Keywords de_scenarioOutline_keywords = { 2, de_scenarioOutline_KEYWORDS }; - -static const wchar_t* const de_then_KEYWORDS[] = { L"* ", L"Dann " }; -static const Keywords de_then_keywords = { 2, de_then_KEYWORDS }; - -static const wchar_t* const de_when_KEYWORDS[] = { L"* ", L"Wenn " }; -static const Keywords de_when_keywords = { 2, de_when_KEYWORDS }; - -static const Dialect de_dialect = { - L"de", - &de_and_keywords, - &de_background_keywords, - &de_but_keywords, - &de_examples_keywords, - &de_feature_keywords, - &de_given_keywords, - &de_rule_keywords, - &de_scenario_keywords, - &de_scenarioOutline_keywords, - &de_then_keywords, - &de_when_keywords }; - -static const wchar_t* const el_and_KEYWORDS[] = { L"* ", L"Και " }; -static const Keywords el_and_keywords = { 2, el_and_KEYWORDS }; - -static const wchar_t* const el_background_KEYWORDS[] = { L"Υπόβαθρο" }; -static const Keywords el_background_keywords = { 1, el_background_KEYWORDS }; - -static const wchar_t* const el_but_KEYWORDS[] = { L"* ", L"Αλλά " }; -static const Keywords el_but_keywords = { 2, el_but_KEYWORDS }; - -static const wchar_t* const el_examples_KEYWORDS[] = { L"Παραδείγματα", L"Σενάρια" }; -static const Keywords el_examples_keywords = { 2, el_examples_KEYWORDS }; - -static const wchar_t* const el_feature_KEYWORDS[] = { L"Δυνατότητα", L"Λειτουργία" }; -static const Keywords el_feature_keywords = { 2, el_feature_KEYWORDS }; - -static const wchar_t* const el_given_KEYWORDS[] = { L"* ", L"Δεδομένου " }; -static const Keywords el_given_keywords = { 2, el_given_KEYWORDS }; - -static const wchar_t* const el_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords el_rule_keywords = { 1, el_rule_KEYWORDS }; - -static const wchar_t* const el_scenario_KEYWORDS[] = { L"Παράδειγμα", L"Σενάριο" }; -static const Keywords el_scenario_keywords = { 2, el_scenario_KEYWORDS }; - -static const wchar_t* const el_scenarioOutline_KEYWORDS[] = { L"Περιγραφή Σεναρίου", L"Περίγραμμα Σεναρίου" }; -static const Keywords el_scenarioOutline_keywords = { 2, el_scenarioOutline_KEYWORDS }; - -static const wchar_t* const el_then_KEYWORDS[] = { L"* ", L"Τότε " }; -static const Keywords el_then_keywords = { 2, el_then_KEYWORDS }; - -static const wchar_t* const el_when_KEYWORDS[] = { L"* ", L"Όταν " }; -static const Keywords el_when_keywords = { 2, el_when_KEYWORDS }; - -static const Dialect el_dialect = { - L"el", - &el_and_keywords, - &el_background_keywords, - &el_but_keywords, - &el_examples_keywords, - &el_feature_keywords, - &el_given_keywords, - &el_rule_keywords, - &el_scenario_keywords, - &el_scenarioOutline_keywords, - &el_then_keywords, - &el_when_keywords }; - -static const wchar_t* const em_and_KEYWORDS[] = { L"* ", L"😂" }; -static const Keywords em_and_keywords = { 2, em_and_KEYWORDS }; - -static const wchar_t* const em_background_KEYWORDS[] = { L"💤" }; -static const Keywords em_background_keywords = { 1, em_background_KEYWORDS }; - -static const wchar_t* const em_but_KEYWORDS[] = { L"* ", L"😔" }; -static const Keywords em_but_keywords = { 2, em_but_KEYWORDS }; - -static const wchar_t* const em_examples_KEYWORDS[] = { L"📓" }; -static const Keywords em_examples_keywords = { 1, em_examples_KEYWORDS }; - -static const wchar_t* const em_feature_KEYWORDS[] = { L"📚" }; -static const Keywords em_feature_keywords = { 1, em_feature_KEYWORDS }; - -static const wchar_t* const em_given_KEYWORDS[] = { L"* ", L"😐" }; -static const Keywords em_given_keywords = { 2, em_given_KEYWORDS }; - -static const wchar_t* const em_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords em_rule_keywords = { 1, em_rule_KEYWORDS }; - -static const wchar_t* const em_scenario_KEYWORDS[] = { L"🥒", L"📕" }; -static const Keywords em_scenario_keywords = { 2, em_scenario_KEYWORDS }; - -static const wchar_t* const em_scenarioOutline_KEYWORDS[] = { L"📖" }; -static const Keywords em_scenarioOutline_keywords = { 1, em_scenarioOutline_KEYWORDS }; - -static const wchar_t* const em_then_KEYWORDS[] = { L"* ", L"🙏" }; -static const Keywords em_then_keywords = { 2, em_then_KEYWORDS }; - -static const wchar_t* const em_when_KEYWORDS[] = { L"* ", L"🎬" }; -static const Keywords em_when_keywords = { 2, em_when_KEYWORDS }; - -static const Dialect em_dialect = { - L"em", - &em_and_keywords, - &em_background_keywords, - &em_but_keywords, - &em_examples_keywords, - &em_feature_keywords, - &em_given_keywords, - &em_rule_keywords, - &em_scenario_keywords, - &em_scenarioOutline_keywords, - &em_then_keywords, - &em_when_keywords }; - -static const wchar_t* const en_and_KEYWORDS[] = { L"* ", L"And " }; -static const Keywords en_and_keywords = { 2, en_and_KEYWORDS }; - -static const wchar_t* const en_background_KEYWORDS[] = { L"Background" }; -static const Keywords en_background_keywords = { 1, en_background_KEYWORDS }; - -static const wchar_t* const en_but_KEYWORDS[] = { L"* ", L"But " }; -static const Keywords en_but_keywords = { 2, en_but_KEYWORDS }; - -static const wchar_t* const en_examples_KEYWORDS[] = { L"Examples", L"Scenarios" }; -static const Keywords en_examples_keywords = { 2, en_examples_KEYWORDS }; - -static const wchar_t* const en_feature_KEYWORDS[] = { L"Feature", L"Business Need", L"Ability" }; -static const Keywords en_feature_keywords = { 3, en_feature_KEYWORDS }; - -static const wchar_t* const en_given_KEYWORDS[] = { L"* ", L"Given " }; -static const Keywords en_given_keywords = { 2, en_given_KEYWORDS }; - -static const wchar_t* const en_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_rule_keywords = { 1, en_rule_KEYWORDS }; - -static const wchar_t* const en_scenario_KEYWORDS[] = { L"Example", L"Scenario" }; -static const Keywords en_scenario_keywords = { 2, en_scenario_KEYWORDS }; - -static const wchar_t* const en_scenarioOutline_KEYWORDS[] = { L"Scenario Outline", L"Scenario Template" }; -static const Keywords en_scenarioOutline_keywords = { 2, en_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_then_KEYWORDS[] = { L"* ", L"Then " }; -static const Keywords en_then_keywords = { 2, en_then_KEYWORDS }; - -static const wchar_t* const en_when_KEYWORDS[] = { L"* ", L"When " }; -static const Keywords en_when_keywords = { 2, en_when_KEYWORDS }; - -static const Dialect en_dialect = { - L"en", - &en_and_keywords, - &en_background_keywords, - &en_but_keywords, - &en_examples_keywords, - &en_feature_keywords, - &en_given_keywords, - &en_rule_keywords, - &en_scenario_keywords, - &en_scenarioOutline_keywords, - &en_then_keywords, - &en_when_keywords }; - -static const wchar_t* const en_Scouse_and_KEYWORDS[] = { L"* ", L"An " }; -static const Keywords en_Scouse_and_keywords = { 2, en_Scouse_and_KEYWORDS }; - -static const wchar_t* const en_Scouse_background_KEYWORDS[] = { L"Dis is what went down" }; -static const Keywords en_Scouse_background_keywords = { 1, en_Scouse_background_KEYWORDS }; - -static const wchar_t* const en_Scouse_but_KEYWORDS[] = { L"* ", L"Buh " }; -static const Keywords en_Scouse_but_keywords = { 2, en_Scouse_but_KEYWORDS }; - -static const wchar_t* const en_Scouse_examples_KEYWORDS[] = { L"Examples" }; -static const Keywords en_Scouse_examples_keywords = { 1, en_Scouse_examples_KEYWORDS }; - -static const wchar_t* const en_Scouse_feature_KEYWORDS[] = { L"Feature" }; -static const Keywords en_Scouse_feature_keywords = { 1, en_Scouse_feature_KEYWORDS }; - -static const wchar_t* const en_Scouse_given_KEYWORDS[] = { L"* ", L"Givun ", L"Youse know when youse got " }; -static const Keywords en_Scouse_given_keywords = { 3, en_Scouse_given_KEYWORDS }; - -static const wchar_t* const en_Scouse_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_Scouse_rule_keywords = { 1, en_Scouse_rule_KEYWORDS }; - -static const wchar_t* const en_Scouse_scenario_KEYWORDS[] = { L"The thing of it is" }; -static const Keywords en_Scouse_scenario_keywords = { 1, en_Scouse_scenario_KEYWORDS }; - -static const wchar_t* const en_Scouse_scenarioOutline_KEYWORDS[] = { L"Wharrimean is" }; -static const Keywords en_Scouse_scenarioOutline_keywords = { 1, en_Scouse_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_Scouse_then_KEYWORDS[] = { L"* ", L"Dun ", L"Den youse gotta " }; -static const Keywords en_Scouse_then_keywords = { 3, en_Scouse_then_KEYWORDS }; - -static const wchar_t* const en_Scouse_when_KEYWORDS[] = { L"* ", L"Wun ", L"Youse know like when " }; -static const Keywords en_Scouse_when_keywords = { 3, en_Scouse_when_KEYWORDS }; - -static const Dialect en_Scouse_dialect = { - L"en-Scouse", - &en_Scouse_and_keywords, - &en_Scouse_background_keywords, - &en_Scouse_but_keywords, - &en_Scouse_examples_keywords, - &en_Scouse_feature_keywords, - &en_Scouse_given_keywords, - &en_Scouse_rule_keywords, - &en_Scouse_scenario_keywords, - &en_Scouse_scenarioOutline_keywords, - &en_Scouse_then_keywords, - &en_Scouse_when_keywords }; - -static const wchar_t* const en_au_and_KEYWORDS[] = { L"* ", L"Too right " }; -static const Keywords en_au_and_keywords = { 2, en_au_and_KEYWORDS }; - -static const wchar_t* const en_au_background_KEYWORDS[] = { L"First off" }; -static const Keywords en_au_background_keywords = { 1, en_au_background_KEYWORDS }; - -static const wchar_t* const en_au_but_KEYWORDS[] = { L"* ", L"Yeah nah " }; -static const Keywords en_au_but_keywords = { 2, en_au_but_KEYWORDS }; - -static const wchar_t* const en_au_examples_KEYWORDS[] = { L"You'll wanna" }; -static const Keywords en_au_examples_keywords = { 1, en_au_examples_KEYWORDS }; - -static const wchar_t* const en_au_feature_KEYWORDS[] = { L"Pretty much" }; -static const Keywords en_au_feature_keywords = { 1, en_au_feature_KEYWORDS }; - -static const wchar_t* const en_au_given_KEYWORDS[] = { L"* ", L"Y'know " }; -static const Keywords en_au_given_keywords = { 2, en_au_given_KEYWORDS }; - -static const wchar_t* const en_au_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_au_rule_keywords = { 1, en_au_rule_KEYWORDS }; - -static const wchar_t* const en_au_scenario_KEYWORDS[] = { L"Awww, look mate" }; -static const Keywords en_au_scenario_keywords = { 1, en_au_scenario_KEYWORDS }; - -static const wchar_t* const en_au_scenarioOutline_KEYWORDS[] = { L"Reckon it's like" }; -static const Keywords en_au_scenarioOutline_keywords = { 1, en_au_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_au_then_KEYWORDS[] = { L"* ", L"But at the end of the day I reckon " }; -static const Keywords en_au_then_keywords = { 2, en_au_then_KEYWORDS }; - -static const wchar_t* const en_au_when_KEYWORDS[] = { L"* ", L"It's just unbelievable " }; -static const Keywords en_au_when_keywords = { 2, en_au_when_KEYWORDS }; - -static const Dialect en_au_dialect = { - L"en-au", - &en_au_and_keywords, - &en_au_background_keywords, - &en_au_but_keywords, - &en_au_examples_keywords, - &en_au_feature_keywords, - &en_au_given_keywords, - &en_au_rule_keywords, - &en_au_scenario_keywords, - &en_au_scenarioOutline_keywords, - &en_au_then_keywords, - &en_au_when_keywords }; - -static const wchar_t* const en_lol_and_KEYWORDS[] = { L"* ", L"AN " }; -static const Keywords en_lol_and_keywords = { 2, en_lol_and_KEYWORDS }; - -static const wchar_t* const en_lol_background_KEYWORDS[] = { L"B4" }; -static const Keywords en_lol_background_keywords = { 1, en_lol_background_KEYWORDS }; - -static const wchar_t* const en_lol_but_KEYWORDS[] = { L"* ", L"BUT " }; -static const Keywords en_lol_but_keywords = { 2, en_lol_but_KEYWORDS }; - -static const wchar_t* const en_lol_examples_KEYWORDS[] = { L"EXAMPLZ" }; -static const Keywords en_lol_examples_keywords = { 1, en_lol_examples_KEYWORDS }; - -static const wchar_t* const en_lol_feature_KEYWORDS[] = { L"OH HAI" }; -static const Keywords en_lol_feature_keywords = { 1, en_lol_feature_KEYWORDS }; - -static const wchar_t* const en_lol_given_KEYWORDS[] = { L"* ", L"I CAN HAZ " }; -static const Keywords en_lol_given_keywords = { 2, en_lol_given_KEYWORDS }; - -static const wchar_t* const en_lol_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_lol_rule_keywords = { 1, en_lol_rule_KEYWORDS }; - -static const wchar_t* const en_lol_scenario_KEYWORDS[] = { L"MISHUN" }; -static const Keywords en_lol_scenario_keywords = { 1, en_lol_scenario_KEYWORDS }; - -static const wchar_t* const en_lol_scenarioOutline_KEYWORDS[] = { L"MISHUN SRSLY" }; -static const Keywords en_lol_scenarioOutline_keywords = { 1, en_lol_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_lol_then_KEYWORDS[] = { L"* ", L"DEN " }; -static const Keywords en_lol_then_keywords = { 2, en_lol_then_KEYWORDS }; - -static const wchar_t* const en_lol_when_KEYWORDS[] = { L"* ", L"WEN " }; -static const Keywords en_lol_when_keywords = { 2, en_lol_when_KEYWORDS }; - -static const Dialect en_lol_dialect = { - L"en-lol", - &en_lol_and_keywords, - &en_lol_background_keywords, - &en_lol_but_keywords, - &en_lol_examples_keywords, - &en_lol_feature_keywords, - &en_lol_given_keywords, - &en_lol_rule_keywords, - &en_lol_scenario_keywords, - &en_lol_scenarioOutline_keywords, - &en_lol_then_keywords, - &en_lol_when_keywords }; - -static const wchar_t* const en_old_and_KEYWORDS[] = { L"* ", L"Ond ", L"7 " }; -static const Keywords en_old_and_keywords = { 3, en_old_and_KEYWORDS }; - -static const wchar_t* const en_old_background_KEYWORDS[] = { L"Aer", L"Ær" }; -static const Keywords en_old_background_keywords = { 2, en_old_background_KEYWORDS }; - -static const wchar_t* const en_old_but_KEYWORDS[] = { L"* ", L"Ac " }; -static const Keywords en_old_but_keywords = { 2, en_old_but_KEYWORDS }; - -static const wchar_t* const en_old_examples_KEYWORDS[] = { L"Se the", L"Se þe", L"Se ðe" }; -static const Keywords en_old_examples_keywords = { 3, en_old_examples_KEYWORDS }; - -static const wchar_t* const en_old_feature_KEYWORDS[] = { L"Hwaet", L"Hwæt" }; -static const Keywords en_old_feature_keywords = { 2, en_old_feature_KEYWORDS }; - -static const wchar_t* const en_old_given_KEYWORDS[] = { L"* ", L"Thurh ", L"Þurh ", L"Ðurh " }; -static const Keywords en_old_given_keywords = { 4, en_old_given_KEYWORDS }; - -static const wchar_t* const en_old_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_old_rule_keywords = { 1, en_old_rule_KEYWORDS }; - -static const wchar_t* const en_old_scenario_KEYWORDS[] = { L"Swa" }; -static const Keywords en_old_scenario_keywords = { 1, en_old_scenario_KEYWORDS }; - -static const wchar_t* const en_old_scenarioOutline_KEYWORDS[] = { L"Swa hwaer swa", L"Swa hwær swa" }; -static const Keywords en_old_scenarioOutline_keywords = { 2, en_old_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_old_then_KEYWORDS[] = { L"* ", L"Tha ", L"Þa ", L"Ða ", L"Tha the ", L"Þa þe ", L"Ða ðe " }; -static const Keywords en_old_then_keywords = { 7, en_old_then_KEYWORDS }; - -static const wchar_t* const en_old_when_KEYWORDS[] = { L"* ", L"Bæþsealf ", L"Bæþsealfa ", L"Bæþsealfe ", L"Ciricæw ", L"Ciricæwe ", L"Ciricæwa " }; -static const Keywords en_old_when_keywords = { 7, en_old_when_KEYWORDS }; - -static const Dialect en_old_dialect = { - L"en-old", - &en_old_and_keywords, - &en_old_background_keywords, - &en_old_but_keywords, - &en_old_examples_keywords, - &en_old_feature_keywords, - &en_old_given_keywords, - &en_old_rule_keywords, - &en_old_scenario_keywords, - &en_old_scenarioOutline_keywords, - &en_old_then_keywords, - &en_old_when_keywords }; - -static const wchar_t* const en_pirate_and_KEYWORDS[] = { L"* ", L"Aye " }; -static const Keywords en_pirate_and_keywords = { 2, en_pirate_and_KEYWORDS }; - -static const wchar_t* const en_pirate_background_KEYWORDS[] = { L"Yo-ho-ho" }; -static const Keywords en_pirate_background_keywords = { 1, en_pirate_background_KEYWORDS }; - -static const wchar_t* const en_pirate_but_KEYWORDS[] = { L"* ", L"Avast! " }; -static const Keywords en_pirate_but_keywords = { 2, en_pirate_but_KEYWORDS }; - -static const wchar_t* const en_pirate_examples_KEYWORDS[] = { L"Dead men tell no tales" }; -static const Keywords en_pirate_examples_keywords = { 1, en_pirate_examples_KEYWORDS }; - -static const wchar_t* const en_pirate_feature_KEYWORDS[] = { L"Ahoy matey!" }; -static const Keywords en_pirate_feature_keywords = { 1, en_pirate_feature_KEYWORDS }; - -static const wchar_t* const en_pirate_given_KEYWORDS[] = { L"* ", L"Gangway! " }; -static const Keywords en_pirate_given_keywords = { 2, en_pirate_given_KEYWORDS }; - -static const wchar_t* const en_pirate_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords en_pirate_rule_keywords = { 1, en_pirate_rule_KEYWORDS }; - -static const wchar_t* const en_pirate_scenario_KEYWORDS[] = { L"Heave to" }; -static const Keywords en_pirate_scenario_keywords = { 1, en_pirate_scenario_KEYWORDS }; - -static const wchar_t* const en_pirate_scenarioOutline_KEYWORDS[] = { L"Shiver me timbers" }; -static const Keywords en_pirate_scenarioOutline_keywords = { 1, en_pirate_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_pirate_then_KEYWORDS[] = { L"* ", L"Let go and haul " }; -static const Keywords en_pirate_then_keywords = { 2, en_pirate_then_KEYWORDS }; - -static const wchar_t* const en_pirate_when_KEYWORDS[] = { L"* ", L"Blimey! " }; -static const Keywords en_pirate_when_keywords = { 2, en_pirate_when_KEYWORDS }; - -static const Dialect en_pirate_dialect = { - L"en-pirate", - &en_pirate_and_keywords, - &en_pirate_background_keywords, - &en_pirate_but_keywords, - &en_pirate_examples_keywords, - &en_pirate_feature_keywords, - &en_pirate_given_keywords, - &en_pirate_rule_keywords, - &en_pirate_scenario_keywords, - &en_pirate_scenarioOutline_keywords, - &en_pirate_then_keywords, - &en_pirate_when_keywords }; - -static const wchar_t* const en_tx_and_KEYWORDS[] = { L"Come hell or high water " }; -static const Keywords en_tx_and_keywords = { 1, en_tx_and_KEYWORDS }; - -static const wchar_t* const en_tx_background_KEYWORDS[] = { L"Lemme tell y'all a story" }; -static const Keywords en_tx_background_keywords = { 1, en_tx_background_KEYWORDS }; - -static const wchar_t* const en_tx_but_KEYWORDS[] = { L"Well now hold on, I'll you what " }; -static const Keywords en_tx_but_keywords = { 1, en_tx_but_KEYWORDS }; - -static const wchar_t* const en_tx_examples_KEYWORDS[] = { L"Now that's a story longer than a cattle drive in July" }; -static const Keywords en_tx_examples_keywords = { 1, en_tx_examples_KEYWORDS }; - -static const wchar_t* const en_tx_feature_KEYWORDS[] = { L"This ain’t my first rodeo", L"All gussied up" }; -static const Keywords en_tx_feature_keywords = { 2, en_tx_feature_KEYWORDS }; - -static const wchar_t* const en_tx_given_KEYWORDS[] = { L"Fixin' to ", L"All git out " }; -static const Keywords en_tx_given_keywords = { 2, en_tx_given_KEYWORDS }; - -static const wchar_t* const en_tx_rule_KEYWORDS[] = { L"Rule " }; -static const Keywords en_tx_rule_keywords = { 1, en_tx_rule_KEYWORDS }; - -static const wchar_t* const en_tx_scenario_KEYWORDS[] = { L"All hat and no cattle" }; -static const Keywords en_tx_scenario_keywords = { 1, en_tx_scenario_KEYWORDS }; - -static const wchar_t* const en_tx_scenarioOutline_KEYWORDS[] = { L"Serious as a snake bite", L"Busy as a hound in flea season" }; -static const Keywords en_tx_scenarioOutline_keywords = { 2, en_tx_scenarioOutline_KEYWORDS }; - -static const wchar_t* const en_tx_then_KEYWORDS[] = { L"There’s no tree but bears some fruit " }; -static const Keywords en_tx_then_keywords = { 1, en_tx_then_KEYWORDS }; - -static const wchar_t* const en_tx_when_KEYWORDS[] = { L"Quick out of the chute " }; -static const Keywords en_tx_when_keywords = { 1, en_tx_when_KEYWORDS }; - -static const Dialect en_tx_dialect = { - L"en-tx", - &en_tx_and_keywords, - &en_tx_background_keywords, - &en_tx_but_keywords, - &en_tx_examples_keywords, - &en_tx_feature_keywords, - &en_tx_given_keywords, - &en_tx_rule_keywords, - &en_tx_scenario_keywords, - &en_tx_scenarioOutline_keywords, - &en_tx_then_keywords, - &en_tx_when_keywords }; - -static const wchar_t* const eo_and_KEYWORDS[] = { L"* ", L"Kaj " }; -static const Keywords eo_and_keywords = { 2, eo_and_KEYWORDS }; - -static const wchar_t* const eo_background_KEYWORDS[] = { L"Fono" }; -static const Keywords eo_background_keywords = { 1, eo_background_KEYWORDS }; - -static const wchar_t* const eo_but_KEYWORDS[] = { L"* ", L"Sed " }; -static const Keywords eo_but_keywords = { 2, eo_but_KEYWORDS }; - -static const wchar_t* const eo_examples_KEYWORDS[] = { L"Ekzemploj" }; -static const Keywords eo_examples_keywords = { 1, eo_examples_KEYWORDS }; - -static const wchar_t* const eo_feature_KEYWORDS[] = { L"Trajto" }; -static const Keywords eo_feature_keywords = { 1, eo_feature_KEYWORDS }; - -static const wchar_t* const eo_given_KEYWORDS[] = { L"* ", L"Donitaĵo ", L"Komence " }; -static const Keywords eo_given_keywords = { 3, eo_given_KEYWORDS }; - -static const wchar_t* const eo_rule_KEYWORDS[] = { L"Regulo" }; -static const Keywords eo_rule_keywords = { 1, eo_rule_KEYWORDS }; - -static const wchar_t* const eo_scenario_KEYWORDS[] = { L"Ekzemplo", L"Scenaro", L"Kazo" }; -static const Keywords eo_scenario_keywords = { 3, eo_scenario_KEYWORDS }; - -static const wchar_t* const eo_scenarioOutline_KEYWORDS[] = { L"Konturo de la scenaro", L"Skizo", L"Kazo-skizo" }; -static const Keywords eo_scenarioOutline_keywords = { 3, eo_scenarioOutline_KEYWORDS }; - -static const wchar_t* const eo_then_KEYWORDS[] = { L"* ", L"Do " }; -static const Keywords eo_then_keywords = { 2, eo_then_KEYWORDS }; - -static const wchar_t* const eo_when_KEYWORDS[] = { L"* ", L"Se " }; -static const Keywords eo_when_keywords = { 2, eo_when_KEYWORDS }; - -static const Dialect eo_dialect = { - L"eo", - &eo_and_keywords, - &eo_background_keywords, - &eo_but_keywords, - &eo_examples_keywords, - &eo_feature_keywords, - &eo_given_keywords, - &eo_rule_keywords, - &eo_scenario_keywords, - &eo_scenarioOutline_keywords, - &eo_then_keywords, - &eo_when_keywords }; - -static const wchar_t* const es_and_KEYWORDS[] = { L"* ", L"Y ", L"E " }; -static const Keywords es_and_keywords = { 3, es_and_KEYWORDS }; - -static const wchar_t* const es_background_KEYWORDS[] = { L"Antecedentes" }; -static const Keywords es_background_keywords = { 1, es_background_KEYWORDS }; - -static const wchar_t* const es_but_KEYWORDS[] = { L"* ", L"Pero " }; -static const Keywords es_but_keywords = { 2, es_but_KEYWORDS }; - -static const wchar_t* const es_examples_KEYWORDS[] = { L"Ejemplos" }; -static const Keywords es_examples_keywords = { 1, es_examples_KEYWORDS }; - -static const wchar_t* const es_feature_KEYWORDS[] = { L"Característica", L"Necesidad del negocio", L"Requisito" }; -static const Keywords es_feature_keywords = { 3, es_feature_KEYWORDS }; - -static const wchar_t* const es_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; -static const Keywords es_given_keywords = { 5, es_given_KEYWORDS }; - -static const wchar_t* const es_rule_KEYWORDS[] = { L"Regla", L"Regla de negocio" }; -static const Keywords es_rule_keywords = { 2, es_rule_KEYWORDS }; - -static const wchar_t* const es_scenario_KEYWORDS[] = { L"Ejemplo", L"Escenario" }; -static const Keywords es_scenario_keywords = { 2, es_scenario_KEYWORDS }; - -static const wchar_t* const es_scenarioOutline_KEYWORDS[] = { L"Esquema del escenario" }; -static const Keywords es_scenarioOutline_keywords = { 1, es_scenarioOutline_KEYWORDS }; - -static const wchar_t* const es_then_KEYWORDS[] = { L"* ", L"Entonces " }; -static const Keywords es_then_keywords = { 2, es_then_KEYWORDS }; - -static const wchar_t* const es_when_KEYWORDS[] = { L"* ", L"Cuando " }; -static const Keywords es_when_keywords = { 2, es_when_KEYWORDS }; - -static const Dialect es_dialect = { - L"es", - &es_and_keywords, - &es_background_keywords, - &es_but_keywords, - &es_examples_keywords, - &es_feature_keywords, - &es_given_keywords, - &es_rule_keywords, - &es_scenario_keywords, - &es_scenarioOutline_keywords, - &es_then_keywords, - &es_when_keywords }; - -static const wchar_t* const et_and_KEYWORDS[] = { L"* ", L"Ja " }; -static const Keywords et_and_keywords = { 2, et_and_KEYWORDS }; - -static const wchar_t* const et_background_KEYWORDS[] = { L"Taust" }; -static const Keywords et_background_keywords = { 1, et_background_KEYWORDS }; - -static const wchar_t* const et_but_KEYWORDS[] = { L"* ", L"Kuid " }; -static const Keywords et_but_keywords = { 2, et_but_KEYWORDS }; - -static const wchar_t* const et_examples_KEYWORDS[] = { L"Juhtumid" }; -static const Keywords et_examples_keywords = { 1, et_examples_KEYWORDS }; - -static const wchar_t* const et_feature_KEYWORDS[] = { L"Omadus" }; -static const Keywords et_feature_keywords = { 1, et_feature_KEYWORDS }; - -static const wchar_t* const et_given_KEYWORDS[] = { L"* ", L"Eeldades " }; -static const Keywords et_given_keywords = { 2, et_given_KEYWORDS }; - -static const wchar_t* const et_rule_KEYWORDS[] = { L"Reegel" }; -static const Keywords et_rule_keywords = { 1, et_rule_KEYWORDS }; - -static const wchar_t* const et_scenario_KEYWORDS[] = { L"Juhtum", L"Stsenaarium" }; -static const Keywords et_scenario_keywords = { 2, et_scenario_KEYWORDS }; - -static const wchar_t* const et_scenarioOutline_KEYWORDS[] = { L"Raamjuhtum", L"Raamstsenaarium" }; -static const Keywords et_scenarioOutline_keywords = { 2, et_scenarioOutline_KEYWORDS }; - -static const wchar_t* const et_then_KEYWORDS[] = { L"* ", L"Siis " }; -static const Keywords et_then_keywords = { 2, et_then_KEYWORDS }; - -static const wchar_t* const et_when_KEYWORDS[] = { L"* ", L"Kui " }; -static const Keywords et_when_keywords = { 2, et_when_KEYWORDS }; - -static const Dialect et_dialect = { - L"et", - &et_and_keywords, - &et_background_keywords, - &et_but_keywords, - &et_examples_keywords, - &et_feature_keywords, - &et_given_keywords, - &et_rule_keywords, - &et_scenario_keywords, - &et_scenarioOutline_keywords, - &et_then_keywords, - &et_when_keywords }; - -static const wchar_t* const fa_and_KEYWORDS[] = { L"* ", L"و " }; -static const Keywords fa_and_keywords = { 2, fa_and_KEYWORDS }; - -static const wchar_t* const fa_background_KEYWORDS[] = { L"زمینه" }; -static const Keywords fa_background_keywords = { 1, fa_background_KEYWORDS }; - -static const wchar_t* const fa_but_KEYWORDS[] = { L"* ", L"اما " }; -static const Keywords fa_but_keywords = { 2, fa_but_KEYWORDS }; - -static const wchar_t* const fa_examples_KEYWORDS[] = { L"نمونه ها" }; -static const Keywords fa_examples_keywords = { 1, fa_examples_KEYWORDS }; - -static const wchar_t* const fa_feature_KEYWORDS[] = { L"وِیژگی" }; -static const Keywords fa_feature_keywords = { 1, fa_feature_KEYWORDS }; - -static const wchar_t* const fa_given_KEYWORDS[] = { L"* ", L"با فرض " }; -static const Keywords fa_given_keywords = { 2, fa_given_KEYWORDS }; - -static const wchar_t* const fa_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords fa_rule_keywords = { 1, fa_rule_KEYWORDS }; - -static const wchar_t* const fa_scenario_KEYWORDS[] = { L"مثال", L"سناریو" }; -static const Keywords fa_scenario_keywords = { 2, fa_scenario_KEYWORDS }; - -static const wchar_t* const fa_scenarioOutline_KEYWORDS[] = { L"الگوی سناریو" }; -static const Keywords fa_scenarioOutline_keywords = { 1, fa_scenarioOutline_KEYWORDS }; - -static const wchar_t* const fa_then_KEYWORDS[] = { L"* ", L"آنگاه " }; -static const Keywords fa_then_keywords = { 2, fa_then_KEYWORDS }; - -static const wchar_t* const fa_when_KEYWORDS[] = { L"* ", L"هنگامی " }; -static const Keywords fa_when_keywords = { 2, fa_when_KEYWORDS }; - -static const Dialect fa_dialect = { - L"fa", - &fa_and_keywords, - &fa_background_keywords, - &fa_but_keywords, - &fa_examples_keywords, - &fa_feature_keywords, - &fa_given_keywords, - &fa_rule_keywords, - &fa_scenario_keywords, - &fa_scenarioOutline_keywords, - &fa_then_keywords, - &fa_when_keywords }; - -static const wchar_t* const fi_and_KEYWORDS[] = { L"* ", L"Ja " }; -static const Keywords fi_and_keywords = { 2, fi_and_KEYWORDS }; - -static const wchar_t* const fi_background_KEYWORDS[] = { L"Tausta" }; -static const Keywords fi_background_keywords = { 1, fi_background_KEYWORDS }; - -static const wchar_t* const fi_but_KEYWORDS[] = { L"* ", L"Mutta " }; -static const Keywords fi_but_keywords = { 2, fi_but_KEYWORDS }; - -static const wchar_t* const fi_examples_KEYWORDS[] = { L"Tapaukset" }; -static const Keywords fi_examples_keywords = { 1, fi_examples_KEYWORDS }; - -static const wchar_t* const fi_feature_KEYWORDS[] = { L"Ominaisuus" }; -static const Keywords fi_feature_keywords = { 1, fi_feature_KEYWORDS }; - -static const wchar_t* const fi_given_KEYWORDS[] = { L"* ", L"Oletetaan " }; -static const Keywords fi_given_keywords = { 2, fi_given_KEYWORDS }; - -static const wchar_t* const fi_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords fi_rule_keywords = { 1, fi_rule_KEYWORDS }; - -static const wchar_t* const fi_scenario_KEYWORDS[] = { L"Tapaus" }; -static const Keywords fi_scenario_keywords = { 1, fi_scenario_KEYWORDS }; - -static const wchar_t* const fi_scenarioOutline_KEYWORDS[] = { L"Tapausaihio" }; -static const Keywords fi_scenarioOutline_keywords = { 1, fi_scenarioOutline_KEYWORDS }; - -static const wchar_t* const fi_then_KEYWORDS[] = { L"* ", L"Niin " }; -static const Keywords fi_then_keywords = { 2, fi_then_KEYWORDS }; - -static const wchar_t* const fi_when_KEYWORDS[] = { L"* ", L"Kun " }; -static const Keywords fi_when_keywords = { 2, fi_when_KEYWORDS }; - -static const Dialect fi_dialect = { - L"fi", - &fi_and_keywords, - &fi_background_keywords, - &fi_but_keywords, - &fi_examples_keywords, - &fi_feature_keywords, - &fi_given_keywords, - &fi_rule_keywords, - &fi_scenario_keywords, - &fi_scenarioOutline_keywords, - &fi_then_keywords, - &fi_when_keywords }; - -static const wchar_t* const fr_and_KEYWORDS[] = { L"* ", L"Et que ", L"Et qu'", L"Et " }; -static const Keywords fr_and_keywords = { 4, fr_and_KEYWORDS }; - -static const wchar_t* const fr_background_KEYWORDS[] = { L"Contexte" }; -static const Keywords fr_background_keywords = { 1, fr_background_KEYWORDS }; - -static const wchar_t* const fr_but_KEYWORDS[] = { L"* ", L"Mais que ", L"Mais qu'", L"Mais " }; -static const Keywords fr_but_keywords = { 4, fr_but_KEYWORDS }; - -static const wchar_t* const fr_examples_KEYWORDS[] = { L"Exemples" }; -static const Keywords fr_examples_keywords = { 1, fr_examples_KEYWORDS }; - -static const wchar_t* const fr_feature_KEYWORDS[] = { L"Fonctionnalité" }; -static const Keywords fr_feature_keywords = { 1, fr_feature_KEYWORDS }; - -static const wchar_t* const fr_given_KEYWORDS[] = { L"* ", L"Soit ", L"Sachant que ", L"Sachant qu'", L"Sachant ", L"Etant donné que ", L"Etant donné qu'", L"Etant donné ", L"Etant donnée ", L"Etant donnés ", L"Etant données ", L"Étant donné que ", L"Étant donné qu'", L"Étant donné ", L"Étant donnée ", L"Étant donnés ", L"Étant données " }; -static const Keywords fr_given_keywords = { 17, fr_given_KEYWORDS }; - -static const wchar_t* const fr_rule_KEYWORDS[] = { L"Règle" }; -static const Keywords fr_rule_keywords = { 1, fr_rule_KEYWORDS }; - -static const wchar_t* const fr_scenario_KEYWORDS[] = { L"Exemple", L"Scénario" }; -static const Keywords fr_scenario_keywords = { 2, fr_scenario_KEYWORDS }; - -static const wchar_t* const fr_scenarioOutline_KEYWORDS[] = { L"Plan du scénario", L"Plan du Scénario" }; -static const Keywords fr_scenarioOutline_keywords = { 2, fr_scenarioOutline_KEYWORDS }; - -static const wchar_t* const fr_then_KEYWORDS[] = { L"* ", L"Alors ", L"Donc " }; -static const Keywords fr_then_keywords = { 3, fr_then_KEYWORDS }; - -static const wchar_t* const fr_when_KEYWORDS[] = { L"* ", L"Quand ", L"Lorsque ", L"Lorsqu'" }; -static const Keywords fr_when_keywords = { 4, fr_when_KEYWORDS }; - -static const Dialect fr_dialect = { - L"fr", - &fr_and_keywords, - &fr_background_keywords, - &fr_but_keywords, - &fr_examples_keywords, - &fr_feature_keywords, - &fr_given_keywords, - &fr_rule_keywords, - &fr_scenario_keywords, - &fr_scenarioOutline_keywords, - &fr_then_keywords, - &fr_when_keywords }; - -static const wchar_t* const ga_and_KEYWORDS[] = { L"* ", L"Agus " }; -static const Keywords ga_and_keywords = { 2, ga_and_KEYWORDS }; - -static const wchar_t* const ga_background_KEYWORDS[] = { L"Cúlra" }; -static const Keywords ga_background_keywords = { 1, ga_background_KEYWORDS }; - -static const wchar_t* const ga_but_KEYWORDS[] = { L"* ", L"Ach " }; -static const Keywords ga_but_keywords = { 2, ga_but_KEYWORDS }; - -static const wchar_t* const ga_examples_KEYWORDS[] = { L"Samplaí" }; -static const Keywords ga_examples_keywords = { 1, ga_examples_KEYWORDS }; - -static const wchar_t* const ga_feature_KEYWORDS[] = { L"Gné" }; -static const Keywords ga_feature_keywords = { 1, ga_feature_KEYWORDS }; - -static const wchar_t* const ga_given_KEYWORDS[] = { L"* ", L"Cuir i gcás go ", L"Cuir i gcás nach ", L"Cuir i gcás gur ", L"Cuir i gcás nár " }; -static const Keywords ga_given_keywords = { 5, ga_given_KEYWORDS }; - -static const wchar_t* const ga_rule_KEYWORDS[] = { L"Riail" }; -static const Keywords ga_rule_keywords = { 1, ga_rule_KEYWORDS }; - -static const wchar_t* const ga_scenario_KEYWORDS[] = { L"Sampla", L"Cás" }; -static const Keywords ga_scenario_keywords = { 2, ga_scenario_KEYWORDS }; - -static const wchar_t* const ga_scenarioOutline_KEYWORDS[] = { L"Cás Achomair" }; -static const Keywords ga_scenarioOutline_keywords = { 1, ga_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ga_then_KEYWORDS[] = { L"* ", L"Ansin " }; -static const Keywords ga_then_keywords = { 2, ga_then_KEYWORDS }; - -static const wchar_t* const ga_when_KEYWORDS[] = { L"* ", L"Nuair a ", L"Nuair nach ", L"Nuair ba ", L"Nuair nár " }; -static const Keywords ga_when_keywords = { 5, ga_when_KEYWORDS }; - -static const Dialect ga_dialect = { - L"ga", - &ga_and_keywords, - &ga_background_keywords, - &ga_but_keywords, - &ga_examples_keywords, - &ga_feature_keywords, - &ga_given_keywords, - &ga_rule_keywords, - &ga_scenario_keywords, - &ga_scenarioOutline_keywords, - &ga_then_keywords, - &ga_when_keywords }; - -static const wchar_t* const gj_and_KEYWORDS[] = { L"* ", L"અને " }; -static const Keywords gj_and_keywords = { 2, gj_and_KEYWORDS }; - -static const wchar_t* const gj_background_KEYWORDS[] = { L"બેકગ્રાઉન્ડ" }; -static const Keywords gj_background_keywords = { 1, gj_background_KEYWORDS }; - -static const wchar_t* const gj_but_KEYWORDS[] = { L"* ", L"પણ " }; -static const Keywords gj_but_keywords = { 2, gj_but_KEYWORDS }; - -static const wchar_t* const gj_examples_KEYWORDS[] = { L"ઉદાહરણો" }; -static const Keywords gj_examples_keywords = { 1, gj_examples_KEYWORDS }; - -static const wchar_t* const gj_feature_KEYWORDS[] = { L"લક્ષણ", L"વ્યાપાર જરૂર", L"ક્ષમતા" }; -static const Keywords gj_feature_keywords = { 3, gj_feature_KEYWORDS }; - -static const wchar_t* const gj_given_KEYWORDS[] = { L"* ", L"આપેલ છે " }; -static const Keywords gj_given_keywords = { 2, gj_given_KEYWORDS }; - -static const wchar_t* const gj_rule_KEYWORDS[] = { L"નિયમ" }; -static const Keywords gj_rule_keywords = { 1, gj_rule_KEYWORDS }; - -static const wchar_t* const gj_scenario_KEYWORDS[] = { L"ઉદાહરણ", L"સ્થિતિ" }; -static const Keywords gj_scenario_keywords = { 2, gj_scenario_KEYWORDS }; - -static const wchar_t* const gj_scenarioOutline_KEYWORDS[] = { L"પરિદ્દશ્ય રૂપરેખા", L"પરિદ્દશ્ય ઢાંચો" }; -static const Keywords gj_scenarioOutline_keywords = { 2, gj_scenarioOutline_KEYWORDS }; - -static const wchar_t* const gj_then_KEYWORDS[] = { L"* ", L"પછી " }; -static const Keywords gj_then_keywords = { 2, gj_then_KEYWORDS }; - -static const wchar_t* const gj_when_KEYWORDS[] = { L"* ", L"ક્યારે " }; -static const Keywords gj_when_keywords = { 2, gj_when_KEYWORDS }; - -static const Dialect gj_dialect = { - L"gj", - &gj_and_keywords, - &gj_background_keywords, - &gj_but_keywords, - &gj_examples_keywords, - &gj_feature_keywords, - &gj_given_keywords, - &gj_rule_keywords, - &gj_scenario_keywords, - &gj_scenarioOutline_keywords, - &gj_then_keywords, - &gj_when_keywords }; - -static const wchar_t* const gl_and_KEYWORDS[] = { L"* ", L"E " }; -static const Keywords gl_and_keywords = { 2, gl_and_KEYWORDS }; - -static const wchar_t* const gl_background_KEYWORDS[] = { L"Contexto" }; -static const Keywords gl_background_keywords = { 1, gl_background_KEYWORDS }; - -static const wchar_t* const gl_but_KEYWORDS[] = { L"* ", L"Mais ", L"Pero " }; -static const Keywords gl_but_keywords = { 3, gl_but_KEYWORDS }; - -static const wchar_t* const gl_examples_KEYWORDS[] = { L"Exemplos" }; -static const Keywords gl_examples_keywords = { 1, gl_examples_KEYWORDS }; - -static const wchar_t* const gl_feature_KEYWORDS[] = { L"Característica" }; -static const Keywords gl_feature_keywords = { 1, gl_feature_KEYWORDS }; - -static const wchar_t* const gl_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; -static const Keywords gl_given_keywords = { 5, gl_given_KEYWORDS }; - -static const wchar_t* const gl_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords gl_rule_keywords = { 1, gl_rule_KEYWORDS }; - -static const wchar_t* const gl_scenario_KEYWORDS[] = { L"Exemplo", L"Escenario" }; -static const Keywords gl_scenario_keywords = { 2, gl_scenario_KEYWORDS }; - -static const wchar_t* const gl_scenarioOutline_KEYWORDS[] = { L"Esbozo do escenario" }; -static const Keywords gl_scenarioOutline_keywords = { 1, gl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const gl_then_KEYWORDS[] = { L"* ", L"Entón ", L"Logo " }; -static const Keywords gl_then_keywords = { 3, gl_then_KEYWORDS }; - -static const wchar_t* const gl_when_KEYWORDS[] = { L"* ", L"Cando " }; -static const Keywords gl_when_keywords = { 2, gl_when_KEYWORDS }; - -static const Dialect gl_dialect = { - L"gl", - &gl_and_keywords, - &gl_background_keywords, - &gl_but_keywords, - &gl_examples_keywords, - &gl_feature_keywords, - &gl_given_keywords, - &gl_rule_keywords, - &gl_scenario_keywords, - &gl_scenarioOutline_keywords, - &gl_then_keywords, - &gl_when_keywords }; - -static const wchar_t* const he_and_KEYWORDS[] = { L"* ", L"וגם " }; -static const Keywords he_and_keywords = { 2, he_and_KEYWORDS }; - -static const wchar_t* const he_background_KEYWORDS[] = { L"רקע" }; -static const Keywords he_background_keywords = { 1, he_background_KEYWORDS }; - -static const wchar_t* const he_but_KEYWORDS[] = { L"* ", L"אבל " }; -static const Keywords he_but_keywords = { 2, he_but_KEYWORDS }; - -static const wchar_t* const he_examples_KEYWORDS[] = { L"דוגמאות" }; -static const Keywords he_examples_keywords = { 1, he_examples_KEYWORDS }; - -static const wchar_t* const he_feature_KEYWORDS[] = { L"תכונה" }; -static const Keywords he_feature_keywords = { 1, he_feature_KEYWORDS }; - -static const wchar_t* const he_given_KEYWORDS[] = { L"* ", L"בהינתן " }; -static const Keywords he_given_keywords = { 2, he_given_KEYWORDS }; - -static const wchar_t* const he_rule_KEYWORDS[] = { L"כלל" }; -static const Keywords he_rule_keywords = { 1, he_rule_KEYWORDS }; - -static const wchar_t* const he_scenario_KEYWORDS[] = { L"דוגמא", L"תרחיש" }; -static const Keywords he_scenario_keywords = { 2, he_scenario_KEYWORDS }; - -static const wchar_t* const he_scenarioOutline_KEYWORDS[] = { L"תבנית תרחיש" }; -static const Keywords he_scenarioOutline_keywords = { 1, he_scenarioOutline_KEYWORDS }; - -static const wchar_t* const he_then_KEYWORDS[] = { L"* ", L"אז ", L"אזי " }; -static const Keywords he_then_keywords = { 3, he_then_KEYWORDS }; - -static const wchar_t* const he_when_KEYWORDS[] = { L"* ", L"כאשר " }; -static const Keywords he_when_keywords = { 2, he_when_KEYWORDS }; - -static const Dialect he_dialect = { - L"he", - &he_and_keywords, - &he_background_keywords, - &he_but_keywords, - &he_examples_keywords, - &he_feature_keywords, - &he_given_keywords, - &he_rule_keywords, - &he_scenario_keywords, - &he_scenarioOutline_keywords, - &he_then_keywords, - &he_when_keywords }; - -static const wchar_t* const hi_and_KEYWORDS[] = { L"* ", L"और ", L"तथा " }; -static const Keywords hi_and_keywords = { 3, hi_and_KEYWORDS }; - -static const wchar_t* const hi_background_KEYWORDS[] = { L"पृष्ठभूमि" }; -static const Keywords hi_background_keywords = { 1, hi_background_KEYWORDS }; - -static const wchar_t* const hi_but_KEYWORDS[] = { L"* ", L"पर ", L"परन्तु ", L"किन्तु " }; -static const Keywords hi_but_keywords = { 4, hi_but_KEYWORDS }; - -static const wchar_t* const hi_examples_KEYWORDS[] = { L"उदाहरण" }; -static const Keywords hi_examples_keywords = { 1, hi_examples_KEYWORDS }; - -static const wchar_t* const hi_feature_KEYWORDS[] = { L"रूप लेख" }; -static const Keywords hi_feature_keywords = { 1, hi_feature_KEYWORDS }; - -static const wchar_t* const hi_given_KEYWORDS[] = { L"* ", L"अगर ", L"यदि ", L"चूंकि " }; -static const Keywords hi_given_keywords = { 4, hi_given_KEYWORDS }; - -static const wchar_t* const hi_rule_KEYWORDS[] = { L"नियम" }; -static const Keywords hi_rule_keywords = { 1, hi_rule_KEYWORDS }; - -static const wchar_t* const hi_scenario_KEYWORDS[] = { L"परिदृश्य" }; -static const Keywords hi_scenario_keywords = { 1, hi_scenario_KEYWORDS }; - -static const wchar_t* const hi_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; -static const Keywords hi_scenarioOutline_keywords = { 1, hi_scenarioOutline_KEYWORDS }; - -static const wchar_t* const hi_then_KEYWORDS[] = { L"* ", L"तब ", L"तदा " }; -static const Keywords hi_then_keywords = { 3, hi_then_KEYWORDS }; - -static const wchar_t* const hi_when_KEYWORDS[] = { L"* ", L"जब ", L"कदा " }; -static const Keywords hi_when_keywords = { 3, hi_when_KEYWORDS }; - -static const Dialect hi_dialect = { - L"hi", - &hi_and_keywords, - &hi_background_keywords, - &hi_but_keywords, - &hi_examples_keywords, - &hi_feature_keywords, - &hi_given_keywords, - &hi_rule_keywords, - &hi_scenario_keywords, - &hi_scenarioOutline_keywords, - &hi_then_keywords, - &hi_when_keywords }; - -static const wchar_t* const hr_and_KEYWORDS[] = { L"* ", L"I " }; -static const Keywords hr_and_keywords = { 2, hr_and_KEYWORDS }; - -static const wchar_t* const hr_background_KEYWORDS[] = { L"Pozadina" }; -static const Keywords hr_background_keywords = { 1, hr_background_KEYWORDS }; - -static const wchar_t* const hr_but_KEYWORDS[] = { L"* ", L"Ali " }; -static const Keywords hr_but_keywords = { 2, hr_but_KEYWORDS }; - -static const wchar_t* const hr_examples_KEYWORDS[] = { L"Primjeri", L"Scenariji" }; -static const Keywords hr_examples_keywords = { 2, hr_examples_KEYWORDS }; - -static const wchar_t* const hr_feature_KEYWORDS[] = { L"Osobina", L"Mogućnost", L"Mogucnost" }; -static const Keywords hr_feature_keywords = { 3, hr_feature_KEYWORDS }; - -static const wchar_t* const hr_given_KEYWORDS[] = { L"* ", L"Zadan ", L"Zadani ", L"Zadano ", L"Ukoliko " }; -static const Keywords hr_given_keywords = { 5, hr_given_KEYWORDS }; - -static const wchar_t* const hr_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords hr_rule_keywords = { 1, hr_rule_KEYWORDS }; - -static const wchar_t* const hr_scenario_KEYWORDS[] = { L"Primjer", L"Scenarij" }; -static const Keywords hr_scenario_keywords = { 2, hr_scenario_KEYWORDS }; - -static const wchar_t* const hr_scenarioOutline_KEYWORDS[] = { L"Skica", L"Koncept" }; -static const Keywords hr_scenarioOutline_keywords = { 2, hr_scenarioOutline_KEYWORDS }; - -static const wchar_t* const hr_then_KEYWORDS[] = { L"* ", L"Onda " }; -static const Keywords hr_then_keywords = { 2, hr_then_KEYWORDS }; - -static const wchar_t* const hr_when_KEYWORDS[] = { L"* ", L"Kada ", L"Kad " }; -static const Keywords hr_when_keywords = { 3, hr_when_KEYWORDS }; - -static const Dialect hr_dialect = { - L"hr", - &hr_and_keywords, - &hr_background_keywords, - &hr_but_keywords, - &hr_examples_keywords, - &hr_feature_keywords, - &hr_given_keywords, - &hr_rule_keywords, - &hr_scenario_keywords, - &hr_scenarioOutline_keywords, - &hr_then_keywords, - &hr_when_keywords }; - -static const wchar_t* const ht_and_KEYWORDS[] = { L"* ", L"Ak ", L"Epi ", L"E " }; -static const Keywords ht_and_keywords = { 4, ht_and_KEYWORDS }; - -static const wchar_t* const ht_background_KEYWORDS[] = { L"Kontèks", L"Istorik" }; -static const Keywords ht_background_keywords = { 2, ht_background_KEYWORDS }; - -static const wchar_t* const ht_but_KEYWORDS[] = { L"* ", L"Men " }; -static const Keywords ht_but_keywords = { 2, ht_but_KEYWORDS }; - -static const wchar_t* const ht_examples_KEYWORDS[] = { L"Egzanp" }; -static const Keywords ht_examples_keywords = { 1, ht_examples_KEYWORDS }; - -static const wchar_t* const ht_feature_KEYWORDS[] = { L"Karakteristik", L"Mak", L"Fonksyonalite" }; -static const Keywords ht_feature_keywords = { 3, ht_feature_KEYWORDS }; - -static const wchar_t* const ht_given_KEYWORDS[] = { L"* ", L"Sipoze ", L"Sipoze ke ", L"Sipoze Ke " }; -static const Keywords ht_given_keywords = { 4, ht_given_KEYWORDS }; - -static const wchar_t* const ht_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ht_rule_keywords = { 1, ht_rule_KEYWORDS }; - -static const wchar_t* const ht_scenario_KEYWORDS[] = { L"Senaryo" }; -static const Keywords ht_scenario_keywords = { 1, ht_scenario_KEYWORDS }; - -static const wchar_t* const ht_scenarioOutline_KEYWORDS[] = { L"Plan senaryo", L"Plan Senaryo", L"Senaryo deskripsyon", L"Senaryo Deskripsyon", L"Dyagram senaryo", L"Dyagram Senaryo" }; -static const Keywords ht_scenarioOutline_keywords = { 6, ht_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ht_then_KEYWORDS[] = { L"* ", L"Lè sa a ", L"Le sa a " }; -static const Keywords ht_then_keywords = { 3, ht_then_KEYWORDS }; - -static const wchar_t* const ht_when_KEYWORDS[] = { L"* ", L"Lè ", L"Le " }; -static const Keywords ht_when_keywords = { 3, ht_when_KEYWORDS }; - -static const Dialect ht_dialect = { - L"ht", - &ht_and_keywords, - &ht_background_keywords, - &ht_but_keywords, - &ht_examples_keywords, - &ht_feature_keywords, - &ht_given_keywords, - &ht_rule_keywords, - &ht_scenario_keywords, - &ht_scenarioOutline_keywords, - &ht_then_keywords, - &ht_when_keywords }; - -static const wchar_t* const hu_and_KEYWORDS[] = { L"* ", L"És " }; -static const Keywords hu_and_keywords = { 2, hu_and_KEYWORDS }; - -static const wchar_t* const hu_background_KEYWORDS[] = { L"Háttér" }; -static const Keywords hu_background_keywords = { 1, hu_background_KEYWORDS }; - -static const wchar_t* const hu_but_KEYWORDS[] = { L"* ", L"De " }; -static const Keywords hu_but_keywords = { 2, hu_but_KEYWORDS }; - -static const wchar_t* const hu_examples_KEYWORDS[] = { L"Példák" }; -static const Keywords hu_examples_keywords = { 1, hu_examples_KEYWORDS }; - -static const wchar_t* const hu_feature_KEYWORDS[] = { L"Jellemző" }; -static const Keywords hu_feature_keywords = { 1, hu_feature_KEYWORDS }; - -static const wchar_t* const hu_given_KEYWORDS[] = { L"* ", L"Amennyiben ", L"Adott " }; -static const Keywords hu_given_keywords = { 3, hu_given_KEYWORDS }; - -static const wchar_t* const hu_rule_KEYWORDS[] = { L"Szabály" }; -static const Keywords hu_rule_keywords = { 1, hu_rule_KEYWORDS }; - -static const wchar_t* const hu_scenario_KEYWORDS[] = { L"Példa", L"Forgatókönyv" }; -static const Keywords hu_scenario_keywords = { 2, hu_scenario_KEYWORDS }; - -static const wchar_t* const hu_scenarioOutline_KEYWORDS[] = { L"Forgatókönyv vázlat" }; -static const Keywords hu_scenarioOutline_keywords = { 1, hu_scenarioOutline_KEYWORDS }; - -static const wchar_t* const hu_then_KEYWORDS[] = { L"* ", L"Akkor " }; -static const Keywords hu_then_keywords = { 2, hu_then_KEYWORDS }; - -static const wchar_t* const hu_when_KEYWORDS[] = { L"* ", L"Majd ", L"Ha ", L"Amikor " }; -static const Keywords hu_when_keywords = { 4, hu_when_KEYWORDS }; - -static const Dialect hu_dialect = { - L"hu", - &hu_and_keywords, - &hu_background_keywords, - &hu_but_keywords, - &hu_examples_keywords, - &hu_feature_keywords, - &hu_given_keywords, - &hu_rule_keywords, - &hu_scenario_keywords, - &hu_scenarioOutline_keywords, - &hu_then_keywords, - &hu_when_keywords }; - -static const wchar_t* const id_and_KEYWORDS[] = { L"* ", L"Dan " }; -static const Keywords id_and_keywords = { 2, id_and_KEYWORDS }; - -static const wchar_t* const id_background_KEYWORDS[] = { L"Dasar", L"Latar Belakang" }; -static const Keywords id_background_keywords = { 2, id_background_KEYWORDS }; - -static const wchar_t* const id_but_KEYWORDS[] = { L"* ", L"Tapi ", L"Tetapi " }; -static const Keywords id_but_keywords = { 3, id_but_KEYWORDS }; - -static const wchar_t* const id_examples_KEYWORDS[] = { L"Contoh", L"Misal" }; -static const Keywords id_examples_keywords = { 2, id_examples_KEYWORDS }; - -static const wchar_t* const id_feature_KEYWORDS[] = { L"Fitur" }; -static const Keywords id_feature_keywords = { 1, id_feature_KEYWORDS }; - -static const wchar_t* const id_given_KEYWORDS[] = { L"* ", L"Dengan ", L"Diketahui ", L"Diasumsikan ", L"Bila ", L"Jika " }; -static const Keywords id_given_keywords = { 6, id_given_KEYWORDS }; - -static const wchar_t* const id_rule_KEYWORDS[] = { L"Rule", L"Aturan" }; -static const Keywords id_rule_keywords = { 2, id_rule_KEYWORDS }; - -static const wchar_t* const id_scenario_KEYWORDS[] = { L"Skenario" }; -static const Keywords id_scenario_keywords = { 1, id_scenario_KEYWORDS }; - -static const wchar_t* const id_scenarioOutline_KEYWORDS[] = { L"Skenario konsep", L"Garis-Besar Skenario" }; -static const Keywords id_scenarioOutline_keywords = { 2, id_scenarioOutline_KEYWORDS }; - -static const wchar_t* const id_then_KEYWORDS[] = { L"* ", L"Maka ", L"Kemudian " }; -static const Keywords id_then_keywords = { 3, id_then_KEYWORDS }; - -static const wchar_t* const id_when_KEYWORDS[] = { L"* ", L"Ketika " }; -static const Keywords id_when_keywords = { 2, id_when_KEYWORDS }; - -static const Dialect id_dialect = { - L"id", - &id_and_keywords, - &id_background_keywords, - &id_but_keywords, - &id_examples_keywords, - &id_feature_keywords, - &id_given_keywords, - &id_rule_keywords, - &id_scenario_keywords, - &id_scenarioOutline_keywords, - &id_then_keywords, - &id_when_keywords }; - -static const wchar_t* const is_and_KEYWORDS[] = { L"* ", L"Og " }; -static const Keywords is_and_keywords = { 2, is_and_KEYWORDS }; - -static const wchar_t* const is_background_KEYWORDS[] = { L"Bakgrunnur" }; -static const Keywords is_background_keywords = { 1, is_background_KEYWORDS }; - -static const wchar_t* const is_but_KEYWORDS[] = { L"* ", L"En " }; -static const Keywords is_but_keywords = { 2, is_but_KEYWORDS }; - -static const wchar_t* const is_examples_KEYWORDS[] = { L"Dæmi", L"Atburðarásir" }; -static const Keywords is_examples_keywords = { 2, is_examples_KEYWORDS }; - -static const wchar_t* const is_feature_KEYWORDS[] = { L"Eiginleiki" }; -static const Keywords is_feature_keywords = { 1, is_feature_KEYWORDS }; - -static const wchar_t* const is_given_KEYWORDS[] = { L"* ", L"Ef " }; -static const Keywords is_given_keywords = { 2, is_given_KEYWORDS }; - -static const wchar_t* const is_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords is_rule_keywords = { 1, is_rule_KEYWORDS }; - -static const wchar_t* const is_scenario_KEYWORDS[] = { L"Atburðarás" }; -static const Keywords is_scenario_keywords = { 1, is_scenario_KEYWORDS }; - -static const wchar_t* const is_scenarioOutline_KEYWORDS[] = { L"Lýsing Atburðarásar", L"Lýsing Dæma" }; -static const Keywords is_scenarioOutline_keywords = { 2, is_scenarioOutline_KEYWORDS }; - -static const wchar_t* const is_then_KEYWORDS[] = { L"* ", L"Þá " }; -static const Keywords is_then_keywords = { 2, is_then_KEYWORDS }; - -static const wchar_t* const is_when_KEYWORDS[] = { L"* ", L"Þegar " }; -static const Keywords is_when_keywords = { 2, is_when_KEYWORDS }; - -static const Dialect is_dialect = { - L"is", - &is_and_keywords, - &is_background_keywords, - &is_but_keywords, - &is_examples_keywords, - &is_feature_keywords, - &is_given_keywords, - &is_rule_keywords, - &is_scenario_keywords, - &is_scenarioOutline_keywords, - &is_then_keywords, - &is_when_keywords }; - -static const wchar_t* const it_and_KEYWORDS[] = { L"* ", L"E ", L"Ed " }; -static const Keywords it_and_keywords = { 3, it_and_KEYWORDS }; - -static const wchar_t* const it_background_KEYWORDS[] = { L"Contesto" }; -static const Keywords it_background_keywords = { 1, it_background_KEYWORDS }; - -static const wchar_t* const it_but_KEYWORDS[] = { L"* ", L"Ma " }; -static const Keywords it_but_keywords = { 2, it_but_KEYWORDS }; - -static const wchar_t* const it_examples_KEYWORDS[] = { L"Esempi" }; -static const Keywords it_examples_keywords = { 1, it_examples_KEYWORDS }; - -static const wchar_t* const it_feature_KEYWORDS[] = { L"Funzionalità", L"Esigenza di Business", L"Abilità" }; -static const Keywords it_feature_keywords = { 3, it_feature_KEYWORDS }; - -static const wchar_t* const it_given_KEYWORDS[] = { L"* ", L"Dato ", L"Data ", L"Dati ", L"Date " }; -static const Keywords it_given_keywords = { 5, it_given_KEYWORDS }; - -static const wchar_t* const it_rule_KEYWORDS[] = { L"Regola" }; -static const Keywords it_rule_keywords = { 1, it_rule_KEYWORDS }; - -static const wchar_t* const it_scenario_KEYWORDS[] = { L"Esempio", L"Scenario" }; -static const Keywords it_scenario_keywords = { 2, it_scenario_KEYWORDS }; - -static const wchar_t* const it_scenarioOutline_KEYWORDS[] = { L"Schema dello scenario" }; -static const Keywords it_scenarioOutline_keywords = { 1, it_scenarioOutline_KEYWORDS }; - -static const wchar_t* const it_then_KEYWORDS[] = { L"* ", L"Allora " }; -static const Keywords it_then_keywords = { 2, it_then_KEYWORDS }; - -static const wchar_t* const it_when_KEYWORDS[] = { L"* ", L"Quando " }; -static const Keywords it_when_keywords = { 2, it_when_KEYWORDS }; - -static const Dialect it_dialect = { - L"it", - &it_and_keywords, - &it_background_keywords, - &it_but_keywords, - &it_examples_keywords, - &it_feature_keywords, - &it_given_keywords, - &it_rule_keywords, - &it_scenario_keywords, - &it_scenarioOutline_keywords, - &it_then_keywords, - &it_when_keywords }; - -static const wchar_t* const ja_and_KEYWORDS[] = { L"* ", L"且つ", L"かつ" }; -static const Keywords ja_and_keywords = { 3, ja_and_KEYWORDS }; - -static const wchar_t* const ja_background_KEYWORDS[] = { L"背景" }; -static const Keywords ja_background_keywords = { 1, ja_background_KEYWORDS }; - -static const wchar_t* const ja_but_KEYWORDS[] = { L"* ", L"然し", L"しかし", L"但し", L"ただし" }; -static const Keywords ja_but_keywords = { 5, ja_but_KEYWORDS }; - -static const wchar_t* const ja_examples_KEYWORDS[] = { L"例", L"サンプル" }; -static const Keywords ja_examples_keywords = { 2, ja_examples_KEYWORDS }; - -static const wchar_t* const ja_feature_KEYWORDS[] = { L"フィーチャ", L"機能" }; -static const Keywords ja_feature_keywords = { 2, ja_feature_KEYWORDS }; - -static const wchar_t* const ja_given_KEYWORDS[] = { L"* ", L"前提" }; -static const Keywords ja_given_keywords = { 2, ja_given_KEYWORDS }; - -static const wchar_t* const ja_rule_KEYWORDS[] = { L"ルール" }; -static const Keywords ja_rule_keywords = { 1, ja_rule_KEYWORDS }; - -static const wchar_t* const ja_scenario_KEYWORDS[] = { L"シナリオ" }; -static const Keywords ja_scenario_keywords = { 1, ja_scenario_KEYWORDS }; - -static const wchar_t* const ja_scenarioOutline_KEYWORDS[] = { L"シナリオアウトライン", L"シナリオテンプレート", L"テンプレ", L"シナリオテンプレ" }; -static const Keywords ja_scenarioOutline_keywords = { 4, ja_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ja_then_KEYWORDS[] = { L"* ", L"ならば" }; -static const Keywords ja_then_keywords = { 2, ja_then_KEYWORDS }; - -static const wchar_t* const ja_when_KEYWORDS[] = { L"* ", L"もし" }; -static const Keywords ja_when_keywords = { 2, ja_when_KEYWORDS }; - -static const Dialect ja_dialect = { - L"ja", - &ja_and_keywords, - &ja_background_keywords, - &ja_but_keywords, - &ja_examples_keywords, - &ja_feature_keywords, - &ja_given_keywords, - &ja_rule_keywords, - &ja_scenario_keywords, - &ja_scenarioOutline_keywords, - &ja_then_keywords, - &ja_when_keywords }; - -static const wchar_t* const jv_and_KEYWORDS[] = { L"* ", L"Lan " }; -static const Keywords jv_and_keywords = { 2, jv_and_KEYWORDS }; - -static const wchar_t* const jv_background_KEYWORDS[] = { L"Dasar" }; -static const Keywords jv_background_keywords = { 1, jv_background_KEYWORDS }; - -static const wchar_t* const jv_but_KEYWORDS[] = { L"* ", L"Tapi ", L"Nanging ", L"Ananging " }; -static const Keywords jv_but_keywords = { 4, jv_but_KEYWORDS }; - -static const wchar_t* const jv_examples_KEYWORDS[] = { L"Conto", L"Contone" }; -static const Keywords jv_examples_keywords = { 2, jv_examples_KEYWORDS }; - -static const wchar_t* const jv_feature_KEYWORDS[] = { L"Fitur" }; -static const Keywords jv_feature_keywords = { 1, jv_feature_KEYWORDS }; - -static const wchar_t* const jv_given_KEYWORDS[] = { L"* ", L"Nalika ", L"Nalikaning " }; -static const Keywords jv_given_keywords = { 3, jv_given_KEYWORDS }; - -static const wchar_t* const jv_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords jv_rule_keywords = { 1, jv_rule_KEYWORDS }; - -static const wchar_t* const jv_scenario_KEYWORDS[] = { L"Skenario" }; -static const Keywords jv_scenario_keywords = { 1, jv_scenario_KEYWORDS }; - -static const wchar_t* const jv_scenarioOutline_KEYWORDS[] = { L"Konsep skenario" }; -static const Keywords jv_scenarioOutline_keywords = { 1, jv_scenarioOutline_KEYWORDS }; - -static const wchar_t* const jv_then_KEYWORDS[] = { L"* ", L"Njuk ", L"Banjur " }; -static const Keywords jv_then_keywords = { 3, jv_then_KEYWORDS }; - -static const wchar_t* const jv_when_KEYWORDS[] = { L"* ", L"Manawa ", L"Menawa " }; -static const Keywords jv_when_keywords = { 3, jv_when_KEYWORDS }; - -static const Dialect jv_dialect = { - L"jv", - &jv_and_keywords, - &jv_background_keywords, - &jv_but_keywords, - &jv_examples_keywords, - &jv_feature_keywords, - &jv_given_keywords, - &jv_rule_keywords, - &jv_scenario_keywords, - &jv_scenarioOutline_keywords, - &jv_then_keywords, - &jv_when_keywords }; - -static const wchar_t* const ka_and_KEYWORDS[] = { L"* ", L"და ", L"ასევე " }; -static const Keywords ka_and_keywords = { 3, ka_and_KEYWORDS }; - -static const wchar_t* const ka_background_KEYWORDS[] = { L"კონტექსტი" }; -static const Keywords ka_background_keywords = { 1, ka_background_KEYWORDS }; - -static const wchar_t* const ka_but_KEYWORDS[] = { L"* ", L"მაგრამ ", L"თუმცა " }; -static const Keywords ka_but_keywords = { 3, ka_but_KEYWORDS }; - -static const wchar_t* const ka_examples_KEYWORDS[] = { L"მაგალითები" }; -static const Keywords ka_examples_keywords = { 1, ka_examples_KEYWORDS }; - -static const wchar_t* const ka_feature_KEYWORDS[] = { L"თვისება", L"მოთხოვნა" }; -static const Keywords ka_feature_keywords = { 2, ka_feature_KEYWORDS }; - -static const wchar_t* const ka_given_KEYWORDS[] = { L"* ", L"მოცემული ", L"მოცემულია ", L"ვთქვათ " }; -static const Keywords ka_given_keywords = { 4, ka_given_KEYWORDS }; - -static const wchar_t* const ka_rule_KEYWORDS[] = { L"წესი" }; -static const Keywords ka_rule_keywords = { 1, ka_rule_KEYWORDS }; - -static const wchar_t* const ka_scenario_KEYWORDS[] = { L"მაგალითად", L"მაგალითი", L"მაგ", L"სცენარი" }; -static const Keywords ka_scenario_keywords = { 4, ka_scenario_KEYWORDS }; - -static const wchar_t* const ka_scenarioOutline_KEYWORDS[] = { L"სცენარის ნიმუში", L"სცენარის შაბლონი", L"ნიმუში", L"შაბლონი" }; -static const Keywords ka_scenarioOutline_keywords = { 4, ka_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ka_then_KEYWORDS[] = { L"* ", L"მაშინ " }; -static const Keywords ka_then_keywords = { 2, ka_then_KEYWORDS }; - -static const wchar_t* const ka_when_KEYWORDS[] = { L"* ", L"როდესაც ", L"როცა ", L"როგორც კი ", L"თუ " }; -static const Keywords ka_when_keywords = { 5, ka_when_KEYWORDS }; - -static const Dialect ka_dialect = { - L"ka", - &ka_and_keywords, - &ka_background_keywords, - &ka_but_keywords, - &ka_examples_keywords, - &ka_feature_keywords, - &ka_given_keywords, - &ka_rule_keywords, - &ka_scenario_keywords, - &ka_scenarioOutline_keywords, - &ka_then_keywords, - &ka_when_keywords }; - -static const wchar_t* const kn_and_KEYWORDS[] = { L"* ", L"ಮತ್ತು " }; -static const Keywords kn_and_keywords = { 2, kn_and_KEYWORDS }; - -static const wchar_t* const kn_background_KEYWORDS[] = { L"ಹಿನ್ನೆಲೆ" }; -static const Keywords kn_background_keywords = { 1, kn_background_KEYWORDS }; - -static const wchar_t* const kn_but_KEYWORDS[] = { L"* ", L"ಆದರೆ " }; -static const Keywords kn_but_keywords = { 2, kn_but_KEYWORDS }; - -static const wchar_t* const kn_examples_KEYWORDS[] = { L"ಉದಾಹರಣೆಗಳು" }; -static const Keywords kn_examples_keywords = { 1, kn_examples_KEYWORDS }; - -static const wchar_t* const kn_feature_KEYWORDS[] = { L"ಹೆಚ್ಚಳ" }; -static const Keywords kn_feature_keywords = { 1, kn_feature_KEYWORDS }; - -static const wchar_t* const kn_given_KEYWORDS[] = { L"* ", L"ನೀಡಿದ " }; -static const Keywords kn_given_keywords = { 2, kn_given_KEYWORDS }; - -static const wchar_t* const kn_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords kn_rule_keywords = { 1, kn_rule_KEYWORDS }; - -static const wchar_t* const kn_scenario_KEYWORDS[] = { L"ಉದಾಹರಣೆ", L"ಕಥಾಸಾರಾಂಶ" }; -static const Keywords kn_scenario_keywords = { 2, kn_scenario_KEYWORDS }; - -static const wchar_t* const kn_scenarioOutline_KEYWORDS[] = { L"ವಿವರಣೆ" }; -static const Keywords kn_scenarioOutline_keywords = { 1, kn_scenarioOutline_KEYWORDS }; - -static const wchar_t* const kn_then_KEYWORDS[] = { L"* ", L"ನಂತರ " }; -static const Keywords kn_then_keywords = { 2, kn_then_KEYWORDS }; - -static const wchar_t* const kn_when_KEYWORDS[] = { L"* ", L"ಸ್ಥಿತಿಯನ್ನು " }; -static const Keywords kn_when_keywords = { 2, kn_when_KEYWORDS }; - -static const Dialect kn_dialect = { - L"kn", - &kn_and_keywords, - &kn_background_keywords, - &kn_but_keywords, - &kn_examples_keywords, - &kn_feature_keywords, - &kn_given_keywords, - &kn_rule_keywords, - &kn_scenario_keywords, - &kn_scenarioOutline_keywords, - &kn_then_keywords, - &kn_when_keywords }; - -static const wchar_t* const ko_and_KEYWORDS[] = { L"* ", L"그리고 " }; -static const Keywords ko_and_keywords = { 2, ko_and_KEYWORDS }; - -static const wchar_t* const ko_background_KEYWORDS[] = { L"배경" }; -static const Keywords ko_background_keywords = { 1, ko_background_KEYWORDS }; - -static const wchar_t* const ko_but_KEYWORDS[] = { L"* ", L"하지만 ", L"단 " }; -static const Keywords ko_but_keywords = { 3, ko_but_KEYWORDS }; - -static const wchar_t* const ko_examples_KEYWORDS[] = { L"예" }; -static const Keywords ko_examples_keywords = { 1, ko_examples_KEYWORDS }; - -static const wchar_t* const ko_feature_KEYWORDS[] = { L"기능" }; -static const Keywords ko_feature_keywords = { 1, ko_feature_KEYWORDS }; - -static const wchar_t* const ko_given_KEYWORDS[] = { L"* ", L"조건 ", L"먼저 " }; -static const Keywords ko_given_keywords = { 3, ko_given_KEYWORDS }; - -static const wchar_t* const ko_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ko_rule_keywords = { 1, ko_rule_KEYWORDS }; - -static const wchar_t* const ko_scenario_KEYWORDS[] = { L"시나리오" }; -static const Keywords ko_scenario_keywords = { 1, ko_scenario_KEYWORDS }; - -static const wchar_t* const ko_scenarioOutline_KEYWORDS[] = { L"시나리오 개요" }; -static const Keywords ko_scenarioOutline_keywords = { 1, ko_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ko_then_KEYWORDS[] = { L"* ", L"그러면 " }; -static const Keywords ko_then_keywords = { 2, ko_then_KEYWORDS }; - -static const wchar_t* const ko_when_KEYWORDS[] = { L"* ", L"만일 ", L"만약 " }; -static const Keywords ko_when_keywords = { 3, ko_when_KEYWORDS }; - -static const Dialect ko_dialect = { - L"ko", - &ko_and_keywords, - &ko_background_keywords, - &ko_but_keywords, - &ko_examples_keywords, - &ko_feature_keywords, - &ko_given_keywords, - &ko_rule_keywords, - &ko_scenario_keywords, - &ko_scenarioOutline_keywords, - &ko_then_keywords, - &ko_when_keywords }; - -static const wchar_t* const lt_and_KEYWORDS[] = { L"* ", L"Ir " }; -static const Keywords lt_and_keywords = { 2, lt_and_KEYWORDS }; - -static const wchar_t* const lt_background_KEYWORDS[] = { L"Kontekstas" }; -static const Keywords lt_background_keywords = { 1, lt_background_KEYWORDS }; - -static const wchar_t* const lt_but_KEYWORDS[] = { L"* ", L"Bet " }; -static const Keywords lt_but_keywords = { 2, lt_but_KEYWORDS }; - -static const wchar_t* const lt_examples_KEYWORDS[] = { L"Pavyzdžiai", L"Scenarijai", L"Variantai" }; -static const Keywords lt_examples_keywords = { 3, lt_examples_KEYWORDS }; - -static const wchar_t* const lt_feature_KEYWORDS[] = { L"Savybė" }; -static const Keywords lt_feature_keywords = { 1, lt_feature_KEYWORDS }; - -static const wchar_t* const lt_given_KEYWORDS[] = { L"* ", L"Duota " }; -static const Keywords lt_given_keywords = { 2, lt_given_KEYWORDS }; - -static const wchar_t* const lt_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords lt_rule_keywords = { 1, lt_rule_KEYWORDS }; - -static const wchar_t* const lt_scenario_KEYWORDS[] = { L"Pavyzdys", L"Scenarijus" }; -static const Keywords lt_scenario_keywords = { 2, lt_scenario_KEYWORDS }; - -static const wchar_t* const lt_scenarioOutline_KEYWORDS[] = { L"Scenarijaus šablonas" }; -static const Keywords lt_scenarioOutline_keywords = { 1, lt_scenarioOutline_KEYWORDS }; - -static const wchar_t* const lt_then_KEYWORDS[] = { L"* ", L"Tada " }; -static const Keywords lt_then_keywords = { 2, lt_then_KEYWORDS }; - -static const wchar_t* const lt_when_KEYWORDS[] = { L"* ", L"Kai " }; -static const Keywords lt_when_keywords = { 2, lt_when_KEYWORDS }; - -static const Dialect lt_dialect = { - L"lt", - <_and_keywords, - <_background_keywords, - <_but_keywords, - <_examples_keywords, - <_feature_keywords, - <_given_keywords, - <_rule_keywords, - <_scenario_keywords, - <_scenarioOutline_keywords, - <_then_keywords, - <_when_keywords }; - -static const wchar_t* const lu_and_KEYWORDS[] = { L"* ", L"an ", L"a " }; -static const Keywords lu_and_keywords = { 3, lu_and_KEYWORDS }; - -static const wchar_t* const lu_background_KEYWORDS[] = { L"Hannergrond" }; -static const Keywords lu_background_keywords = { 1, lu_background_KEYWORDS }; - -static const wchar_t* const lu_but_KEYWORDS[] = { L"* ", L"awer ", L"mä " }; -static const Keywords lu_but_keywords = { 3, lu_but_KEYWORDS }; - -static const wchar_t* const lu_examples_KEYWORDS[] = { L"Beispiller" }; -static const Keywords lu_examples_keywords = { 1, lu_examples_KEYWORDS }; - -static const wchar_t* const lu_feature_KEYWORDS[] = { L"Funktionalitéit" }; -static const Keywords lu_feature_keywords = { 1, lu_feature_KEYWORDS }; - -static const wchar_t* const lu_given_KEYWORDS[] = { L"* ", L"ugeholl " }; -static const Keywords lu_given_keywords = { 2, lu_given_KEYWORDS }; - -static const wchar_t* const lu_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords lu_rule_keywords = { 1, lu_rule_KEYWORDS }; - -static const wchar_t* const lu_scenario_KEYWORDS[] = { L"Beispill", L"Szenario" }; -static const Keywords lu_scenario_keywords = { 2, lu_scenario_KEYWORDS }; - -static const wchar_t* const lu_scenarioOutline_KEYWORDS[] = { L"Plang vum Szenario" }; -static const Keywords lu_scenarioOutline_keywords = { 1, lu_scenarioOutline_KEYWORDS }; - -static const wchar_t* const lu_then_KEYWORDS[] = { L"* ", L"dann " }; -static const Keywords lu_then_keywords = { 2, lu_then_KEYWORDS }; - -static const wchar_t* const lu_when_KEYWORDS[] = { L"* ", L"wann " }; -static const Keywords lu_when_keywords = { 2, lu_when_KEYWORDS }; - -static const Dialect lu_dialect = { - L"lu", - &lu_and_keywords, - &lu_background_keywords, - &lu_but_keywords, - &lu_examples_keywords, - &lu_feature_keywords, - &lu_given_keywords, - &lu_rule_keywords, - &lu_scenario_keywords, - &lu_scenarioOutline_keywords, - &lu_then_keywords, - &lu_when_keywords }; - -static const wchar_t* const lv_and_KEYWORDS[] = { L"* ", L"Un " }; -static const Keywords lv_and_keywords = { 2, lv_and_KEYWORDS }; - -static const wchar_t* const lv_background_KEYWORDS[] = { L"Konteksts", L"Situācija" }; -static const Keywords lv_background_keywords = { 2, lv_background_KEYWORDS }; - -static const wchar_t* const lv_but_KEYWORDS[] = { L"* ", L"Bet " }; -static const Keywords lv_but_keywords = { 2, lv_but_KEYWORDS }; - -static const wchar_t* const lv_examples_KEYWORDS[] = { L"Piemēri", L"Paraugs" }; -static const Keywords lv_examples_keywords = { 2, lv_examples_KEYWORDS }; - -static const wchar_t* const lv_feature_KEYWORDS[] = { L"Funkcionalitāte", L"Fīča" }; -static const Keywords lv_feature_keywords = { 2, lv_feature_KEYWORDS }; - -static const wchar_t* const lv_given_KEYWORDS[] = { L"* ", L"Kad " }; -static const Keywords lv_given_keywords = { 2, lv_given_KEYWORDS }; - -static const wchar_t* const lv_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords lv_rule_keywords = { 1, lv_rule_KEYWORDS }; - -static const wchar_t* const lv_scenario_KEYWORDS[] = { L"Piemērs", L"Scenārijs" }; -static const Keywords lv_scenario_keywords = { 2, lv_scenario_KEYWORDS }; - -static const wchar_t* const lv_scenarioOutline_KEYWORDS[] = { L"Scenārijs pēc parauga" }; -static const Keywords lv_scenarioOutline_keywords = { 1, lv_scenarioOutline_KEYWORDS }; - -static const wchar_t* const lv_then_KEYWORDS[] = { L"* ", L"Tad " }; -static const Keywords lv_then_keywords = { 2, lv_then_KEYWORDS }; - -static const wchar_t* const lv_when_KEYWORDS[] = { L"* ", L"Ja " }; -static const Keywords lv_when_keywords = { 2, lv_when_KEYWORDS }; - -static const Dialect lv_dialect = { - L"lv", - &lv_and_keywords, - &lv_background_keywords, - &lv_but_keywords, - &lv_examples_keywords, - &lv_feature_keywords, - &lv_given_keywords, - &lv_rule_keywords, - &lv_scenario_keywords, - &lv_scenarioOutline_keywords, - &lv_then_keywords, - &lv_when_keywords }; - -static const wchar_t* const mk_Cyrl_and_KEYWORDS[] = { L"* ", L"И " }; -static const Keywords mk_Cyrl_and_keywords = { 2, mk_Cyrl_and_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_background_KEYWORDS[] = { L"Контекст", L"Содржина" }; -static const Keywords mk_Cyrl_background_keywords = { 2, mk_Cyrl_background_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_but_KEYWORDS[] = { L"* ", L"Но " }; -static const Keywords mk_Cyrl_but_keywords = { 2, mk_Cyrl_but_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_examples_KEYWORDS[] = { L"Примери", L"Сценарија" }; -static const Keywords mk_Cyrl_examples_keywords = { 2, mk_Cyrl_examples_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_feature_KEYWORDS[] = { L"Функционалност", L"Бизнис потреба", L"Можност" }; -static const Keywords mk_Cyrl_feature_keywords = { 3, mk_Cyrl_feature_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_given_KEYWORDS[] = { L"* ", L"Дадено ", L"Дадена " }; -static const Keywords mk_Cyrl_given_keywords = { 3, mk_Cyrl_given_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords mk_Cyrl_rule_keywords = { 1, mk_Cyrl_rule_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_scenario_KEYWORDS[] = { L"Пример", L"Сценарио", L"На пример" }; -static const Keywords mk_Cyrl_scenario_keywords = { 3, mk_Cyrl_scenario_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_scenarioOutline_KEYWORDS[] = { L"Преглед на сценарија", L"Скица", L"Концепт" }; -static const Keywords mk_Cyrl_scenarioOutline_keywords = { 3, mk_Cyrl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_then_KEYWORDS[] = { L"* ", L"Тогаш " }; -static const Keywords mk_Cyrl_then_keywords = { 2, mk_Cyrl_then_KEYWORDS }; - -static const wchar_t* const mk_Cyrl_when_KEYWORDS[] = { L"* ", L"Кога " }; -static const Keywords mk_Cyrl_when_keywords = { 2, mk_Cyrl_when_KEYWORDS }; - -static const Dialect mk_Cyrl_dialect = { - L"mk-Cyrl", - &mk_Cyrl_and_keywords, - &mk_Cyrl_background_keywords, - &mk_Cyrl_but_keywords, - &mk_Cyrl_examples_keywords, - &mk_Cyrl_feature_keywords, - &mk_Cyrl_given_keywords, - &mk_Cyrl_rule_keywords, - &mk_Cyrl_scenario_keywords, - &mk_Cyrl_scenarioOutline_keywords, - &mk_Cyrl_then_keywords, - &mk_Cyrl_when_keywords }; - -static const wchar_t* const mk_Latn_and_KEYWORDS[] = { L"* ", L"I " }; -static const Keywords mk_Latn_and_keywords = { 2, mk_Latn_and_KEYWORDS }; - -static const wchar_t* const mk_Latn_background_KEYWORDS[] = { L"Kontekst", L"Sodrzhina" }; -static const Keywords mk_Latn_background_keywords = { 2, mk_Latn_background_KEYWORDS }; - -static const wchar_t* const mk_Latn_but_KEYWORDS[] = { L"* ", L"No " }; -static const Keywords mk_Latn_but_keywords = { 2, mk_Latn_but_KEYWORDS }; - -static const wchar_t* const mk_Latn_examples_KEYWORDS[] = { L"Primeri", L"Scenaria" }; -static const Keywords mk_Latn_examples_keywords = { 2, mk_Latn_examples_KEYWORDS }; - -static const wchar_t* const mk_Latn_feature_KEYWORDS[] = { L"Funkcionalnost", L"Biznis potreba", L"Mozhnost" }; -static const Keywords mk_Latn_feature_keywords = { 3, mk_Latn_feature_KEYWORDS }; - -static const wchar_t* const mk_Latn_given_KEYWORDS[] = { L"* ", L"Dadeno ", L"Dadena " }; -static const Keywords mk_Latn_given_keywords = { 3, mk_Latn_given_KEYWORDS }; - -static const wchar_t* const mk_Latn_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords mk_Latn_rule_keywords = { 1, mk_Latn_rule_KEYWORDS }; - -static const wchar_t* const mk_Latn_scenario_KEYWORDS[] = { L"Scenario", L"Na primer" }; -static const Keywords mk_Latn_scenario_keywords = { 2, mk_Latn_scenario_KEYWORDS }; - -static const wchar_t* const mk_Latn_scenarioOutline_KEYWORDS[] = { L"Pregled na scenarija", L"Skica", L"Koncept" }; -static const Keywords mk_Latn_scenarioOutline_keywords = { 3, mk_Latn_scenarioOutline_KEYWORDS }; - -static const wchar_t* const mk_Latn_then_KEYWORDS[] = { L"* ", L"Togash " }; -static const Keywords mk_Latn_then_keywords = { 2, mk_Latn_then_KEYWORDS }; - -static const wchar_t* const mk_Latn_when_KEYWORDS[] = { L"* ", L"Koga " }; -static const Keywords mk_Latn_when_keywords = { 2, mk_Latn_when_KEYWORDS }; - -static const Dialect mk_Latn_dialect = { - L"mk-Latn", - &mk_Latn_and_keywords, - &mk_Latn_background_keywords, - &mk_Latn_but_keywords, - &mk_Latn_examples_keywords, - &mk_Latn_feature_keywords, - &mk_Latn_given_keywords, - &mk_Latn_rule_keywords, - &mk_Latn_scenario_keywords, - &mk_Latn_scenarioOutline_keywords, - &mk_Latn_then_keywords, - &mk_Latn_when_keywords }; - -static const wchar_t* const mn_and_KEYWORDS[] = { L"* ", L"Мөн ", L"Тэгээд " }; -static const Keywords mn_and_keywords = { 3, mn_and_KEYWORDS }; - -static const wchar_t* const mn_background_KEYWORDS[] = { L"Агуулга" }; -static const Keywords mn_background_keywords = { 1, mn_background_KEYWORDS }; - -static const wchar_t* const mn_but_KEYWORDS[] = { L"* ", L"Гэхдээ ", L"Харин " }; -static const Keywords mn_but_keywords = { 3, mn_but_KEYWORDS }; - -static const wchar_t* const mn_examples_KEYWORDS[] = { L"Тухайлбал" }; -static const Keywords mn_examples_keywords = { 1, mn_examples_KEYWORDS }; - -static const wchar_t* const mn_feature_KEYWORDS[] = { L"Функц", L"Функционал" }; -static const Keywords mn_feature_keywords = { 2, mn_feature_KEYWORDS }; - -static const wchar_t* const mn_given_KEYWORDS[] = { L"* ", L"Өгөгдсөн нь ", L"Анх " }; -static const Keywords mn_given_keywords = { 3, mn_given_KEYWORDS }; - -static const wchar_t* const mn_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords mn_rule_keywords = { 1, mn_rule_KEYWORDS }; - -static const wchar_t* const mn_scenario_KEYWORDS[] = { L"Сценар" }; -static const Keywords mn_scenario_keywords = { 1, mn_scenario_KEYWORDS }; - -static const wchar_t* const mn_scenarioOutline_KEYWORDS[] = { L"Сценарын төлөвлөгөө" }; -static const Keywords mn_scenarioOutline_keywords = { 1, mn_scenarioOutline_KEYWORDS }; - -static const wchar_t* const mn_then_KEYWORDS[] = { L"* ", L"Тэгэхэд ", L"Үүний дараа " }; -static const Keywords mn_then_keywords = { 3, mn_then_KEYWORDS }; - -static const wchar_t* const mn_when_KEYWORDS[] = { L"* ", L"Хэрэв " }; -static const Keywords mn_when_keywords = { 2, mn_when_KEYWORDS }; - -static const Dialect mn_dialect = { - L"mn", - &mn_and_keywords, - &mn_background_keywords, - &mn_but_keywords, - &mn_examples_keywords, - &mn_feature_keywords, - &mn_given_keywords, - &mn_rule_keywords, - &mn_scenario_keywords, - &mn_scenarioOutline_keywords, - &mn_then_keywords, - &mn_when_keywords }; - -static const wchar_t* const ne_and_KEYWORDS[] = { L"* ", L"र ", L"अनि " }; -static const Keywords ne_and_keywords = { 3, ne_and_KEYWORDS }; - -static const wchar_t* const ne_background_KEYWORDS[] = { L"पृष्ठभूमी" }; -static const Keywords ne_background_keywords = { 1, ne_background_KEYWORDS }; - -static const wchar_t* const ne_but_KEYWORDS[] = { L"* ", L"तर " }; -static const Keywords ne_but_keywords = { 2, ne_but_KEYWORDS }; - -static const wchar_t* const ne_examples_KEYWORDS[] = { L"उदाहरण", L"उदाहरणहरु" }; -static const Keywords ne_examples_keywords = { 2, ne_examples_KEYWORDS }; - -static const wchar_t* const ne_feature_KEYWORDS[] = { L"सुविधा", L"विशेषता" }; -static const Keywords ne_feature_keywords = { 2, ne_feature_KEYWORDS }; - -static const wchar_t* const ne_given_KEYWORDS[] = { L"* ", L"दिइएको ", L"दिएको ", L"यदि " }; -static const Keywords ne_given_keywords = { 4, ne_given_KEYWORDS }; - -static const wchar_t* const ne_rule_KEYWORDS[] = { L"नियम" }; -static const Keywords ne_rule_keywords = { 1, ne_rule_KEYWORDS }; - -static const wchar_t* const ne_scenario_KEYWORDS[] = { L"परिदृश्य" }; -static const Keywords ne_scenario_keywords = { 1, ne_scenario_KEYWORDS }; - -static const wchar_t* const ne_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; -static const Keywords ne_scenarioOutline_keywords = { 1, ne_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ne_then_KEYWORDS[] = { L"* ", L"त्यसपछि ", L"अनी " }; -static const Keywords ne_then_keywords = { 3, ne_then_KEYWORDS }; - -static const wchar_t* const ne_when_KEYWORDS[] = { L"* ", L"जब " }; -static const Keywords ne_when_keywords = { 2, ne_when_KEYWORDS }; - -static const Dialect ne_dialect = { - L"ne", - &ne_and_keywords, - &ne_background_keywords, - &ne_but_keywords, - &ne_examples_keywords, - &ne_feature_keywords, - &ne_given_keywords, - &ne_rule_keywords, - &ne_scenario_keywords, - &ne_scenarioOutline_keywords, - &ne_then_keywords, - &ne_when_keywords }; - -static const wchar_t* const nl_and_KEYWORDS[] = { L"* ", L"En " }; -static const Keywords nl_and_keywords = { 2, nl_and_KEYWORDS }; - -static const wchar_t* const nl_background_KEYWORDS[] = { L"Achtergrond" }; -static const Keywords nl_background_keywords = { 1, nl_background_KEYWORDS }; - -static const wchar_t* const nl_but_KEYWORDS[] = { L"* ", L"Maar " }; -static const Keywords nl_but_keywords = { 2, nl_but_KEYWORDS }; - -static const wchar_t* const nl_examples_KEYWORDS[] = { L"Voorbeelden" }; -static const Keywords nl_examples_keywords = { 1, nl_examples_KEYWORDS }; - -static const wchar_t* const nl_feature_KEYWORDS[] = { L"Functionaliteit" }; -static const Keywords nl_feature_keywords = { 1, nl_feature_KEYWORDS }; - -static const wchar_t* const nl_given_KEYWORDS[] = { L"* ", L"Gegeven ", L"Stel " }; -static const Keywords nl_given_keywords = { 3, nl_given_KEYWORDS }; - -static const wchar_t* const nl_rule_KEYWORDS[] = { L"Regel" }; -static const Keywords nl_rule_keywords = { 1, nl_rule_KEYWORDS }; - -static const wchar_t* const nl_scenario_KEYWORDS[] = { L"Voorbeeld", L"Scenario" }; -static const Keywords nl_scenario_keywords = { 2, nl_scenario_KEYWORDS }; - -static const wchar_t* const nl_scenarioOutline_KEYWORDS[] = { L"Abstract Scenario" }; -static const Keywords nl_scenarioOutline_keywords = { 1, nl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const nl_then_KEYWORDS[] = { L"* ", L"Dan " }; -static const Keywords nl_then_keywords = { 2, nl_then_KEYWORDS }; - -static const wchar_t* const nl_when_KEYWORDS[] = { L"* ", L"Als ", L"Wanneer " }; -static const Keywords nl_when_keywords = { 3, nl_when_KEYWORDS }; - -static const Dialect nl_dialect = { - L"nl", - &nl_and_keywords, - &nl_background_keywords, - &nl_but_keywords, - &nl_examples_keywords, - &nl_feature_keywords, - &nl_given_keywords, - &nl_rule_keywords, - &nl_scenario_keywords, - &nl_scenarioOutline_keywords, - &nl_then_keywords, - &nl_when_keywords }; - -static const wchar_t* const no_and_KEYWORDS[] = { L"* ", L"Og " }; -static const Keywords no_and_keywords = { 2, no_and_KEYWORDS }; - -static const wchar_t* const no_background_KEYWORDS[] = { L"Bakgrunn" }; -static const Keywords no_background_keywords = { 1, no_background_KEYWORDS }; - -static const wchar_t* const no_but_KEYWORDS[] = { L"* ", L"Men " }; -static const Keywords no_but_keywords = { 2, no_but_KEYWORDS }; - -static const wchar_t* const no_examples_KEYWORDS[] = { L"Eksempler" }; -static const Keywords no_examples_keywords = { 1, no_examples_KEYWORDS }; - -static const wchar_t* const no_feature_KEYWORDS[] = { L"Egenskap" }; -static const Keywords no_feature_keywords = { 1, no_feature_KEYWORDS }; - -static const wchar_t* const no_given_KEYWORDS[] = { L"* ", L"Gitt " }; -static const Keywords no_given_keywords = { 2, no_given_KEYWORDS }; - -static const wchar_t* const no_rule_KEYWORDS[] = { L"Regel" }; -static const Keywords no_rule_keywords = { 1, no_rule_KEYWORDS }; - -static const wchar_t* const no_scenario_KEYWORDS[] = { L"Eksempel", L"Scenario" }; -static const Keywords no_scenario_keywords = { 2, no_scenario_KEYWORDS }; - -static const wchar_t* const no_scenarioOutline_KEYWORDS[] = { L"Scenariomal", L"Abstrakt Scenario" }; -static const Keywords no_scenarioOutline_keywords = { 2, no_scenarioOutline_KEYWORDS }; - -static const wchar_t* const no_then_KEYWORDS[] = { L"* ", L"Så " }; -static const Keywords no_then_keywords = { 2, no_then_KEYWORDS }; - -static const wchar_t* const no_when_KEYWORDS[] = { L"* ", L"Når " }; -static const Keywords no_when_keywords = { 2, no_when_KEYWORDS }; - -static const Dialect no_dialect = { - L"no", - &no_and_keywords, - &no_background_keywords, - &no_but_keywords, - &no_examples_keywords, - &no_feature_keywords, - &no_given_keywords, - &no_rule_keywords, - &no_scenario_keywords, - &no_scenarioOutline_keywords, - &no_then_keywords, - &no_when_keywords }; - -static const wchar_t* const pa_and_KEYWORDS[] = { L"* ", L"ਅਤੇ " }; -static const Keywords pa_and_keywords = { 2, pa_and_KEYWORDS }; - -static const wchar_t* const pa_background_KEYWORDS[] = { L"ਪਿਛੋਕੜ" }; -static const Keywords pa_background_keywords = { 1, pa_background_KEYWORDS }; - -static const wchar_t* const pa_but_KEYWORDS[] = { L"* ", L"ਪਰ " }; -static const Keywords pa_but_keywords = { 2, pa_but_KEYWORDS }; - -static const wchar_t* const pa_examples_KEYWORDS[] = { L"ਉਦਾਹਰਨਾਂ" }; -static const Keywords pa_examples_keywords = { 1, pa_examples_KEYWORDS }; - -static const wchar_t* const pa_feature_KEYWORDS[] = { L"ਖਾਸੀਅਤ", L"ਮੁਹਾਂਦਰਾ", L"ਨਕਸ਼ ਨੁਹਾਰ" }; -static const Keywords pa_feature_keywords = { 3, pa_feature_KEYWORDS }; - -static const wchar_t* const pa_given_KEYWORDS[] = { L"* ", L"ਜੇਕਰ ", L"ਜਿਵੇਂ ਕਿ " }; -static const Keywords pa_given_keywords = { 3, pa_given_KEYWORDS }; - -static const wchar_t* const pa_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords pa_rule_keywords = { 1, pa_rule_KEYWORDS }; - -static const wchar_t* const pa_scenario_KEYWORDS[] = { L"ਉਦਾਹਰਨ", L"ਪਟਕਥਾ" }; -static const Keywords pa_scenario_keywords = { 2, pa_scenario_KEYWORDS }; - -static const wchar_t* const pa_scenarioOutline_KEYWORDS[] = { L"ਪਟਕਥਾ ਢਾਂਚਾ", L"ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ" }; -static const Keywords pa_scenarioOutline_keywords = { 2, pa_scenarioOutline_KEYWORDS }; - -static const wchar_t* const pa_then_KEYWORDS[] = { L"* ", L"ਤਦ " }; -static const Keywords pa_then_keywords = { 2, pa_then_KEYWORDS }; - -static const wchar_t* const pa_when_KEYWORDS[] = { L"* ", L"ਜਦੋਂ " }; -static const Keywords pa_when_keywords = { 2, pa_when_KEYWORDS }; - -static const Dialect pa_dialect = { - L"pa", - &pa_and_keywords, - &pa_background_keywords, - &pa_but_keywords, - &pa_examples_keywords, - &pa_feature_keywords, - &pa_given_keywords, - &pa_rule_keywords, - &pa_scenario_keywords, - &pa_scenarioOutline_keywords, - &pa_then_keywords, - &pa_when_keywords }; - -static const wchar_t* const pl_and_KEYWORDS[] = { L"* ", L"Oraz ", L"I " }; -static const Keywords pl_and_keywords = { 3, pl_and_KEYWORDS }; - -static const wchar_t* const pl_background_KEYWORDS[] = { L"Założenia" }; -static const Keywords pl_background_keywords = { 1, pl_background_KEYWORDS }; - -static const wchar_t* const pl_but_KEYWORDS[] = { L"* ", L"Ale " }; -static const Keywords pl_but_keywords = { 2, pl_but_KEYWORDS }; - -static const wchar_t* const pl_examples_KEYWORDS[] = { L"Przykłady" }; -static const Keywords pl_examples_keywords = { 1, pl_examples_KEYWORDS }; - -static const wchar_t* const pl_feature_KEYWORDS[] = { L"Właściwość", L"Funkcja", L"Aspekt", L"Potrzeba biznesowa" }; -static const Keywords pl_feature_keywords = { 4, pl_feature_KEYWORDS }; - -static const wchar_t* const pl_given_KEYWORDS[] = { L"* ", L"Zakładając ", L"Mając ", L"Zakładając, że " }; -static const Keywords pl_given_keywords = { 4, pl_given_KEYWORDS }; - -static const wchar_t* const pl_rule_KEYWORDS[] = { L"Zasada", L"Reguła" }; -static const Keywords pl_rule_keywords = { 2, pl_rule_KEYWORDS }; - -static const wchar_t* const pl_scenario_KEYWORDS[] = { L"Przykład", L"Scenariusz" }; -static const Keywords pl_scenario_keywords = { 2, pl_scenario_KEYWORDS }; - -static const wchar_t* const pl_scenarioOutline_KEYWORDS[] = { L"Szablon scenariusza" }; -static const Keywords pl_scenarioOutline_keywords = { 1, pl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const pl_then_KEYWORDS[] = { L"* ", L"Wtedy " }; -static const Keywords pl_then_keywords = { 2, pl_then_KEYWORDS }; - -static const wchar_t* const pl_when_KEYWORDS[] = { L"* ", L"Jeżeli ", L"Jeśli ", L"Gdy ", L"Kiedy " }; -static const Keywords pl_when_keywords = { 5, pl_when_KEYWORDS }; - -static const Dialect pl_dialect = { - L"pl", - &pl_and_keywords, - &pl_background_keywords, - &pl_but_keywords, - &pl_examples_keywords, - &pl_feature_keywords, - &pl_given_keywords, - &pl_rule_keywords, - &pl_scenario_keywords, - &pl_scenarioOutline_keywords, - &pl_then_keywords, - &pl_when_keywords }; - -static const wchar_t* const pt_and_KEYWORDS[] = { L"* ", L"E " }; -static const Keywords pt_and_keywords = { 2, pt_and_KEYWORDS }; - -static const wchar_t* const pt_background_KEYWORDS[] = { L"Contexto", L"Cenário de Fundo", L"Cenario de Fundo", L"Fundo" }; -static const Keywords pt_background_keywords = { 4, pt_background_KEYWORDS }; - -static const wchar_t* const pt_but_KEYWORDS[] = { L"* ", L"Mas " }; -static const Keywords pt_but_keywords = { 2, pt_but_KEYWORDS }; - -static const wchar_t* const pt_examples_KEYWORDS[] = { L"Exemplos", L"Cenários", L"Cenarios" }; -static const Keywords pt_examples_keywords = { 3, pt_examples_KEYWORDS }; - -static const wchar_t* const pt_feature_KEYWORDS[] = { L"Funcionalidade", L"Característica", L"Caracteristica" }; -static const Keywords pt_feature_keywords = { 3, pt_feature_KEYWORDS }; - -static const wchar_t* const pt_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; -static const Keywords pt_given_keywords = { 5, pt_given_KEYWORDS }; - -static const wchar_t* const pt_rule_KEYWORDS[] = { L"Regra" }; -static const Keywords pt_rule_keywords = { 1, pt_rule_KEYWORDS }; - -static const wchar_t* const pt_scenario_KEYWORDS[] = { L"Exemplo", L"Cenário", L"Cenario" }; -static const Keywords pt_scenario_keywords = { 3, pt_scenario_KEYWORDS }; - -static const wchar_t* const pt_scenarioOutline_KEYWORDS[] = { L"Esquema do Cenário", L"Esquema do Cenario", L"Delineação do Cenário", L"Delineacao do Cenario" }; -static const Keywords pt_scenarioOutline_keywords = { 4, pt_scenarioOutline_KEYWORDS }; - -static const wchar_t* const pt_then_KEYWORDS[] = { L"* ", L"Então ", L"Entao " }; -static const Keywords pt_then_keywords = { 3, pt_then_KEYWORDS }; - -static const wchar_t* const pt_when_KEYWORDS[] = { L"* ", L"Quando " }; -static const Keywords pt_when_keywords = { 2, pt_when_KEYWORDS }; - -static const Dialect pt_dialect = { - L"pt", - &pt_and_keywords, - &pt_background_keywords, - &pt_but_keywords, - &pt_examples_keywords, - &pt_feature_keywords, - &pt_given_keywords, - &pt_rule_keywords, - &pt_scenario_keywords, - &pt_scenarioOutline_keywords, - &pt_then_keywords, - &pt_when_keywords }; - -static const wchar_t* const ro_and_KEYWORDS[] = { L"* ", L"Si ", L"Și ", L"Şi " }; -static const Keywords ro_and_keywords = { 4, ro_and_KEYWORDS }; - -static const wchar_t* const ro_background_KEYWORDS[] = { L"Context" }; -static const Keywords ro_background_keywords = { 1, ro_background_KEYWORDS }; - -static const wchar_t* const ro_but_KEYWORDS[] = { L"* ", L"Dar " }; -static const Keywords ro_but_keywords = { 2, ro_but_KEYWORDS }; - -static const wchar_t* const ro_examples_KEYWORDS[] = { L"Exemple" }; -static const Keywords ro_examples_keywords = { 1, ro_examples_KEYWORDS }; - -static const wchar_t* const ro_feature_KEYWORDS[] = { L"Functionalitate", L"Funcționalitate", L"Funcţionalitate" }; -static const Keywords ro_feature_keywords = { 3, ro_feature_KEYWORDS }; - -static const wchar_t* const ro_given_KEYWORDS[] = { L"* ", L"Date fiind ", L"Dat fiind ", L"Dată fiind", L"Dati fiind ", L"Dați fiind ", L"Daţi fiind " }; -static const Keywords ro_given_keywords = { 7, ro_given_KEYWORDS }; - -static const wchar_t* const ro_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ro_rule_keywords = { 1, ro_rule_KEYWORDS }; - -static const wchar_t* const ro_scenario_KEYWORDS[] = { L"Exemplu", L"Scenariu" }; -static const Keywords ro_scenario_keywords = { 2, ro_scenario_KEYWORDS }; - -static const wchar_t* const ro_scenarioOutline_KEYWORDS[] = { L"Structura scenariu", L"Structură scenariu" }; -static const Keywords ro_scenarioOutline_keywords = { 2, ro_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ro_then_KEYWORDS[] = { L"* ", L"Atunci " }; -static const Keywords ro_then_keywords = { 2, ro_then_KEYWORDS }; - -static const wchar_t* const ro_when_KEYWORDS[] = { L"* ", L"Cand ", L"Când " }; -static const Keywords ro_when_keywords = { 3, ro_when_KEYWORDS }; - -static const Dialect ro_dialect = { - L"ro", - &ro_and_keywords, - &ro_background_keywords, - &ro_but_keywords, - &ro_examples_keywords, - &ro_feature_keywords, - &ro_given_keywords, - &ro_rule_keywords, - &ro_scenario_keywords, - &ro_scenarioOutline_keywords, - &ro_then_keywords, - &ro_when_keywords }; - -static const wchar_t* const ru_and_KEYWORDS[] = { L"* ", L"И ", L"К тому же ", L"Также " }; -static const Keywords ru_and_keywords = { 4, ru_and_KEYWORDS }; - -static const wchar_t* const ru_background_KEYWORDS[] = { L"Предыстория", L"Контекст" }; -static const Keywords ru_background_keywords = { 2, ru_background_KEYWORDS }; - -static const wchar_t* const ru_but_KEYWORDS[] = { L"* ", L"Но ", L"А ", L"Иначе " }; -static const Keywords ru_but_keywords = { 4, ru_but_KEYWORDS }; - -static const wchar_t* const ru_examples_KEYWORDS[] = { L"Примеры" }; -static const Keywords ru_examples_keywords = { 1, ru_examples_KEYWORDS }; - -static const wchar_t* const ru_feature_KEYWORDS[] = { L"Функция", L"Функциональность", L"Функционал", L"Свойство", L"Фича" }; -static const Keywords ru_feature_keywords = { 5, ru_feature_KEYWORDS }; - -static const wchar_t* const ru_given_KEYWORDS[] = { L"* ", L"Допустим ", L"Дано ", L"Пусть " }; -static const Keywords ru_given_keywords = { 4, ru_given_KEYWORDS }; - -static const wchar_t* const ru_rule_KEYWORDS[] = { L"Правило" }; -static const Keywords ru_rule_keywords = { 1, ru_rule_KEYWORDS }; - -static const wchar_t* const ru_scenario_KEYWORDS[] = { L"Пример", L"Сценарий" }; -static const Keywords ru_scenario_keywords = { 2, ru_scenario_KEYWORDS }; - -static const wchar_t* const ru_scenarioOutline_KEYWORDS[] = { L"Структура сценария", L"Шаблон сценария" }; -static const Keywords ru_scenarioOutline_keywords = { 2, ru_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ru_then_KEYWORDS[] = { L"* ", L"То ", L"Затем ", L"Тогда " }; -static const Keywords ru_then_keywords = { 4, ru_then_KEYWORDS }; - -static const wchar_t* const ru_when_KEYWORDS[] = { L"* ", L"Когда ", L"Если " }; -static const Keywords ru_when_keywords = { 3, ru_when_KEYWORDS }; - -static const Dialect ru_dialect = { - L"ru", - &ru_and_keywords, - &ru_background_keywords, - &ru_but_keywords, - &ru_examples_keywords, - &ru_feature_keywords, - &ru_given_keywords, - &ru_rule_keywords, - &ru_scenario_keywords, - &ru_scenarioOutline_keywords, - &ru_then_keywords, - &ru_when_keywords }; - -static const wchar_t* const sk_and_KEYWORDS[] = { L"* ", L"A ", L"A tiež ", L"A taktiež ", L"A zároveň " }; -static const Keywords sk_and_keywords = { 5, sk_and_KEYWORDS }; - -static const wchar_t* const sk_background_KEYWORDS[] = { L"Pozadie" }; -static const Keywords sk_background_keywords = { 1, sk_background_KEYWORDS }; - -static const wchar_t* const sk_but_KEYWORDS[] = { L"* ", L"Ale " }; -static const Keywords sk_but_keywords = { 2, sk_but_KEYWORDS }; - -static const wchar_t* const sk_examples_KEYWORDS[] = { L"Príklady" }; -static const Keywords sk_examples_keywords = { 1, sk_examples_KEYWORDS }; - -static const wchar_t* const sk_feature_KEYWORDS[] = { L"Požiadavka", L"Funkcia", L"Vlastnosť" }; -static const Keywords sk_feature_keywords = { 3, sk_feature_KEYWORDS }; - -static const wchar_t* const sk_given_KEYWORDS[] = { L"* ", L"Pokiaľ ", L"Za predpokladu " }; -static const Keywords sk_given_keywords = { 3, sk_given_KEYWORDS }; - -static const wchar_t* const sk_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords sk_rule_keywords = { 1, sk_rule_KEYWORDS }; - -static const wchar_t* const sk_scenario_KEYWORDS[] = { L"Príklad", L"Scenár" }; -static const Keywords sk_scenario_keywords = { 2, sk_scenario_KEYWORDS }; - -static const wchar_t* const sk_scenarioOutline_KEYWORDS[] = { L"Náčrt Scenáru", L"Náčrt Scenára", L"Osnova Scenára" }; -static const Keywords sk_scenarioOutline_keywords = { 3, sk_scenarioOutline_KEYWORDS }; - -static const wchar_t* const sk_then_KEYWORDS[] = { L"* ", L"Tak ", L"Potom " }; -static const Keywords sk_then_keywords = { 3, sk_then_KEYWORDS }; - -static const wchar_t* const sk_when_KEYWORDS[] = { L"* ", L"Keď ", L"Ak " }; -static const Keywords sk_when_keywords = { 3, sk_when_KEYWORDS }; - -static const Dialect sk_dialect = { - L"sk", - &sk_and_keywords, - &sk_background_keywords, - &sk_but_keywords, - &sk_examples_keywords, - &sk_feature_keywords, - &sk_given_keywords, - &sk_rule_keywords, - &sk_scenario_keywords, - &sk_scenarioOutline_keywords, - &sk_then_keywords, - &sk_when_keywords }; - -static const wchar_t* const sl_and_KEYWORDS[] = { L"In ", L"Ter " }; -static const Keywords sl_and_keywords = { 2, sl_and_KEYWORDS }; - -static const wchar_t* const sl_background_KEYWORDS[] = { L"Kontekst", L"Osnova", L"Ozadje" }; -static const Keywords sl_background_keywords = { 3, sl_background_KEYWORDS }; - -static const wchar_t* const sl_but_KEYWORDS[] = { L"Toda ", L"Ampak ", L"Vendar " }; -static const Keywords sl_but_keywords = { 3, sl_but_KEYWORDS }; - -static const wchar_t* const sl_examples_KEYWORDS[] = { L"Primeri", L"Scenariji" }; -static const Keywords sl_examples_keywords = { 2, sl_examples_KEYWORDS }; - -static const wchar_t* const sl_feature_KEYWORDS[] = { L"Funkcionalnost", L"Funkcija", L"Možnosti", L"Moznosti", L"Lastnost", L"Značilnost" }; -static const Keywords sl_feature_keywords = { 6, sl_feature_KEYWORDS }; - -static const wchar_t* const sl_given_KEYWORDS[] = { L"Dano ", L"Podano ", L"Zaradi ", L"Privzeto " }; -static const Keywords sl_given_keywords = { 4, sl_given_KEYWORDS }; - -static const wchar_t* const sl_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords sl_rule_keywords = { 1, sl_rule_KEYWORDS }; - -static const wchar_t* const sl_scenario_KEYWORDS[] = { L"Primer", L"Scenarij" }; -static const Keywords sl_scenario_keywords = { 2, sl_scenario_KEYWORDS }; - -static const wchar_t* const sl_scenarioOutline_KEYWORDS[] = { L"Struktura scenarija", L"Skica", L"Koncept", L"Oris scenarija", L"Osnutek" }; -static const Keywords sl_scenarioOutline_keywords = { 5, sl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const sl_then_KEYWORDS[] = { L"Nato ", L"Potem ", L"Takrat " }; -static const Keywords sl_then_keywords = { 3, sl_then_KEYWORDS }; - -static const wchar_t* const sl_when_KEYWORDS[] = { L"Ko ", L"Ce ", L"Če ", L"Kadar " }; -static const Keywords sl_when_keywords = { 4, sl_when_KEYWORDS }; - -static const Dialect sl_dialect = { - L"sl", - &sl_and_keywords, - &sl_background_keywords, - &sl_but_keywords, - &sl_examples_keywords, - &sl_feature_keywords, - &sl_given_keywords, - &sl_rule_keywords, - &sl_scenario_keywords, - &sl_scenarioOutline_keywords, - &sl_then_keywords, - &sl_when_keywords }; - -static const wchar_t* const sr_Cyrl_and_KEYWORDS[] = { L"* ", L"И " }; -static const Keywords sr_Cyrl_and_keywords = { 2, sr_Cyrl_and_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_background_KEYWORDS[] = { L"Контекст", L"Основа", L"Позадина" }; -static const Keywords sr_Cyrl_background_keywords = { 3, sr_Cyrl_background_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_but_KEYWORDS[] = { L"* ", L"Али " }; -static const Keywords sr_Cyrl_but_keywords = { 2, sr_Cyrl_but_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_examples_KEYWORDS[] = { L"Примери", L"Сценарији" }; -static const Keywords sr_Cyrl_examples_keywords = { 2, sr_Cyrl_examples_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_feature_KEYWORDS[] = { L"Функционалност", L"Могућност", L"Особина" }; -static const Keywords sr_Cyrl_feature_keywords = { 3, sr_Cyrl_feature_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_given_KEYWORDS[] = { L"* ", L"За дато ", L"За дате ", L"За дати " }; -static const Keywords sr_Cyrl_given_keywords = { 4, sr_Cyrl_given_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_rule_KEYWORDS[] = { L"Правило" }; -static const Keywords sr_Cyrl_rule_keywords = { 1, sr_Cyrl_rule_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_scenario_KEYWORDS[] = { L"Сценарио", L"Пример" }; -static const Keywords sr_Cyrl_scenario_keywords = { 2, sr_Cyrl_scenario_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_scenarioOutline_KEYWORDS[] = { L"Структура сценарија", L"Скица", L"Концепт" }; -static const Keywords sr_Cyrl_scenarioOutline_keywords = { 3, sr_Cyrl_scenarioOutline_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_then_KEYWORDS[] = { L"* ", L"Онда " }; -static const Keywords sr_Cyrl_then_keywords = { 2, sr_Cyrl_then_KEYWORDS }; - -static const wchar_t* const sr_Cyrl_when_KEYWORDS[] = { L"* ", L"Када ", L"Кад " }; -static const Keywords sr_Cyrl_when_keywords = { 3, sr_Cyrl_when_KEYWORDS }; - -static const Dialect sr_Cyrl_dialect = { - L"sr-Cyrl", - &sr_Cyrl_and_keywords, - &sr_Cyrl_background_keywords, - &sr_Cyrl_but_keywords, - &sr_Cyrl_examples_keywords, - &sr_Cyrl_feature_keywords, - &sr_Cyrl_given_keywords, - &sr_Cyrl_rule_keywords, - &sr_Cyrl_scenario_keywords, - &sr_Cyrl_scenarioOutline_keywords, - &sr_Cyrl_then_keywords, - &sr_Cyrl_when_keywords }; - -static const wchar_t* const sr_Latn_and_KEYWORDS[] = { L"* ", L"I " }; -static const Keywords sr_Latn_and_keywords = { 2, sr_Latn_and_KEYWORDS }; - -static const wchar_t* const sr_Latn_background_KEYWORDS[] = { L"Kontekst", L"Osnova", L"Pozadina" }; -static const Keywords sr_Latn_background_keywords = { 3, sr_Latn_background_KEYWORDS }; - -static const wchar_t* const sr_Latn_but_KEYWORDS[] = { L"* ", L"Ali " }; -static const Keywords sr_Latn_but_keywords = { 2, sr_Latn_but_KEYWORDS }; - -static const wchar_t* const sr_Latn_examples_KEYWORDS[] = { L"Primeri", L"Scenariji" }; -static const Keywords sr_Latn_examples_keywords = { 2, sr_Latn_examples_KEYWORDS }; - -static const wchar_t* const sr_Latn_feature_KEYWORDS[] = { L"Funkcionalnost", L"Mogućnost", L"Mogucnost", L"Osobina" }; -static const Keywords sr_Latn_feature_keywords = { 4, sr_Latn_feature_KEYWORDS }; - -static const wchar_t* const sr_Latn_given_KEYWORDS[] = { L"* ", L"Za dato ", L"Za date ", L"Za dati " }; -static const Keywords sr_Latn_given_keywords = { 4, sr_Latn_given_KEYWORDS }; - -static const wchar_t* const sr_Latn_rule_KEYWORDS[] = { L"Pravilo" }; -static const Keywords sr_Latn_rule_keywords = { 1, sr_Latn_rule_KEYWORDS }; - -static const wchar_t* const sr_Latn_scenario_KEYWORDS[] = { L"Scenario", L"Primer" }; -static const Keywords sr_Latn_scenario_keywords = { 2, sr_Latn_scenario_KEYWORDS }; - -static const wchar_t* const sr_Latn_scenarioOutline_KEYWORDS[] = { L"Struktura scenarija", L"Skica", L"Koncept" }; -static const Keywords sr_Latn_scenarioOutline_keywords = { 3, sr_Latn_scenarioOutline_KEYWORDS }; - -static const wchar_t* const sr_Latn_then_KEYWORDS[] = { L"* ", L"Onda " }; -static const Keywords sr_Latn_then_keywords = { 2, sr_Latn_then_KEYWORDS }; - -static const wchar_t* const sr_Latn_when_KEYWORDS[] = { L"* ", L"Kada ", L"Kad " }; -static const Keywords sr_Latn_when_keywords = { 3, sr_Latn_when_KEYWORDS }; - -static const Dialect sr_Latn_dialect = { - L"sr-Latn", - &sr_Latn_and_keywords, - &sr_Latn_background_keywords, - &sr_Latn_but_keywords, - &sr_Latn_examples_keywords, - &sr_Latn_feature_keywords, - &sr_Latn_given_keywords, - &sr_Latn_rule_keywords, - &sr_Latn_scenario_keywords, - &sr_Latn_scenarioOutline_keywords, - &sr_Latn_then_keywords, - &sr_Latn_when_keywords }; - -static const wchar_t* const sv_and_KEYWORDS[] = { L"* ", L"Och " }; -static const Keywords sv_and_keywords = { 2, sv_and_KEYWORDS }; - -static const wchar_t* const sv_background_KEYWORDS[] = { L"Bakgrund" }; -static const Keywords sv_background_keywords = { 1, sv_background_KEYWORDS }; - -static const wchar_t* const sv_but_KEYWORDS[] = { L"* ", L"Men " }; -static const Keywords sv_but_keywords = { 2, sv_but_KEYWORDS }; - -static const wchar_t* const sv_examples_KEYWORDS[] = { L"Exempel" }; -static const Keywords sv_examples_keywords = { 1, sv_examples_KEYWORDS }; - -static const wchar_t* const sv_feature_KEYWORDS[] = { L"Egenskap" }; -static const Keywords sv_feature_keywords = { 1, sv_feature_KEYWORDS }; - -static const wchar_t* const sv_given_KEYWORDS[] = { L"* ", L"Givet " }; -static const Keywords sv_given_keywords = { 2, sv_given_KEYWORDS }; - -static const wchar_t* const sv_rule_KEYWORDS[] = { L"Regel" }; -static const Keywords sv_rule_keywords = { 1, sv_rule_KEYWORDS }; - -static const wchar_t* const sv_scenario_KEYWORDS[] = { L"Scenario" }; -static const Keywords sv_scenario_keywords = { 1, sv_scenario_KEYWORDS }; - -static const wchar_t* const sv_scenarioOutline_KEYWORDS[] = { L"Abstrakt Scenario", L"Scenariomall" }; -static const Keywords sv_scenarioOutline_keywords = { 2, sv_scenarioOutline_KEYWORDS }; - -static const wchar_t* const sv_then_KEYWORDS[] = { L"* ", L"Så " }; -static const Keywords sv_then_keywords = { 2, sv_then_KEYWORDS }; - -static const wchar_t* const sv_when_KEYWORDS[] = { L"* ", L"När " }; -static const Keywords sv_when_keywords = { 2, sv_when_KEYWORDS }; - -static const Dialect sv_dialect = { - L"sv", - &sv_and_keywords, - &sv_background_keywords, - &sv_but_keywords, - &sv_examples_keywords, - &sv_feature_keywords, - &sv_given_keywords, - &sv_rule_keywords, - &sv_scenario_keywords, - &sv_scenarioOutline_keywords, - &sv_then_keywords, - &sv_when_keywords }; - -static const wchar_t* const ta_and_KEYWORDS[] = { L"* ", L"மேலும் ", L"மற்றும் " }; -static const Keywords ta_and_keywords = { 3, ta_and_KEYWORDS }; - -static const wchar_t* const ta_background_KEYWORDS[] = { L"பின்னணி" }; -static const Keywords ta_background_keywords = { 1, ta_background_KEYWORDS }; - -static const wchar_t* const ta_but_KEYWORDS[] = { L"* ", L"ஆனால் " }; -static const Keywords ta_but_keywords = { 2, ta_but_KEYWORDS }; - -static const wchar_t* const ta_examples_KEYWORDS[] = { L"எடுத்துக்காட்டுகள்", L"காட்சிகள்", L"நிலைமைகளில்" }; -static const Keywords ta_examples_keywords = { 3, ta_examples_KEYWORDS }; - -static const wchar_t* const ta_feature_KEYWORDS[] = { L"அம்சம்", L"வணிக தேவை", L"திறன்" }; -static const Keywords ta_feature_keywords = { 3, ta_feature_KEYWORDS }; - -static const wchar_t* const ta_given_KEYWORDS[] = { L"* ", L"கொடுக்கப்பட்ட " }; -static const Keywords ta_given_keywords = { 2, ta_given_KEYWORDS }; - -static const wchar_t* const ta_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ta_rule_keywords = { 1, ta_rule_KEYWORDS }; - -static const wchar_t* const ta_scenario_KEYWORDS[] = { L"உதாரணமாக", L"காட்சி" }; -static const Keywords ta_scenario_keywords = { 2, ta_scenario_KEYWORDS }; - -static const wchar_t* const ta_scenarioOutline_KEYWORDS[] = { L"காட்சி சுருக்கம்", L"காட்சி வார்ப்புரு" }; -static const Keywords ta_scenarioOutline_keywords = { 2, ta_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ta_then_KEYWORDS[] = { L"* ", L"அப்பொழுது " }; -static const Keywords ta_then_keywords = { 2, ta_then_KEYWORDS }; - -static const wchar_t* const ta_when_KEYWORDS[] = { L"* ", L"எப்போது " }; -static const Keywords ta_when_keywords = { 2, ta_when_KEYWORDS }; - -static const Dialect ta_dialect = { - L"ta", - &ta_and_keywords, - &ta_background_keywords, - &ta_but_keywords, - &ta_examples_keywords, - &ta_feature_keywords, - &ta_given_keywords, - &ta_rule_keywords, - &ta_scenario_keywords, - &ta_scenarioOutline_keywords, - &ta_then_keywords, - &ta_when_keywords }; - -static const wchar_t* const th_and_KEYWORDS[] = { L"* ", L"และ " }; -static const Keywords th_and_keywords = { 2, th_and_KEYWORDS }; - -static const wchar_t* const th_background_KEYWORDS[] = { L"แนวคิด" }; -static const Keywords th_background_keywords = { 1, th_background_KEYWORDS }; - -static const wchar_t* const th_but_KEYWORDS[] = { L"* ", L"แต่ " }; -static const Keywords th_but_keywords = { 2, th_but_KEYWORDS }; - -static const wchar_t* const th_examples_KEYWORDS[] = { L"ชุดของตัวอย่าง", L"ชุดของเหตุการณ์" }; -static const Keywords th_examples_keywords = { 2, th_examples_KEYWORDS }; - -static const wchar_t* const th_feature_KEYWORDS[] = { L"โครงหลัก", L"ความต้องการทางธุรกิจ", L"ความสามารถ" }; -static const Keywords th_feature_keywords = { 3, th_feature_KEYWORDS }; - -static const wchar_t* const th_given_KEYWORDS[] = { L"* ", L"กำหนดให้ " }; -static const Keywords th_given_keywords = { 2, th_given_KEYWORDS }; - -static const wchar_t* const th_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords th_rule_keywords = { 1, th_rule_KEYWORDS }; - -static const wchar_t* const th_scenario_KEYWORDS[] = { L"เหตุการณ์" }; -static const Keywords th_scenario_keywords = { 1, th_scenario_KEYWORDS }; - -static const wchar_t* const th_scenarioOutline_KEYWORDS[] = { L"สรุปเหตุการณ์", L"โครงสร้างของเหตุการณ์" }; -static const Keywords th_scenarioOutline_keywords = { 2, th_scenarioOutline_KEYWORDS }; - -static const wchar_t* const th_then_KEYWORDS[] = { L"* ", L"ดังนั้น " }; -static const Keywords th_then_keywords = { 2, th_then_KEYWORDS }; - -static const wchar_t* const th_when_KEYWORDS[] = { L"* ", L"เมื่อ " }; -static const Keywords th_when_keywords = { 2, th_when_KEYWORDS }; - -static const Dialect th_dialect = { - L"th", - &th_and_keywords, - &th_background_keywords, - &th_but_keywords, - &th_examples_keywords, - &th_feature_keywords, - &th_given_keywords, - &th_rule_keywords, - &th_scenario_keywords, - &th_scenarioOutline_keywords, - &th_then_keywords, - &th_when_keywords }; - -static const wchar_t* const te_and_KEYWORDS[] = { L"* ", L"మరియు " }; -static const Keywords te_and_keywords = { 2, te_and_KEYWORDS }; - -static const wchar_t* const te_background_KEYWORDS[] = { L"నేపథ్యం" }; -static const Keywords te_background_keywords = { 1, te_background_KEYWORDS }; - -static const wchar_t* const te_but_KEYWORDS[] = { L"* ", L"కాని " }; -static const Keywords te_but_keywords = { 2, te_but_KEYWORDS }; - -static const wchar_t* const te_examples_KEYWORDS[] = { L"ఉదాహరణలు" }; -static const Keywords te_examples_keywords = { 1, te_examples_KEYWORDS }; - -static const wchar_t* const te_feature_KEYWORDS[] = { L"గుణము" }; -static const Keywords te_feature_keywords = { 1, te_feature_KEYWORDS }; - -static const wchar_t* const te_given_KEYWORDS[] = { L"* ", L"చెప్పబడినది " }; -static const Keywords te_given_keywords = { 2, te_given_KEYWORDS }; - -static const wchar_t* const te_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords te_rule_keywords = { 1, te_rule_KEYWORDS }; - -static const wchar_t* const te_scenario_KEYWORDS[] = { L"ఉదాహరణ", L"సన్నివేశం" }; -static const Keywords te_scenario_keywords = { 2, te_scenario_KEYWORDS }; - -static const wchar_t* const te_scenarioOutline_KEYWORDS[] = { L"కథనం" }; -static const Keywords te_scenarioOutline_keywords = { 1, te_scenarioOutline_KEYWORDS }; - -static const wchar_t* const te_then_KEYWORDS[] = { L"* ", L"అప్పుడు " }; -static const Keywords te_then_keywords = { 2, te_then_KEYWORDS }; - -static const wchar_t* const te_when_KEYWORDS[] = { L"* ", L"ఈ పరిస్థితిలో " }; -static const Keywords te_when_keywords = { 2, te_when_KEYWORDS }; - -static const Dialect te_dialect = { - L"te", - &te_and_keywords, - &te_background_keywords, - &te_but_keywords, - &te_examples_keywords, - &te_feature_keywords, - &te_given_keywords, - &te_rule_keywords, - &te_scenario_keywords, - &te_scenarioOutline_keywords, - &te_then_keywords, - &te_when_keywords }; - -static const wchar_t* const tlh_and_KEYWORDS[] = { L"* ", L"'ej ", L"latlh " }; -static const Keywords tlh_and_keywords = { 3, tlh_and_KEYWORDS }; - -static const wchar_t* const tlh_background_KEYWORDS[] = { L"mo'" }; -static const Keywords tlh_background_keywords = { 1, tlh_background_KEYWORDS }; - -static const wchar_t* const tlh_but_KEYWORDS[] = { L"* ", L"'ach ", L"'a " }; -static const Keywords tlh_but_keywords = { 3, tlh_but_KEYWORDS }; - -static const wchar_t* const tlh_examples_KEYWORDS[] = { L"ghantoH", L"lutmey" }; -static const Keywords tlh_examples_keywords = { 2, tlh_examples_KEYWORDS }; - -static const wchar_t* const tlh_feature_KEYWORDS[] = { L"Qap", L"Qu'meH 'ut", L"perbogh", L"poQbogh malja'", L"laH" }; -static const Keywords tlh_feature_keywords = { 5, tlh_feature_KEYWORDS }; - -static const wchar_t* const tlh_given_KEYWORDS[] = { L"* ", L"ghu' noblu' ", L"DaH ghu' bejlu' " }; -static const Keywords tlh_given_keywords = { 3, tlh_given_KEYWORDS }; - -static const wchar_t* const tlh_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords tlh_rule_keywords = { 1, tlh_rule_KEYWORDS }; - -static const wchar_t* const tlh_scenario_KEYWORDS[] = { L"lut" }; -static const Keywords tlh_scenario_keywords = { 1, tlh_scenario_KEYWORDS }; - -static const wchar_t* const tlh_scenarioOutline_KEYWORDS[] = { L"lut chovnatlh" }; -static const Keywords tlh_scenarioOutline_keywords = { 1, tlh_scenarioOutline_KEYWORDS }; - -static const wchar_t* const tlh_then_KEYWORDS[] = { L"* ", L"vaj " }; -static const Keywords tlh_then_keywords = { 2, tlh_then_KEYWORDS }; - -static const wchar_t* const tlh_when_KEYWORDS[] = { L"* ", L"qaSDI' " }; -static const Keywords tlh_when_keywords = { 2, tlh_when_KEYWORDS }; - -static const Dialect tlh_dialect = { - L"tlh", - &tlh_and_keywords, - &tlh_background_keywords, - &tlh_but_keywords, - &tlh_examples_keywords, - &tlh_feature_keywords, - &tlh_given_keywords, - &tlh_rule_keywords, - &tlh_scenario_keywords, - &tlh_scenarioOutline_keywords, - &tlh_then_keywords, - &tlh_when_keywords }; - -static const wchar_t* const tr_and_KEYWORDS[] = { L"* ", L"Ve " }; -static const Keywords tr_and_keywords = { 2, tr_and_KEYWORDS }; - -static const wchar_t* const tr_background_KEYWORDS[] = { L"Geçmiş" }; -static const Keywords tr_background_keywords = { 1, tr_background_KEYWORDS }; - -static const wchar_t* const tr_but_KEYWORDS[] = { L"* ", L"Fakat ", L"Ama " }; -static const Keywords tr_but_keywords = { 3, tr_but_KEYWORDS }; - -static const wchar_t* const tr_examples_KEYWORDS[] = { L"Örnekler" }; -static const Keywords tr_examples_keywords = { 1, tr_examples_KEYWORDS }; - -static const wchar_t* const tr_feature_KEYWORDS[] = { L"Özellik" }; -static const Keywords tr_feature_keywords = { 1, tr_feature_KEYWORDS }; - -static const wchar_t* const tr_given_KEYWORDS[] = { L"* ", L"Diyelim ki " }; -static const Keywords tr_given_keywords = { 2, tr_given_KEYWORDS }; - -static const wchar_t* const tr_rule_KEYWORDS[] = { L"Kural" }; -static const Keywords tr_rule_keywords = { 1, tr_rule_KEYWORDS }; - -static const wchar_t* const tr_scenario_KEYWORDS[] = { L"Örnek", L"Senaryo" }; -static const Keywords tr_scenario_keywords = { 2, tr_scenario_KEYWORDS }; - -static const wchar_t* const tr_scenarioOutline_KEYWORDS[] = { L"Senaryo taslağı" }; -static const Keywords tr_scenarioOutline_keywords = { 1, tr_scenarioOutline_KEYWORDS }; - -static const wchar_t* const tr_then_KEYWORDS[] = { L"* ", L"O zaman " }; -static const Keywords tr_then_keywords = { 2, tr_then_KEYWORDS }; - -static const wchar_t* const tr_when_KEYWORDS[] = { L"* ", L"Eğer ki " }; -static const Keywords tr_when_keywords = { 2, tr_when_KEYWORDS }; - -static const Dialect tr_dialect = { - L"tr", - &tr_and_keywords, - &tr_background_keywords, - &tr_but_keywords, - &tr_examples_keywords, - &tr_feature_keywords, - &tr_given_keywords, - &tr_rule_keywords, - &tr_scenario_keywords, - &tr_scenarioOutline_keywords, - &tr_then_keywords, - &tr_when_keywords }; - -static const wchar_t* const tt_and_KEYWORDS[] = { L"* ", L"Һәм ", L"Вә " }; -static const Keywords tt_and_keywords = { 3, tt_and_KEYWORDS }; - -static const wchar_t* const tt_background_KEYWORDS[] = { L"Кереш" }; -static const Keywords tt_background_keywords = { 1, tt_background_KEYWORDS }; - -static const wchar_t* const tt_but_KEYWORDS[] = { L"* ", L"Ләкин ", L"Әмма " }; -static const Keywords tt_but_keywords = { 3, tt_but_KEYWORDS }; - -static const wchar_t* const tt_examples_KEYWORDS[] = { L"Үрнәкләр", L"Мисаллар" }; -static const Keywords tt_examples_keywords = { 2, tt_examples_KEYWORDS }; - -static const wchar_t* const tt_feature_KEYWORDS[] = { L"Мөмкинлек", L"Үзенчәлеклелек" }; -static const Keywords tt_feature_keywords = { 2, tt_feature_KEYWORDS }; - -static const wchar_t* const tt_given_KEYWORDS[] = { L"* ", L"Әйтик " }; -static const Keywords tt_given_keywords = { 2, tt_given_KEYWORDS }; - -static const wchar_t* const tt_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords tt_rule_keywords = { 1, tt_rule_KEYWORDS }; - -static const wchar_t* const tt_scenario_KEYWORDS[] = { L"Сценарий" }; -static const Keywords tt_scenario_keywords = { 1, tt_scenario_KEYWORDS }; - -static const wchar_t* const tt_scenarioOutline_KEYWORDS[] = { L"Сценарийның төзелеше" }; -static const Keywords tt_scenarioOutline_keywords = { 1, tt_scenarioOutline_KEYWORDS }; - -static const wchar_t* const tt_then_KEYWORDS[] = { L"* ", L"Нәтиҗәдә " }; -static const Keywords tt_then_keywords = { 2, tt_then_KEYWORDS }; - -static const wchar_t* const tt_when_KEYWORDS[] = { L"* ", L"Әгәр " }; -static const Keywords tt_when_keywords = { 2, tt_when_KEYWORDS }; - -static const Dialect tt_dialect = { - L"tt", - &tt_and_keywords, - &tt_background_keywords, - &tt_but_keywords, - &tt_examples_keywords, - &tt_feature_keywords, - &tt_given_keywords, - &tt_rule_keywords, - &tt_scenario_keywords, - &tt_scenarioOutline_keywords, - &tt_then_keywords, - &tt_when_keywords }; - -static const wchar_t* const uk_and_KEYWORDS[] = { L"* ", L"І ", L"А також ", L"Та " }; -static const Keywords uk_and_keywords = { 4, uk_and_KEYWORDS }; - -static const wchar_t* const uk_background_KEYWORDS[] = { L"Передумова" }; -static const Keywords uk_background_keywords = { 1, uk_background_KEYWORDS }; - -static const wchar_t* const uk_but_KEYWORDS[] = { L"* ", L"Але " }; -static const Keywords uk_but_keywords = { 2, uk_but_KEYWORDS }; - -static const wchar_t* const uk_examples_KEYWORDS[] = { L"Приклади" }; -static const Keywords uk_examples_keywords = { 1, uk_examples_KEYWORDS }; - -static const wchar_t* const uk_feature_KEYWORDS[] = { L"Функціонал" }; -static const Keywords uk_feature_keywords = { 1, uk_feature_KEYWORDS }; - -static const wchar_t* const uk_given_KEYWORDS[] = { L"* ", L"Припустимо ", L"Припустимо, що ", L"Нехай ", L"Дано " }; -static const Keywords uk_given_keywords = { 5, uk_given_KEYWORDS }; - -static const wchar_t* const uk_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords uk_rule_keywords = { 1, uk_rule_KEYWORDS }; - -static const wchar_t* const uk_scenario_KEYWORDS[] = { L"Приклад", L"Сценарій" }; -static const Keywords uk_scenario_keywords = { 2, uk_scenario_KEYWORDS }; - -static const wchar_t* const uk_scenarioOutline_KEYWORDS[] = { L"Структура сценарію" }; -static const Keywords uk_scenarioOutline_keywords = { 1, uk_scenarioOutline_KEYWORDS }; - -static const wchar_t* const uk_then_KEYWORDS[] = { L"* ", L"То ", L"Тоді " }; -static const Keywords uk_then_keywords = { 3, uk_then_KEYWORDS }; - -static const wchar_t* const uk_when_KEYWORDS[] = { L"* ", L"Якщо ", L"Коли " }; -static const Keywords uk_when_keywords = { 3, uk_when_KEYWORDS }; - -static const Dialect uk_dialect = { - L"uk", - &uk_and_keywords, - &uk_background_keywords, - &uk_but_keywords, - &uk_examples_keywords, - &uk_feature_keywords, - &uk_given_keywords, - &uk_rule_keywords, - &uk_scenario_keywords, - &uk_scenarioOutline_keywords, - &uk_then_keywords, - &uk_when_keywords }; - -static const wchar_t* const ur_and_KEYWORDS[] = { L"* ", L"اور " }; -static const Keywords ur_and_keywords = { 2, ur_and_KEYWORDS }; - -static const wchar_t* const ur_background_KEYWORDS[] = { L"پس منظر" }; -static const Keywords ur_background_keywords = { 1, ur_background_KEYWORDS }; - -static const wchar_t* const ur_but_KEYWORDS[] = { L"* ", L"لیکن " }; -static const Keywords ur_but_keywords = { 2, ur_but_KEYWORDS }; - -static const wchar_t* const ur_examples_KEYWORDS[] = { L"مثالیں" }; -static const Keywords ur_examples_keywords = { 1, ur_examples_KEYWORDS }; - -static const wchar_t* const ur_feature_KEYWORDS[] = { L"صلاحیت", L"کاروبار کی ضرورت", L"خصوصیت" }; -static const Keywords ur_feature_keywords = { 3, ur_feature_KEYWORDS }; - -static const wchar_t* const ur_given_KEYWORDS[] = { L"* ", L"اگر ", L"بالفرض ", L"فرض کیا " }; -static const Keywords ur_given_keywords = { 4, ur_given_KEYWORDS }; - -static const wchar_t* const ur_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords ur_rule_keywords = { 1, ur_rule_KEYWORDS }; - -static const wchar_t* const ur_scenario_KEYWORDS[] = { L"منظرنامہ" }; -static const Keywords ur_scenario_keywords = { 1, ur_scenario_KEYWORDS }; - -static const wchar_t* const ur_scenarioOutline_KEYWORDS[] = { L"منظر نامے کا خاکہ" }; -static const Keywords ur_scenarioOutline_keywords = { 1, ur_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ur_then_KEYWORDS[] = { L"* ", L"پھر ", L"تب " }; -static const Keywords ur_then_keywords = { 3, ur_then_KEYWORDS }; - -static const wchar_t* const ur_when_KEYWORDS[] = { L"* ", L"جب " }; -static const Keywords ur_when_keywords = { 2, ur_when_KEYWORDS }; - -static const Dialect ur_dialect = { - L"ur", - &ur_and_keywords, - &ur_background_keywords, - &ur_but_keywords, - &ur_examples_keywords, - &ur_feature_keywords, - &ur_given_keywords, - &ur_rule_keywords, - &ur_scenario_keywords, - &ur_scenarioOutline_keywords, - &ur_then_keywords, - &ur_when_keywords }; - -static const wchar_t* const uz_and_KEYWORDS[] = { L"* ", L"Ва " }; -static const Keywords uz_and_keywords = { 2, uz_and_KEYWORDS }; - -static const wchar_t* const uz_background_KEYWORDS[] = { L"Тарих" }; -static const Keywords uz_background_keywords = { 1, uz_background_KEYWORDS }; - -static const wchar_t* const uz_but_KEYWORDS[] = { L"* ", L"Лекин ", L"Бирок ", L"Аммо " }; -static const Keywords uz_but_keywords = { 4, uz_but_KEYWORDS }; - -static const wchar_t* const uz_examples_KEYWORDS[] = { L"Мисоллар" }; -static const Keywords uz_examples_keywords = { 1, uz_examples_KEYWORDS }; - -static const wchar_t* const uz_feature_KEYWORDS[] = { L"Функционал" }; -static const Keywords uz_feature_keywords = { 1, uz_feature_KEYWORDS }; - -static const wchar_t* const uz_given_KEYWORDS[] = { L"* ", L"Belgilangan " }; -static const Keywords uz_given_keywords = { 2, uz_given_KEYWORDS }; - -static const wchar_t* const uz_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords uz_rule_keywords = { 1, uz_rule_KEYWORDS }; - -static const wchar_t* const uz_scenario_KEYWORDS[] = { L"Сценарий" }; -static const Keywords uz_scenario_keywords = { 1, uz_scenario_KEYWORDS }; - -static const wchar_t* const uz_scenarioOutline_KEYWORDS[] = { L"Сценарий структураси" }; -static const Keywords uz_scenarioOutline_keywords = { 1, uz_scenarioOutline_KEYWORDS }; - -static const wchar_t* const uz_then_KEYWORDS[] = { L"* ", L"Унда " }; -static const Keywords uz_then_keywords = { 2, uz_then_KEYWORDS }; - -static const wchar_t* const uz_when_KEYWORDS[] = { L"* ", L"Агар " }; -static const Keywords uz_when_keywords = { 2, uz_when_KEYWORDS }; - -static const Dialect uz_dialect = { - L"uz", - &uz_and_keywords, - &uz_background_keywords, - &uz_but_keywords, - &uz_examples_keywords, - &uz_feature_keywords, - &uz_given_keywords, - &uz_rule_keywords, - &uz_scenario_keywords, - &uz_scenarioOutline_keywords, - &uz_then_keywords, - &uz_when_keywords }; - -static const wchar_t* const vi_and_KEYWORDS[] = { L"* ", L"Và " }; -static const Keywords vi_and_keywords = { 2, vi_and_KEYWORDS }; - -static const wchar_t* const vi_background_KEYWORDS[] = { L"Bối cảnh" }; -static const Keywords vi_background_keywords = { 1, vi_background_KEYWORDS }; - -static const wchar_t* const vi_but_KEYWORDS[] = { L"* ", L"Nhưng " }; -static const Keywords vi_but_keywords = { 2, vi_but_KEYWORDS }; - -static const wchar_t* const vi_examples_KEYWORDS[] = { L"Dữ liệu" }; -static const Keywords vi_examples_keywords = { 1, vi_examples_KEYWORDS }; - -static const wchar_t* const vi_feature_KEYWORDS[] = { L"Tính năng" }; -static const Keywords vi_feature_keywords = { 1, vi_feature_KEYWORDS }; - -static const wchar_t* const vi_given_KEYWORDS[] = { L"* ", L"Biết ", L"Cho " }; -static const Keywords vi_given_keywords = { 3, vi_given_KEYWORDS }; - -static const wchar_t* const vi_rule_KEYWORDS[] = { L"Quy tắc" }; -static const Keywords vi_rule_keywords = { 1, vi_rule_KEYWORDS }; - -static const wchar_t* const vi_scenario_KEYWORDS[] = { L"Tình huống", L"Kịch bản" }; -static const Keywords vi_scenario_keywords = { 2, vi_scenario_KEYWORDS }; - -static const wchar_t* const vi_scenarioOutline_KEYWORDS[] = { L"Khung tình huống", L"Khung kịch bản" }; -static const Keywords vi_scenarioOutline_keywords = { 2, vi_scenarioOutline_KEYWORDS }; - -static const wchar_t* const vi_then_KEYWORDS[] = { L"* ", L"Thì " }; -static const Keywords vi_then_keywords = { 2, vi_then_KEYWORDS }; - -static const wchar_t* const vi_when_KEYWORDS[] = { L"* ", L"Khi " }; -static const Keywords vi_when_keywords = { 2, vi_when_KEYWORDS }; - -static const Dialect vi_dialect = { - L"vi", - &vi_and_keywords, - &vi_background_keywords, - &vi_but_keywords, - &vi_examples_keywords, - &vi_feature_keywords, - &vi_given_keywords, - &vi_rule_keywords, - &vi_scenario_keywords, - &vi_scenarioOutline_keywords, - &vi_then_keywords, - &vi_when_keywords }; - -static const wchar_t* const zh_CN_and_KEYWORDS[] = { L"* ", L"而且", L"并且", L"同时" }; -static const Keywords zh_CN_and_keywords = { 4, zh_CN_and_KEYWORDS }; - -static const wchar_t* const zh_CN_background_KEYWORDS[] = { L"背景" }; -static const Keywords zh_CN_background_keywords = { 1, zh_CN_background_KEYWORDS }; - -static const wchar_t* const zh_CN_but_KEYWORDS[] = { L"* ", L"但是" }; -static const Keywords zh_CN_but_keywords = { 2, zh_CN_but_KEYWORDS }; - -static const wchar_t* const zh_CN_examples_KEYWORDS[] = { L"例子" }; -static const Keywords zh_CN_examples_keywords = { 1, zh_CN_examples_KEYWORDS }; - -static const wchar_t* const zh_CN_feature_KEYWORDS[] = { L"功能" }; -static const Keywords zh_CN_feature_keywords = { 1, zh_CN_feature_KEYWORDS }; - -static const wchar_t* const zh_CN_given_KEYWORDS[] = { L"* ", L"假如", L"假设", L"假定" }; -static const Keywords zh_CN_given_keywords = { 4, zh_CN_given_KEYWORDS }; - -static const wchar_t* const zh_CN_rule_KEYWORDS[] = { L"Rule", L"规则" }; -static const Keywords zh_CN_rule_keywords = { 2, zh_CN_rule_KEYWORDS }; - -static const wchar_t* const zh_CN_scenario_KEYWORDS[] = { L"场景", L"剧本" }; -static const Keywords zh_CN_scenario_keywords = { 2, zh_CN_scenario_KEYWORDS }; - -static const wchar_t* const zh_CN_scenarioOutline_KEYWORDS[] = { L"场景大纲", L"剧本大纲" }; -static const Keywords zh_CN_scenarioOutline_keywords = { 2, zh_CN_scenarioOutline_KEYWORDS }; - -static const wchar_t* const zh_CN_then_KEYWORDS[] = { L"* ", L"那么" }; -static const Keywords zh_CN_then_keywords = { 2, zh_CN_then_KEYWORDS }; - -static const wchar_t* const zh_CN_when_KEYWORDS[] = { L"* ", L"当" }; -static const Keywords zh_CN_when_keywords = { 2, zh_CN_when_KEYWORDS }; - -static const Dialect zh_CN_dialect = { - L"zh-CN", - &zh_CN_and_keywords, - &zh_CN_background_keywords, - &zh_CN_but_keywords, - &zh_CN_examples_keywords, - &zh_CN_feature_keywords, - &zh_CN_given_keywords, - &zh_CN_rule_keywords, - &zh_CN_scenario_keywords, - &zh_CN_scenarioOutline_keywords, - &zh_CN_then_keywords, - &zh_CN_when_keywords }; - -static const wchar_t* const ml_and_KEYWORDS[] = { L"* ", L"ഒപ്പം" }; -static const Keywords ml_and_keywords = { 2, ml_and_KEYWORDS }; - -static const wchar_t* const ml_background_KEYWORDS[] = { L"പശ്ചാത്തലം" }; -static const Keywords ml_background_keywords = { 1, ml_background_KEYWORDS }; - -static const wchar_t* const ml_but_KEYWORDS[] = { L"* ", L"പക്ഷേ" }; -static const Keywords ml_but_keywords = { 2, ml_but_KEYWORDS }; - -static const wchar_t* const ml_examples_KEYWORDS[] = { L"ഉദാഹരണങ്ങൾ" }; -static const Keywords ml_examples_keywords = { 1, ml_examples_KEYWORDS }; - -static const wchar_t* const ml_feature_KEYWORDS[] = { L"സവിശേഷത" }; -static const Keywords ml_feature_keywords = { 1, ml_feature_KEYWORDS }; - -static const wchar_t* const ml_given_KEYWORDS[] = { L"* ", L"നൽകിയത്" }; -static const Keywords ml_given_keywords = { 2, ml_given_KEYWORDS }; - -static const wchar_t* const ml_rule_KEYWORDS[] = { L"നിയമം" }; -static const Keywords ml_rule_keywords = { 1, ml_rule_KEYWORDS }; - -static const wchar_t* const ml_scenario_KEYWORDS[] = { L"രംഗം" }; -static const Keywords ml_scenario_keywords = { 1, ml_scenario_KEYWORDS }; - -static const wchar_t* const ml_scenarioOutline_KEYWORDS[] = { L"സാഹചര്യത്തിന്റെ രൂപരേഖ" }; -static const Keywords ml_scenarioOutline_keywords = { 1, ml_scenarioOutline_KEYWORDS }; - -static const wchar_t* const ml_then_KEYWORDS[] = { L"* ", L"പിന്നെ" }; -static const Keywords ml_then_keywords = { 2, ml_then_KEYWORDS }; - -static const wchar_t* const ml_when_KEYWORDS[] = { L"എപ്പോൾ" }; -static const Keywords ml_when_keywords = { 1, ml_when_KEYWORDS }; - -static const Dialect ml_dialect = { - L"ml", - &ml_and_keywords, - &ml_background_keywords, - &ml_but_keywords, - &ml_examples_keywords, - &ml_feature_keywords, - &ml_given_keywords, - &ml_rule_keywords, - &ml_scenario_keywords, - &ml_scenarioOutline_keywords, - &ml_then_keywords, - &ml_when_keywords }; - -static const wchar_t* const zh_TW_and_KEYWORDS[] = { L"* ", L"而且", L"並且", L"同時" }; -static const Keywords zh_TW_and_keywords = { 4, zh_TW_and_KEYWORDS }; - -static const wchar_t* const zh_TW_background_KEYWORDS[] = { L"背景" }; -static const Keywords zh_TW_background_keywords = { 1, zh_TW_background_KEYWORDS }; - -static const wchar_t* const zh_TW_but_KEYWORDS[] = { L"* ", L"但是" }; -static const Keywords zh_TW_but_keywords = { 2, zh_TW_but_KEYWORDS }; - -static const wchar_t* const zh_TW_examples_KEYWORDS[] = { L"例子" }; -static const Keywords zh_TW_examples_keywords = { 1, zh_TW_examples_KEYWORDS }; - -static const wchar_t* const zh_TW_feature_KEYWORDS[] = { L"功能" }; -static const Keywords zh_TW_feature_keywords = { 1, zh_TW_feature_KEYWORDS }; - -static const wchar_t* const zh_TW_given_KEYWORDS[] = { L"* ", L"假如", L"假設", L"假定" }; -static const Keywords zh_TW_given_keywords = { 4, zh_TW_given_KEYWORDS }; - -static const wchar_t* const zh_TW_rule_KEYWORDS[] = { L"Rule" }; -static const Keywords zh_TW_rule_keywords = { 1, zh_TW_rule_KEYWORDS }; - -static const wchar_t* const zh_TW_scenario_KEYWORDS[] = { L"場景", L"劇本" }; -static const Keywords zh_TW_scenario_keywords = { 2, zh_TW_scenario_KEYWORDS }; - -static const wchar_t* const zh_TW_scenarioOutline_KEYWORDS[] = { L"場景大綱", L"劇本大綱" }; -static const Keywords zh_TW_scenarioOutline_keywords = { 2, zh_TW_scenarioOutline_KEYWORDS }; - -static const wchar_t* const zh_TW_then_KEYWORDS[] = { L"* ", L"那麼" }; -static const Keywords zh_TW_then_keywords = { 2, zh_TW_then_KEYWORDS }; - -static const wchar_t* const zh_TW_when_KEYWORDS[] = { L"* ", L"當" }; -static const Keywords zh_TW_when_keywords = { 2, zh_TW_when_KEYWORDS }; - -static const Dialect zh_TW_dialect = { - L"zh-TW", - &zh_TW_and_keywords, - &zh_TW_background_keywords, - &zh_TW_but_keywords, - &zh_TW_examples_keywords, - &zh_TW_feature_keywords, - &zh_TW_given_keywords, - &zh_TW_rule_keywords, - &zh_TW_scenario_keywords, - &zh_TW_scenarioOutline_keywords, - &zh_TW_then_keywords, - &zh_TW_when_keywords }; - -static const wchar_t* const mr_and_KEYWORDS[] = { L"* ", L"आणि ", L"तसेच " }; -static const Keywords mr_and_keywords = { 3, mr_and_KEYWORDS }; - -static const wchar_t* const mr_background_KEYWORDS[] = { L"पार्श्वभूमी" }; -static const Keywords mr_background_keywords = { 1, mr_background_KEYWORDS }; - -static const wchar_t* const mr_but_KEYWORDS[] = { L"* ", L"पण ", L"परंतु " }; -static const Keywords mr_but_keywords = { 3, mr_but_KEYWORDS }; - -static const wchar_t* const mr_examples_KEYWORDS[] = { L"उदाहरण" }; -static const Keywords mr_examples_keywords = { 1, mr_examples_KEYWORDS }; - -static const wchar_t* const mr_feature_KEYWORDS[] = { L"वैशिष्ट्य", L"सुविधा" }; -static const Keywords mr_feature_keywords = { 2, mr_feature_KEYWORDS }; - -static const wchar_t* const mr_given_KEYWORDS[] = { L"* ", L"जर", L"दिलेल्या प्रमाणे " }; -static const Keywords mr_given_keywords = { 3, mr_given_KEYWORDS }; - -static const wchar_t* const mr_rule_KEYWORDS[] = { L"नियम" }; -static const Keywords mr_rule_keywords = { 1, mr_rule_KEYWORDS }; - -static const wchar_t* const mr_scenario_KEYWORDS[] = { L"परिदृश्य" }; -static const Keywords mr_scenario_keywords = { 1, mr_scenario_KEYWORDS }; - -static const wchar_t* const mr_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; -static const Keywords mr_scenarioOutline_keywords = { 1, mr_scenarioOutline_KEYWORDS }; - -static const wchar_t* const mr_then_KEYWORDS[] = { L"* ", L"मग ", L"तेव्हा " }; -static const Keywords mr_then_keywords = { 3, mr_then_KEYWORDS }; - -static const wchar_t* const mr_when_KEYWORDS[] = { L"* ", L"जेव्हा " }; -static const Keywords mr_when_keywords = { 2, mr_when_KEYWORDS }; - -static const Dialect mr_dialect = { - L"mr", - &mr_and_keywords, - &mr_background_keywords, - &mr_but_keywords, - &mr_examples_keywords, - &mr_feature_keywords, - &mr_given_keywords, - &mr_rule_keywords, - &mr_scenario_keywords, - &mr_scenarioOutline_keywords, - &mr_then_keywords, - &mr_when_keywords }; - -static const wchar_t* const amh_and_KEYWORDS[] = { L"* ", L"እና " }; -static const Keywords amh_and_keywords = { 2, amh_and_KEYWORDS }; - -static const wchar_t* const amh_background_KEYWORDS[] = { L"ቅድመ ሁኔታ", L"መነሻ", L"መነሻ ሀሳብ" }; -static const Keywords amh_background_keywords = { 3, amh_background_KEYWORDS }; - -static const wchar_t* const amh_but_KEYWORDS[] = { L"* ", L"ግን " }; -static const Keywords amh_but_keywords = { 2, amh_but_KEYWORDS }; - -static const wchar_t* const amh_examples_KEYWORDS[] = { L"ምሳሌዎች", L"ሁናቴዎች" }; -static const Keywords amh_examples_keywords = { 2, amh_examples_KEYWORDS }; - -static const wchar_t* const amh_feature_KEYWORDS[] = { L"ስራ", L"የተፈለገው ስራ", L"የሚፈለገው ድርጊት" }; -static const Keywords amh_feature_keywords = { 3, amh_feature_KEYWORDS }; - -static const wchar_t* const amh_given_KEYWORDS[] = { L"* ", L"የተሰጠ " }; -static const Keywords amh_given_keywords = { 2, amh_given_KEYWORDS }; - -static const wchar_t* const amh_rule_KEYWORDS[] = { L"ህግ" }; -static const Keywords amh_rule_keywords = { 1, amh_rule_KEYWORDS }; - -static const wchar_t* const amh_scenario_KEYWORDS[] = { L"ምሳሌ", L"ሁናቴ" }; -static const Keywords amh_scenario_keywords = { 2, amh_scenario_KEYWORDS }; - -static const wchar_t* const amh_scenarioOutline_KEYWORDS[] = { L"ሁናቴ ዝርዝር", L"ሁናቴ አብነት" }; -static const Keywords amh_scenarioOutline_keywords = { 2, amh_scenarioOutline_KEYWORDS }; - -static const wchar_t* const amh_then_KEYWORDS[] = { L"* ", L"ከዚያ " }; -static const Keywords amh_then_keywords = { 2, amh_then_KEYWORDS }; - -static const wchar_t* const amh_when_KEYWORDS[] = { L"* ", L"መቼ " }; -static const Keywords amh_when_keywords = { 2, amh_when_KEYWORDS }; - -static const Dialect amh_dialect = { - L"amh", - &amh_and_keywords, - &amh_background_keywords, - &amh_but_keywords, - &amh_examples_keywords, - &amh_feature_keywords, - &amh_given_keywords, - &amh_rule_keywords, - &amh_scenario_keywords, - &amh_scenarioOutline_keywords, - &amh_then_keywords, - &amh_when_keywords }; - -const Dialect* Dialect_for(const wchar_t* language) { - if (wcscmp(af_dialect.language_name, language) == 0) - return &af_dialect; - if (wcscmp(am_dialect.language_name, language) == 0) - return &am_dialect; - if (wcscmp(an_dialect.language_name, language) == 0) - return &an_dialect; - if (wcscmp(ar_dialect.language_name, language) == 0) - return &ar_dialect; - if (wcscmp(ast_dialect.language_name, language) == 0) - return &ast_dialect; - if (wcscmp(az_dialect.language_name, language) == 0) - return &az_dialect; - if (wcscmp(be_dialect.language_name, language) == 0) - return &be_dialect; - if (wcscmp(bg_dialect.language_name, language) == 0) - return &bg_dialect; - if (wcscmp(bm_dialect.language_name, language) == 0) - return &bm_dialect; - if (wcscmp(bs_dialect.language_name, language) == 0) - return &bs_dialect; - if (wcscmp(ca_dialect.language_name, language) == 0) - return &ca_dialect; - if (wcscmp(cs_dialect.language_name, language) == 0) - return &cs_dialect; - if (wcscmp(cy_GB_dialect.language_name, language) == 0) - return &cy_GB_dialect; - if (wcscmp(da_dialect.language_name, language) == 0) - return &da_dialect; - if (wcscmp(de_dialect.language_name, language) == 0) - return &de_dialect; - if (wcscmp(el_dialect.language_name, language) == 0) - return &el_dialect; - if (wcscmp(em_dialect.language_name, language) == 0) - return &em_dialect; - if (wcscmp(en_dialect.language_name, language) == 0) - return &en_dialect; - if (wcscmp(en_Scouse_dialect.language_name, language) == 0) - return &en_Scouse_dialect; - if (wcscmp(en_au_dialect.language_name, language) == 0) - return &en_au_dialect; - if (wcscmp(en_lol_dialect.language_name, language) == 0) - return &en_lol_dialect; - if (wcscmp(en_old_dialect.language_name, language) == 0) - return &en_old_dialect; - if (wcscmp(en_pirate_dialect.language_name, language) == 0) - return &en_pirate_dialect; - if (wcscmp(en_tx_dialect.language_name, language) == 0) - return &en_tx_dialect; - if (wcscmp(eo_dialect.language_name, language) == 0) - return &eo_dialect; - if (wcscmp(es_dialect.language_name, language) == 0) - return &es_dialect; - if (wcscmp(et_dialect.language_name, language) == 0) - return &et_dialect; - if (wcscmp(fa_dialect.language_name, language) == 0) - return &fa_dialect; - if (wcscmp(fi_dialect.language_name, language) == 0) - return &fi_dialect; - if (wcscmp(fr_dialect.language_name, language) == 0) - return &fr_dialect; - if (wcscmp(ga_dialect.language_name, language) == 0) - return &ga_dialect; - if (wcscmp(gj_dialect.language_name, language) == 0) - return &gj_dialect; - if (wcscmp(gl_dialect.language_name, language) == 0) - return &gl_dialect; - if (wcscmp(he_dialect.language_name, language) == 0) - return &he_dialect; - if (wcscmp(hi_dialect.language_name, language) == 0) - return &hi_dialect; - if (wcscmp(hr_dialect.language_name, language) == 0) - return &hr_dialect; - if (wcscmp(ht_dialect.language_name, language) == 0) - return &ht_dialect; - if (wcscmp(hu_dialect.language_name, language) == 0) - return &hu_dialect; - if (wcscmp(id_dialect.language_name, language) == 0) - return &id_dialect; - if (wcscmp(is_dialect.language_name, language) == 0) - return &is_dialect; - if (wcscmp(it_dialect.language_name, language) == 0) - return &it_dialect; - if (wcscmp(ja_dialect.language_name, language) == 0) - return &ja_dialect; - if (wcscmp(jv_dialect.language_name, language) == 0) - return &jv_dialect; - if (wcscmp(ka_dialect.language_name, language) == 0) - return &ka_dialect; - if (wcscmp(kn_dialect.language_name, language) == 0) - return &kn_dialect; - if (wcscmp(ko_dialect.language_name, language) == 0) - return &ko_dialect; - if (wcscmp(lt_dialect.language_name, language) == 0) - return <_dialect; - if (wcscmp(lu_dialect.language_name, language) == 0) - return &lu_dialect; - if (wcscmp(lv_dialect.language_name, language) == 0) - return &lv_dialect; - if (wcscmp(mk_Cyrl_dialect.language_name, language) == 0) - return &mk_Cyrl_dialect; - if (wcscmp(mk_Latn_dialect.language_name, language) == 0) - return &mk_Latn_dialect; - if (wcscmp(mn_dialect.language_name, language) == 0) - return &mn_dialect; - if (wcscmp(ne_dialect.language_name, language) == 0) - return &ne_dialect; - if (wcscmp(nl_dialect.language_name, language) == 0) - return &nl_dialect; - if (wcscmp(no_dialect.language_name, language) == 0) - return &no_dialect; - if (wcscmp(pa_dialect.language_name, language) == 0) - return &pa_dialect; - if (wcscmp(pl_dialect.language_name, language) == 0) - return &pl_dialect; - if (wcscmp(pt_dialect.language_name, language) == 0) - return &pt_dialect; - if (wcscmp(ro_dialect.language_name, language) == 0) - return &ro_dialect; - if (wcscmp(ru_dialect.language_name, language) == 0) - return &ru_dialect; - if (wcscmp(sk_dialect.language_name, language) == 0) - return &sk_dialect; - if (wcscmp(sl_dialect.language_name, language) == 0) - return &sl_dialect; - if (wcscmp(sr_Cyrl_dialect.language_name, language) == 0) - return &sr_Cyrl_dialect; - if (wcscmp(sr_Latn_dialect.language_name, language) == 0) - return &sr_Latn_dialect; - if (wcscmp(sv_dialect.language_name, language) == 0) - return &sv_dialect; - if (wcscmp(ta_dialect.language_name, language) == 0) - return &ta_dialect; - if (wcscmp(th_dialect.language_name, language) == 0) - return &th_dialect; - if (wcscmp(te_dialect.language_name, language) == 0) - return &te_dialect; - if (wcscmp(tlh_dialect.language_name, language) == 0) - return &tlh_dialect; - if (wcscmp(tr_dialect.language_name, language) == 0) - return &tr_dialect; - if (wcscmp(tt_dialect.language_name, language) == 0) - return &tt_dialect; - if (wcscmp(uk_dialect.language_name, language) == 0) - return &uk_dialect; - if (wcscmp(ur_dialect.language_name, language) == 0) - return &ur_dialect; - if (wcscmp(uz_dialect.language_name, language) == 0) - return &uz_dialect; - if (wcscmp(vi_dialect.language_name, language) == 0) - return &vi_dialect; - if (wcscmp(zh_CN_dialect.language_name, language) == 0) - return &zh_CN_dialect; - if (wcscmp(ml_dialect.language_name, language) == 0) - return &ml_dialect; - if (wcscmp(zh_TW_dialect.language_name, language) == 0) - return &zh_TW_dialect; - if (wcscmp(mr_dialect.language_name, language) == 0) - return &mr_dialect; - if (wcscmp(amh_dialect.language_name, language) == 0) - return &amh_dialect; - return 0; -} - diff --git a/c/src/parser.c b/c/src/parser.c index 008dc756b..5c21399dd 100644 --- a/c/src/parser.c +++ b/c/src/parser.c @@ -396,9 +396,8 @@ static int match_token_at_3(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 4; + return 3; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -456,7 +455,7 @@ 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:0>Description:0>__alt1:0>#Empty: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); @@ -465,10 +464,6 @@ static int match_token_at_4(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 4; - } if (match_Comment(context, token)) { build(context, token); return 4; @@ -520,8 +515,8 @@ static int match_token_at_4(Token* token, ParserContext* context) { return 4; } - /* "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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); if (context->stop_at_first_error) { @@ -537,9 +532,8 @@ static int match_token_at_5(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 6; + return 5; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -596,7 +590,7 @@ static int match_token_at_5(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 5;} -/* GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -605,10 +599,6 @@ static int match_token_at_6(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 6; - } if (match_Comment(context, token)) { build(context, token); return 6; @@ -659,8 +649,8 @@ static int match_token_at_6(Token* token, ParserContext* context) { return 6; } - /* "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #StepLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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) { @@ -860,9 +850,8 @@ static int match_token_at_10(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 11; + return 10; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -937,7 +926,7 @@ static int match_token_at_10(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 10;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -947,10 +936,6 @@ static int match_token_at_11(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 11; - } if (match_Comment(context, token)) { build(context, token); return 11; @@ -1021,8 +1006,8 @@ static int match_token_at_11(Token* token, ParserContext* context) { return 11; } - /* "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #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" */ + 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) { @@ -1268,9 +1253,8 @@ static int match_token_at_15(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 16; + return 15; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -1357,7 +1341,7 @@ static int match_token_at_15(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 15;} -/* GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -1369,10 +1353,6 @@ static int match_token_at_16(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 16; - } if (match_Comment(context, token)) { build(context, token); return 16; @@ -1455,8 +1435,8 @@ static int match_token_at_16(Token* token, ParserContext* context) { return 16; } - /* "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #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" */ + 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) { @@ -1601,9 +1581,8 @@ static int match_token_at_19(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 20; + return 19; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -1663,7 +1642,7 @@ static int match_token_at_19(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 19;} -/* GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -1673,10 +1652,6 @@ static int match_token_at_20(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 20; - } if (match_Comment(context, token)) { build(context, token); return 20; @@ -1730,8 +1705,8 @@ static int match_token_at_20(Token* token, ParserContext* context) { return 20; } - /* "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #Comment, #BackgroundLine, #TagLine, #ScenarioLine, #RuleLine, #Other"; + /* "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) { @@ -1748,9 +1723,8 @@ static int match_token_at_21(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 22; + return 21; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -1809,7 +1783,7 @@ static int match_token_at_21(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 21;} -/* GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -1819,10 +1793,6 @@ static int match_token_at_22(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 22; - } if (match_Comment(context, token)) { build(context, token); return 22; @@ -1875,8 +1845,8 @@ static int match_token_at_22(Token* token, ParserContext* context) { return 22; } - /* "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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) { @@ -2083,9 +2053,8 @@ static int match_token_at_26(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 27; + return 26; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -2162,7 +2131,7 @@ static int match_token_at_26(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 26;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -2173,10 +2142,6 @@ static int match_token_at_27(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 27; - } if (match_Comment(context, token)) { build(context, token); return 27; @@ -2249,8 +2214,8 @@ static int match_token_at_27(Token* token, ParserContext* context) { return 27; } - /* "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #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" */ + 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) { @@ -2503,9 +2468,8 @@ static int match_token_at_31(Token* token, ParserContext* context) { return 34; } if (match_Empty(context, token)) { - start_rule(context, Rule_Description); build(context, token); - return 32; + return 31; } if (match_Comment(context, token)) { start_rule(context, Rule_Description); @@ -2594,7 +2558,7 @@ static int match_token_at_31(Token* token, ParserContext* context) { ErrorList_jump_to_global_rescue_env(context->errors); } return 31;} -/* GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 */ +/* 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); @@ -2607,10 +2571,6 @@ static int match_token_at_32(Token* token, ParserContext* context) { build(context, token); return 34; } - if (match_Empty(context, token)) { - build(context, token); - return 32; - } if (match_Comment(context, token)) { build(context, token); return 32; @@ -2695,8 +2655,8 @@ static int match_token_at_32(Token* token, ParserContext* context) { return 32; } - /* "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" */ - const wchar_t* const expected_tokens = L"#EOF, #Empty, #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" */ + 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) { diff --git a/dotnet/Gherkin/Parser.cs b/dotnet/Gherkin/Parser.cs index 5b3c6399d..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 := Description? - Description, // Description! := (#Empty | #Comment | #Other)+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ } [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] @@ -679,9 +679,8 @@ int MatchTokenAt_3(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 4; + return 3; } if (Match_Comment(context, token)) { @@ -751,7 +750,7 @@ int MatchTokenAt_3(Token token, ParserContext context) return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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)) @@ -762,11 +761,6 @@ int MatchTokenAt_4(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 4; - } if (Match_Comment(context, token)) { Build(context, token); @@ -826,9 +820,9 @@ int MatchTokenAt_4(Token token, ParserContext context) return 4; } - const string stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -850,9 +844,8 @@ int MatchTokenAt_5(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 6; + return 5; } if (Match_Comment(context, token)) { @@ -921,7 +914,7 @@ int MatchTokenAt_5(Token token, ParserContext context) return 5; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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)) @@ -932,11 +925,6 @@ int MatchTokenAt_6(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 6; - } if (Match_Comment(context, token)) { Build(context, token); @@ -995,9 +983,9 @@ int MatchTokenAt_6(Token token, ParserContext context) return 6; } - const string stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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) @@ -1243,9 +1231,8 @@ int MatchTokenAt_10(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 11; + return 10; } if (Match_Comment(context, token)) { @@ -1335,7 +1322,7 @@ int MatchTokenAt_10(Token token, ParserContext context) return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -1347,11 +1334,6 @@ int MatchTokenAt_11(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 11; - } if (Match_Comment(context, token)) { Build(context, token); @@ -1433,9 +1415,9 @@ int MatchTokenAt_11(Token token, ParserContext context) return 11; } - const string stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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) @@ -1733,9 +1715,8 @@ int MatchTokenAt_15(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 16; + return 15; } if (Match_Comment(context, token)) { @@ -1837,7 +1818,7 @@ int MatchTokenAt_15(Token token, ParserContext context) return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -1851,11 +1832,6 @@ int MatchTokenAt_16(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 16; - } if (Match_Comment(context, token)) { Build(context, token); @@ -1949,9 +1925,9 @@ int MatchTokenAt_16(Token token, ParserContext context) return 16; } - const string stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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) @@ -2128,9 +2104,8 @@ int MatchTokenAt_19(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 20; + return 19; } if (Match_Comment(context, token)) { @@ -2202,7 +2177,7 @@ int MatchTokenAt_19(Token token, ParserContext context) return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -2214,11 +2189,6 @@ int MatchTokenAt_20(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 20; - } if (Match_Comment(context, token)) { Build(context, token); @@ -2280,9 +2250,9 @@ int MatchTokenAt_20(Token token, ParserContext context) return 20; } - const string stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; + var expectedTokens = new string[] {"#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"}; var error = token.IsEOF ? (ParserException)new UnexpectedEOFException(token, expectedTokens, stateComment) : new UnexpectedTokenException(token, expectedTokens, stateComment); if (StopAtFirstError) @@ -2305,9 +2275,8 @@ int MatchTokenAt_21(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 22; + return 21; } if (Match_Comment(context, token)) { @@ -2378,7 +2347,7 @@ int MatchTokenAt_21(Token token, ParserContext context) return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -2390,11 +2359,6 @@ int MatchTokenAt_22(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 22; - } if (Match_Comment(context, token)) { Build(context, token); @@ -2455,9 +2419,9 @@ int MatchTokenAt_22(Token token, ParserContext context) return 22; } - const string stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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) @@ -2710,9 +2674,8 @@ int MatchTokenAt_26(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 27; + return 26; } if (Match_Comment(context, token)) { @@ -2804,7 +2767,7 @@ int MatchTokenAt_26(Token token, ParserContext context) return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -2817,11 +2780,6 @@ int MatchTokenAt_27(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 27; - } if (Match_Comment(context, token)) { Build(context, token); @@ -2905,9 +2863,9 @@ int MatchTokenAt_27(Token token, ParserContext context) return 27; } - const string stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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) @@ -3212,9 +3170,8 @@ int MatchTokenAt_31(Token token, ParserContext context) } if (Match_Empty(context, token)) { - StartRule(context, RuleType.Description); Build(context, token); - return 32; + return 31; } if (Match_Comment(context, token)) { @@ -3318,7 +3275,7 @@ int MatchTokenAt_31(Token token, ParserContext context) return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) @@ -3333,11 +3290,6 @@ int MatchTokenAt_32(Token token, ParserContext context) Build(context, token); return 34; } - if (Match_Empty(context, token)) - { - Build(context, token); - return 32; - } if (Match_Comment(context, token)) { Build(context, token); @@ -3433,9 +3385,9 @@ int MatchTokenAt_32(Token token, ParserContext context) return 32; } - const string stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"}; + 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) diff --git a/elixir/lib/gherkin/parser.ex b/elixir/lib/gherkin/parser.ex index 580cbcd84..5e13bb8cb 100644 --- a/elixir/lib/gherkin/parser.ex +++ b/elixir/lib/gherkin/parser.ex @@ -201,10 +201,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(4) + update_next_state(3) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -276,11 +275,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(4) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -339,8 +333,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(4) true -> - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 end @@ -356,10 +350,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(6) + update_next_state(5) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -430,11 +423,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(6) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -492,8 +480,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(6) true -> - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -710,10 +698,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(11) + update_next_state(10) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -805,11 +792,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(11) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -889,8 +871,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(11) true -> - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1157,10 +1139,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(16) + update_next_state(15) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -1266,11 +1247,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(16) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -1362,8 +1338,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(16) true -> - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1518,10 +1494,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(20) + update_next_state(19) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -1596,11 +1571,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(20) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -1661,8 +1631,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(20) true -> - state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1679,10 +1649,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(22) + update_next_state(21) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -1756,11 +1725,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(22) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -1820,8 +1784,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(22) true -> - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -2045,10 +2009,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(27) + update_next_state(26) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -2143,11 +2106,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(27) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -2229,8 +2187,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(27) true -> - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -2504,10 +2462,9 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(34) TokenMatcher.match?(Empty , line, context) -> TokenMatcher.parse(Empty , line, context) |> - AstBuilder.start_rule(Description) |> - AstBuilder.build() |> + AstBuilder.build() |> - update_next_state(32) + update_next_state(31) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.start_rule(Description) |> @@ -2616,11 +2573,6 @@ TokenMatcher.match?(EOF , line, context) -> AstBuilder.build() |> update_next_state(34) - TokenMatcher.match?(Empty , line, context) -> - TokenMatcher.parse(Empty , line, context) |> - AstBuilder.build() |> - - update_next_state(32) TokenMatcher.match?(Comment , line, context) -> TokenMatcher.parse(Comment , line, context) |> AstBuilder.build() |> @@ -2714,8 +2666,8 @@ TokenMatcher.match?(EOF , line, context) -> update_next_state(32) true -> - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - expected_tokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 diff --git a/gherkin.berp b/gherkin.berp index a14e0ba9f..b7edaf9c4 100644 --- a/gherkin.berp +++ b/gherkin.berp @@ -34,5 +34,5 @@ Tags! := #TagLine+ // descriptions should be allowed to be interspersed with comments and empty lines // if only comments and empty lines are encountered, the description text will be empty -DescriptionHelper := Description? -Description! := (#Empty | #Comment | #Other)+ +DescriptionHelper := #Empty* Description? +Description! := (#Other| #Comment)+ diff --git a/go/parser.go b/go/parser.go index 9d255c381..c619dc6a6 100644 --- a/go/parser.go +++ b/go/parser.go @@ -551,9 +551,8 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 4, err + return 3, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -621,7 +620,7 @@ func (ctxt *parseContext) matchAt3(line *Line) (newState int, err error) { return 3, err } -// GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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) @@ -630,10 +629,6 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 4, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 4, err @@ -685,8 +680,8 @@ func (ctxt *parseContext) matchAt4(line *Line) (newState int, err error) { return 4, err } - // var stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -712,9 +707,8 @@ func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 6, err + return 5, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -781,7 +775,7 @@ func (ctxt *parseContext) matchAt5(line *Line) (newState int, err error) { return 5, err } -// GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -790,10 +784,6 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 6, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 6, err @@ -844,8 +834,8 @@ func (ctxt *parseContext) matchAt6(line *Line) (newState int, err error) { return 6, err } - // var stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1085,9 +1075,8 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 11, err + return 10, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -1172,7 +1161,7 @@ func (ctxt *parseContext) matchAt10(line *Line) (newState int, err error) { return 10, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -1182,10 +1171,6 @@ func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 11, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 11, err @@ -1256,8 +1241,8 @@ func (ctxt *parseContext) matchAt11(line *Line) (newState int, err error) { return 11, err } - // var stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1543,9 +1528,8 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 16, err + return 15, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -1642,7 +1626,7 @@ func (ctxt *parseContext) matchAt15(line *Line) (newState int, err error) { return 15, err } -// GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -1654,10 +1638,6 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 16, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 16, err @@ -1740,8 +1720,8 @@ func (ctxt *parseContext) matchAt16(line *Line) (newState int, err error) { return 16, err } - // var stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -1916,9 +1896,8 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 20, err + return 19, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -1988,7 +1967,7 @@ func (ctxt *parseContext) matchAt19(line *Line) (newState int, err error) { return 19, err } -// GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -1998,10 +1977,6 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 20, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 20, err @@ -2055,8 +2030,8 @@ func (ctxt *parseContext) matchAt20(line *Line) (newState int, err error) { return 20, err } - // var stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2083,9 +2058,8 @@ func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 22, err + return 21, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -2154,7 +2128,7 @@ func (ctxt *parseContext) matchAt21(line *Line) (newState int, err error) { return 21, err } -// GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -2164,10 +2138,6 @@ func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 22, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 22, err @@ -2220,8 +2190,8 @@ func (ctxt *parseContext) matchAt22(line *Line) (newState int, err error) { return 22, err } - // var stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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, ", ")), @@ -2468,9 +2438,8 @@ func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 27, err + return 26, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -2557,7 +2526,7 @@ func (ctxt *parseContext) matchAt26(line *Line) (newState int, err error) { return 26, err } -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -2568,10 +2537,6 @@ func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 27, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 27, err @@ -2644,8 +2609,8 @@ func (ctxt *parseContext) matchAt27(line *Line) (newState int, err error) { return 27, err } - // var stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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{ msg: fmt.Sprintf("unexpected end of file, expected: %s", strings.Join(expectedTokens, ", ")), @@ -2938,9 +2903,8 @@ func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { return 34, err } if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.startRule(RuleTypeDescription) ctxt.build(token) - return 32, err + return 31, err } if ok, token, err := ctxt.matchComment(line); ok { ctxt.startRule(RuleTypeDescription) @@ -3039,7 +3003,7 @@ func (ctxt *parseContext) matchAt31(line *Line) (newState int, err error) { return 31, err } -// GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +// 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) @@ -3052,10 +3016,6 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { ctxt.build(token) return 34, err } - if ok, token, err := ctxt.matchEmpty(line); ok { - ctxt.build(token) - return 32, err - } if ok, token, err := ctxt.matchComment(line); ok { ctxt.build(token) return 32, err @@ -3140,8 +3100,8 @@ func (ctxt *parseContext) matchAt32(line *Line) (newState int, err error) { return 32, err } - // var stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" - var expectedTokens = []string{"#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"} + // 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, ", ")), diff --git a/java/src/main/java/io/cucumber/gherkin/Parser.java b/java/src/main/java/io/cucumber/gherkin/Parser.java index 5a07c8a40..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 := Description? - Description, // Description! := (#Empty | #Comment | #Other)+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ ; static RuleType cast(TokenType tokenType) { @@ -585,9 +585,8 @@ private int matchTokenAt_3(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 4; + return 3; } if (match_Comment(context, token)) { @@ -656,7 +655,7 @@ private int matchTokenAt_3(Token token, ParserContext context) { return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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)) { @@ -666,11 +665,6 @@ private int matchTokenAt_4(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 4; - } if (match_Comment(context, token)) { build(context, token); @@ -730,9 +724,9 @@ private int matchTokenAt_4(Token token, ParserContext context) { return 4; } - final String stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); @@ -752,9 +746,8 @@ private int matchTokenAt_5(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 6; + return 5; } if (match_Comment(context, token)) { @@ -822,7 +815,7 @@ private int matchTokenAt_5(Token token, ParserContext context) { return 5; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -832,11 +825,6 @@ private int matchTokenAt_6(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 6; - } if (match_Comment(context, token)) { build(context, token); @@ -895,9 +883,9 @@ private int matchTokenAt_6(Token token, ParserContext context) { return 6; } - final String stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#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); @@ -1135,9 +1123,8 @@ private int matchTokenAt_10(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 11; + return 10; } if (match_Comment(context, token)) { @@ -1226,7 +1213,7 @@ private int matchTokenAt_10(Token token, ParserContext context) { return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -1237,11 +1224,6 @@ private int matchTokenAt_11(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 11; - } if (match_Comment(context, token)) { build(context, token); @@ -1323,9 +1305,9 @@ private int matchTokenAt_11(Token token, ParserContext context) { return 11; } - final String stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + 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); @@ -1615,9 +1597,8 @@ private int matchTokenAt_15(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 16; + return 15; } if (match_Comment(context, token)) { @@ -1718,7 +1699,7 @@ private int matchTokenAt_15(Token token, ParserContext context) { return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -1731,11 +1712,6 @@ private int matchTokenAt_16(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 16; - } if (match_Comment(context, token)) { build(context, token); @@ -1829,9 +1805,9 @@ private int matchTokenAt_16(Token token, ParserContext context) { return 16; } - final String stateComment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + 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); @@ -2002,9 +1978,8 @@ private int matchTokenAt_19(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 20; + return 19; } if (match_Comment(context, token)) { @@ -2075,7 +2050,7 @@ private int matchTokenAt_19(Token token, ParserContext context) { return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -2086,11 +2061,6 @@ private int matchTokenAt_20(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 20; - } if (match_Comment(context, token)) { build(context, token); @@ -2152,9 +2122,9 @@ private int matchTokenAt_20(Token token, ParserContext context) { return 20; } - final String stateComment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); + List expectedTokens = asList("#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"); ParserException error = token.isEOF() ? new ParserException.UnexpectedEOFException(token, expectedTokens, stateComment) : new ParserException.UnexpectedTokenException(token, expectedTokens, stateComment); @@ -2175,9 +2145,8 @@ private int matchTokenAt_21(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 22; + return 21; } if (match_Comment(context, token)) { @@ -2247,7 +2216,7 @@ private int matchTokenAt_21(Token token, ParserContext context) { return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -2258,11 +2227,6 @@ private int matchTokenAt_22(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 22; - } if (match_Comment(context, token)) { build(context, token); @@ -2323,9 +2287,9 @@ private int matchTokenAt_22(Token token, ParserContext context) { return 22; } - final String stateComment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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); @@ -2570,9 +2534,8 @@ private int matchTokenAt_26(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 27; + return 26; } if (match_Comment(context, token)) { @@ -2663,7 +2626,7 @@ private int matchTokenAt_26(Token token, ParserContext context) { return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -2675,11 +2638,6 @@ private int matchTokenAt_27(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 27; - } if (match_Comment(context, token)) { build(context, token); @@ -2763,9 +2721,9 @@ private int matchTokenAt_27(Token token, ParserContext context) { return 27; } - final String stateComment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + 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); @@ -3062,9 +3020,8 @@ private int matchTokenAt_31(Token token, ParserContext context) { } if (match_Empty(context, token)) { - startRule(context, RuleType.Description); build(context, token); - return 32; + return 31; } if (match_Comment(context, token)) { @@ -3167,7 +3124,7 @@ private int matchTokenAt_31(Token token, ParserContext context) { return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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)) { @@ -3181,11 +3138,6 @@ private int matchTokenAt_32(Token token, ParserContext context) { build(context, token); return 34; } - if (match_Empty(context, token)) - { - build(context, token); - return 32; - } if (match_Comment(context, token)) { build(context, token); @@ -3281,9 +3233,9 @@ private int matchTokenAt_32(Token token, ParserContext context) { return 32; } - final String stateComment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"); + 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); diff --git a/javascript/src/Parser.ts b/javascript/src/Parser.ts index 3eff41e46..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 := Description? - Description, // Description! := (#Empty | #Comment | #Other)+ + DescriptionHelper, // DescriptionHelper := #Empty* Description? + Description, // Description! := (#Other | #Comment)+ } interface Context { @@ -409,9 +409,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 4; + return 3; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -470,7 +469,7 @@ export default class Parser { this.addError(context, error); return 3; } - // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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); @@ -479,10 +478,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 4; - } if(this.match_Comment(context, token)) { this.build(context, token); return 4; @@ -535,7 +530,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -552,9 +547,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 6; + return 5; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -612,7 +606,7 @@ export default class Parser { this.addError(context, error); return 5; } - // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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); @@ -621,10 +615,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 6; - } if(this.match_Comment(context, token)) { this.build(context, token); return 6; @@ -676,7 +666,7 @@ export default class Parser { } 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); @@ -880,9 +870,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 11; + return 10; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -958,7 +947,7 @@ export default class Parser { this.addError(context, error); return 10; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -968,10 +957,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 11; - } if(this.match_Comment(context, token)) { this.build(context, token); return 11; @@ -1043,7 +1028,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1293,9 +1278,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 16; + return 15; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -1383,7 +1367,7 @@ export default class Parser { this.addError(context, error); return 15; } - // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -1395,10 +1379,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 16; - } if(this.match_Comment(context, token)) { this.build(context, token); return 16; @@ -1482,7 +1462,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1630,9 +1610,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 20; + return 19; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -1693,7 +1672,7 @@ export default class Parser { this.addError(context, error); return 19; } - // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -1703,10 +1682,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 20; - } if(this.match_Comment(context, token)) { this.build(context, token); return 20; @@ -1761,7 +1736,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -1779,9 +1754,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 22; + return 21; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -1841,7 +1815,7 @@ export default class Parser { this.addError(context, error); return 21; } - // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -1851,10 +1825,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 22; - } if(this.match_Comment(context, token)) { this.build(context, token); return 22; @@ -1908,7 +1878,7 @@ export default class Parser { } 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); @@ -2119,9 +2089,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 27; + return 26; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -2199,7 +2168,7 @@ export default class Parser { this.addError(context, error); return 26; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -2210,10 +2179,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 27; - } if(this.match_Comment(context, token)) { this.build(context, token); return 27; @@ -2287,7 +2252,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); @@ -2544,9 +2509,8 @@ export default class Parser { return 34; } if(this.match_Empty(context, token)) { - this.startRule(context, RuleType.Description); this.build(context, token); - return 32; + return 31; } if(this.match_Comment(context, token)) { this.startRule(context, RuleType.Description); @@ -2636,7 +2600,7 @@ export default class Parser { this.addError(context, error); return 31; } - // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + // 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); @@ -2649,10 +2613,6 @@ export default class Parser { this.build(context, token); return 34; } - if(this.match_Empty(context, token)) { - this.build(context, token); - return 32; - } if(this.match_Comment(context, token)) { this.build(context, token); return 32; @@ -2738,7 +2698,7 @@ export default class Parser { } token.detach(); - const expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + const expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; const error = token.isEof ? UnexpectedEOFException.create(token, expectedTokens) : UnexpectedTokenException.create(token, expectedTokens); diff --git a/perl/lib/Gherkin/Generated/Parser.pm b/perl/lib/Gherkin/Generated/Parser.pm index d1343e445..967a82ade 100644 --- a/perl/lib/Gherkin/Generated/Parser.pm +++ b/perl/lib/Gherkin/Generated/Parser.pm @@ -260,9 +260,8 @@ sub match_token_at_3 { ($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 4; + return 3; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -337,7 +336,7 @@ sub match_token_at_3 { return 3; } -# GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -350,12 +349,6 @@ sub match_token_at_4 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 4; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -424,8 +417,8 @@ sub match_token_at_4 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0", + ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], + "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0", ); $self->add_error( $context, $err ); @@ -447,9 +440,8 @@ sub match_token_at_5 { ($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 6; + return 5; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -523,7 +515,7 @@ sub match_token_at_5 { return 5; } -# GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -536,12 +528,6 @@ sub match_token_at_6 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 6; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -609,8 +595,8 @@ sub match_token_at_6 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -877,9 +863,8 @@ sub match_token_at_10 { ($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 11; + return 10; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -975,7 +960,7 @@ sub match_token_at_10 { return 10; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -989,12 +974,6 @@ sub match_token_at_11 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 11; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -1086,8 +1065,8 @@ sub match_token_at_11 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -1408,9 +1387,8 @@ sub match_token_at_15 { ($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 16; + return 15; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -1518,7 +1496,7 @@ sub match_token_at_15 { return 15; } -# GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -1534,12 +1512,6 @@ sub match_token_at_16 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 16; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -1643,8 +1615,8 @@ sub match_token_at_16 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -1833,9 +1805,8 @@ sub match_token_at_19 { ($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 20; + return 19; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -1912,7 +1883,7 @@ sub match_token_at_19 { return 19; } -# GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -1926,12 +1897,6 @@ sub match_token_at_20 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 20; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -2002,8 +1967,8 @@ sub match_token_at_20 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -2026,9 +1991,8 @@ sub match_token_at_21 { ($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 22; + return 21; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -2104,7 +2068,7 @@ sub match_token_at_21 { return 21; } -# GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -2118,12 +2082,6 @@ sub match_token_at_22 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 22; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -2193,8 +2151,8 @@ sub match_token_at_22 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -2468,9 +2426,8 @@ sub match_token_at_26 { ($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 27; + return 26; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -2568,7 +2525,7 @@ sub match_token_at_26 { return 26; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -2583,12 +2540,6 @@ sub match_token_at_27 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 27; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -2682,8 +2633,8 @@ sub match_token_at_27 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); @@ -3011,9 +2962,8 @@ sub match_token_at_31 { ($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 32; + return 31; } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { @@ -3123,7 +3073,7 @@ sub match_token_at_31 { return 31; } -# GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 +# 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 ); @@ -3140,12 +3090,6 @@ sub match_token_at_32 { $self->_build($context, $token); return 34; } - ($ok, $err) = $context->token_matcher->match_Empty($token); - if ($ok) { - $self->add_error( $context, $err ) if $err; - $self->_build($context, $token); - return 32; - } ($ok, $err) = $context->token_matcher->match_Comment($token); if ($ok) { $self->add_error( $context, $err ) if $err; @@ -3251,8 +3195,8 @@ sub match_token_at_32 { $token->detach; $err = $self->_construct_parser_error( $token, - ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"], - "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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 ); diff --git a/python/gherkin/parser.py b/python/gherkin/parser.py index 1bd413677..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 := Description? - 'Description', # Description! := (#Empty | #Comment | #Other)+ + 'DescriptionHelper', # DescriptionHelper := #Empty* Description? + 'Description', # Description! := (#Other | #Comment)+ ] @@ -324,9 +324,8 @@ def match_token_at_3(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 4 + return 3 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -375,7 +374,7 @@ 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:0>Description:0>__alt1:0>#Empty: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') @@ -383,9 +382,6 @@ def match_token_at_4(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 4 if self.match_Comment(context, token): self.build(context, token) return 4 @@ -429,9 +425,9 @@ def match_token_at_4(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 4 - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -445,9 +441,8 @@ def match_token_at_5(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 6 + return 5 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -495,7 +490,7 @@ def match_token_at_5(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 5 - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -503,9 +498,6 @@ def match_token_at_6(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 6 if self.match_Comment(context, token): self.build(context, token) return 6 @@ -548,9 +540,9 @@ def match_token_at_6(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 6 - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -723,9 +715,8 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 11 + return 10 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -788,7 +779,7 @@ def match_token_at_10(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 10 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -797,9 +788,6 @@ def match_token_at_11(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 11 if self.match_Comment(context, token): self.build(context, token) return 11 @@ -859,9 +847,9 @@ def match_token_at_11(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 11 - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1074,9 +1062,8 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 16 + return 15 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -1151,7 +1138,7 @@ def match_token_at_15(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 15 - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -1162,9 +1149,6 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 16 if self.match_Comment(context, token): self.build(context, token) return 16 @@ -1236,9 +1220,9 @@ def match_token_at_16(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 16 - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1365,9 +1349,8 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 20 + return 19 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -1418,7 +1401,7 @@ def match_token_at_19(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 19 - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -1427,9 +1410,6 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 20 if self.match_Comment(context, token): self.build(context, token) return 20 @@ -1475,9 +1455,9 @@ def match_token_at_20(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 20 - state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1492,9 +1472,8 @@ def match_token_at_21(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 22 + return 21 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -1544,7 +1523,7 @@ def match_token_at_21(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 21 - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -1553,9 +1532,6 @@ def match_token_at_22(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 22 if self.match_Comment(context, token): self.build(context, token) return 22 @@ -1600,9 +1576,9 @@ def match_token_at_22(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 22 - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -1782,9 +1758,8 @@ def match_token_at_26(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 27 + return 26 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -1849,7 +1824,7 @@ def match_token_at_26(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 26 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -1859,9 +1834,6 @@ def match_token_at_27(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 27 if self.match_Comment(context, token): self.build(context, token) return 27 @@ -1923,9 +1895,9 @@ def match_token_at_27(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 27 - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 @@ -2145,9 +2117,8 @@ def match_token_at_31(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 34 if self.match_Empty(context, token): - self.start_rule(context, 'Description') self.build(context, token) - return 32 + return 31 if self.match_Comment(context, token): self.start_rule(context, 'Description') self.build(context, token) @@ -2224,7 +2195,7 @@ def match_token_at_31(self, token: Token, context: ParserContext) -> int: raise error self.add_error(context, error) return 31 - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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') @@ -2236,9 +2207,6 @@ def match_token_at_32(self, token: Token, context: ParserContext) -> int: self.end_rule(context, 'Feature') self.build(context, token) return 34 - if self.match_Empty(context, token): - self.build(context, token) - return 32 if self.match_Comment(context, token): self.build(context, token) return 32 @@ -2312,9 +2280,9 @@ def match_token_at_32(self, token: Token, context: ParserContext) -> int: self.build(context, token) return 32 - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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 diff --git a/ruby/lib/gherkin/parser.rb b/ruby/lib/gherkin/parser.rb index 7693a0970..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 := Description? - :Description, # Description! := (#Empty | #Comment | #Other)+ + :DescriptionHelper, # DescriptionHelper := #Empty* Description? + :Description, # Description! := (#Other | #Comment)+ ] class ParserContext @@ -415,9 +415,8 @@ def match_token_at_state3(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 4 + return 3 end if match_Comment(context, token) start_rule(context, :Description); @@ -475,7 +474,7 @@ def match_token_at_state3(token, context) add_error(context, error) return 3 end - # GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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); @@ -484,10 +483,6 @@ def match_token_at_state4(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 4 - end if match_Comment(context, token) build(context, token); return 4 @@ -539,9 +534,9 @@ def match_token_at_state4(token, context) return 4 end - state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + state_comment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -556,9 +551,8 @@ def match_token_at_state5(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 6 + return 5 end if match_Comment(context, token) start_rule(context, :Description); @@ -615,7 +609,7 @@ def match_token_at_state5(token, context) add_error(context, error) return 5 end - # GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -624,10 +618,6 @@ def match_token_at_state6(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 6 - end if match_Comment(context, token) build(context, token); return 6 @@ -678,9 +668,9 @@ def match_token_at_state6(token, context) return 6 end - state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0" + state_comment = "State: 6 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>__alt1:0>#Other:0" token.detach - expected_tokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -879,9 +869,8 @@ def match_token_at_state10(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 11 + return 10 end if match_Comment(context, token) start_rule(context, :Description); @@ -956,7 +945,7 @@ def match_token_at_state10(token, context) add_error(context, error) return 10 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -966,10 +955,6 @@ def match_token_at_state11(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 11 - end if match_Comment(context, token) build(context, token); return 11 @@ -1040,9 +1025,9 @@ def match_token_at_state11(token, context) return 11 end - state_comment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -1287,9 +1272,8 @@ def match_token_at_state15(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 16 + return 15 end if match_Comment(context, token) start_rule(context, :Description); @@ -1376,7 +1360,7 @@ def match_token_at_state15(token, context) add_error(context, error) return 15 end - # GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -1388,10 +1372,6 @@ def match_token_at_state16(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 16 - end if match_Comment(context, token) build(context, token); return 16 @@ -1474,9 +1454,9 @@ def match_token_at_state16(token, context) return 16 end - state_comment = "State: 16 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -1620,9 +1600,8 @@ def match_token_at_state19(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 20 + return 19 end if match_Comment(context, token) start_rule(context, :Description); @@ -1682,7 +1661,7 @@ def match_token_at_state19(token, context) add_error(context, error) return 19 end - # GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -1692,10 +1671,6 @@ def match_token_at_state20(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 20 - end if match_Comment(context, token) build(context, token); return 20 @@ -1749,9 +1724,9 @@ def match_token_at_state20(token, context) return 20 end - state_comment = "State: 20 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -1767,9 +1742,8 @@ def match_token_at_state21(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 22 + return 21 end if match_Comment(context, token) start_rule(context, :Description); @@ -1828,7 +1802,7 @@ def match_token_at_state21(token, context) add_error(context, error) return 21 end - # GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -1838,10 +1812,6 @@ def match_token_at_state22(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 22 - end if match_Comment(context, token) build(context, token); return 22 @@ -1894,9 +1864,9 @@ def match_token_at_state22(token, context) return 22 end - state_comment = "State: 22 - GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -2102,9 +2072,8 @@ def match_token_at_state26(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 27 + return 26 end if match_Comment(context, token) start_rule(context, :Description); @@ -2181,7 +2150,7 @@ def match_token_at_state26(token, context) add_error(context, error) return 26 end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -2192,10 +2161,6 @@ def match_token_at_state27(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 27 - end if match_Comment(context, token) build(context, token); return 27 @@ -2268,9 +2233,9 @@ def match_token_at_state27(token, context) return 27 end - state_comment = "State: 27 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) @@ -2522,9 +2487,8 @@ def match_token_at_state31(token, context) return 34 end if match_Empty(context, token) - start_rule(context, :Description); build(context, token); - return 32 + return 31 end if match_Comment(context, token) start_rule(context, :Description); @@ -2613,7 +2577,7 @@ def match_token_at_state31(token, context) add_error(context, error) return 31 end - # GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty:0 + # 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); @@ -2626,10 +2590,6 @@ def match_token_at_state32(token, context) build(context, token); return 34 end - if match_Empty(context, token) - build(context, token); - return 32 - end if match_Comment(context, token) build(context, token); return 32 @@ -2714,9 +2674,9 @@ def match_token_at_state32(token, context) return 32 end - state_comment = "State: 32 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:1>DescriptionHelper:0>Description:0>__alt1:0>#Empty: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", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"] + 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) From b189f0828fba1afbcf4fdfd81a59582cd4dcf312 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Wed, 11 Dec 2024 12:07:14 +0100 Subject: [PATCH 06/12] fix RuleType.php --- php/src-generated/Parser/RuleType.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)+ } From 58a588059665521c16b883ea0f991518e0d2d428 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Wed, 11 Dec 2024 12:10:41 +0100 Subject: [PATCH 07/12] fix c/gherkin.berp --- c/gherkin.berp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c/gherkin.berp b/c/gherkin.berp index a1f7ecda3..ed52faf3d 100644 --- a/c/gherkin.berp +++ b/c/gherkin.berp @@ -34,5 +34,5 @@ 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+ +DescriptionHelper := #Empty* Description? +Description! := (#Other | #Comment)+ From 2a34df35870fd400f5897e08b1fd1cbc905d4736 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Wed, 11 Dec 2024 12:13:36 +0100 Subject: [PATCH 08/12] fix gherkin.berp --- c/gherkin.berp | 4 ++-- gherkin.berp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/c/gherkin.berp b/c/gherkin.berp index ed52faf3d..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 +// 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/gherkin.berp b/gherkin.berp index b7edaf9c4..1b97fce01 100644 --- a/gherkin.berp +++ b/gherkin.berp @@ -32,7 +32,7 @@ DocString! := #DocStringSeparator #Other* #DocStringSeparator Tags! := #TagLine+ -// descriptions should be allowed to be interspersed with comments and empty lines -// if only comments and empty lines are encountered, the description text will be empty +// 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)+ +Description! := (#Other | #Comment)+ From 98429c3ace4f9c6ddee67aa2da11cc145a9a58a8 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Mon, 6 Jan 2025 13:53:47 +0100 Subject: [PATCH 09/12] change trailing Emtpy line in description to Other --- testdata/good/descriptions.feature.tokens | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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/ From 87ba82fcd4e62b1ab42e858e0d303fdd0f6a5efc Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Tue, 7 Jan 2025 11:12:26 +0100 Subject: [PATCH 10/12] add dialect.c --- c/src/dialect.c | 3926 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3926 insertions(+) create mode 100644 c/src/dialect.c diff --git a/c/src/dialect.c b/c/src/dialect.c new file mode 100644 index 000000000..fc5aaa98a --- /dev/null +++ b/c/src/dialect.c @@ -0,0 +1,3926 @@ +#include "dialect.h" + +static const wchar_t* const af_and_KEYWORDS[] = { L"* ", L"En " }; +static const Keywords af_and_keywords = { 2, af_and_KEYWORDS }; + +static const wchar_t* const af_background_KEYWORDS[] = { L"Agtergrond" }; +static const Keywords af_background_keywords = { 1, af_background_KEYWORDS }; + +static const wchar_t* const af_but_KEYWORDS[] = { L"* ", L"Maar " }; +static const Keywords af_but_keywords = { 2, af_but_KEYWORDS }; + +static const wchar_t* const af_examples_KEYWORDS[] = { L"Voorbeelde" }; +static const Keywords af_examples_keywords = { 1, af_examples_KEYWORDS }; + +static const wchar_t* const af_feature_KEYWORDS[] = { L"Funksie", L"Besigheid Behoefte", L"Vermoë" }; +static const Keywords af_feature_keywords = { 3, af_feature_KEYWORDS }; + +static const wchar_t* const af_given_KEYWORDS[] = { L"* ", L"Gegewe " }; +static const Keywords af_given_keywords = { 2, af_given_KEYWORDS }; + +static const wchar_t* const af_rule_KEYWORDS[] = { L"Regel" }; +static const Keywords af_rule_keywords = { 1, af_rule_KEYWORDS }; + +static const wchar_t* const af_scenario_KEYWORDS[] = { L"Voorbeeld", L"Situasie" }; +static const Keywords af_scenario_keywords = { 2, af_scenario_KEYWORDS }; + +static const wchar_t* const af_scenarioOutline_KEYWORDS[] = { L"Situasie Uiteensetting" }; +static const Keywords af_scenarioOutline_keywords = { 1, af_scenarioOutline_KEYWORDS }; + +static const wchar_t* const af_then_KEYWORDS[] = { L"* ", L"Dan " }; +static const Keywords af_then_keywords = { 2, af_then_KEYWORDS }; + +static const wchar_t* const af_when_KEYWORDS[] = { L"* ", L"Wanneer " }; +static const Keywords af_when_keywords = { 2, af_when_KEYWORDS }; + +static const Dialect af_dialect = { + L"af", + &af_and_keywords, + &af_background_keywords, + &af_but_keywords, + &af_examples_keywords, + &af_feature_keywords, + &af_given_keywords, + &af_rule_keywords, + &af_scenario_keywords, + &af_scenarioOutline_keywords, + &af_then_keywords, + &af_when_keywords }; + +static const wchar_t* const am_and_KEYWORDS[] = { L"* ", L"Եվ " }; +static const Keywords am_and_keywords = { 2, am_and_KEYWORDS }; + +static const wchar_t* const am_background_KEYWORDS[] = { L"Կոնտեքստ" }; +static const Keywords am_background_keywords = { 1, am_background_KEYWORDS }; + +static const wchar_t* const am_but_KEYWORDS[] = { L"* ", L"Բայց " }; +static const Keywords am_but_keywords = { 2, am_but_KEYWORDS }; + +static const wchar_t* const am_examples_KEYWORDS[] = { L"Օրինակներ" }; +static const Keywords am_examples_keywords = { 1, am_examples_KEYWORDS }; + +static const wchar_t* const am_feature_KEYWORDS[] = { L"Ֆունկցիոնալություն", L"Հատկություն" }; +static const Keywords am_feature_keywords = { 2, am_feature_KEYWORDS }; + +static const wchar_t* const am_given_KEYWORDS[] = { L"* ", L"Դիցուք " }; +static const Keywords am_given_keywords = { 2, am_given_KEYWORDS }; + +static const wchar_t* const am_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords am_rule_keywords = { 1, am_rule_KEYWORDS }; + +static const wchar_t* const am_scenario_KEYWORDS[] = { L"Օրինակ", L"Սցենար" }; +static const Keywords am_scenario_keywords = { 2, am_scenario_KEYWORDS }; + +static const wchar_t* const am_scenarioOutline_KEYWORDS[] = { L"Սցենարի կառուցվացքը" }; +static const Keywords am_scenarioOutline_keywords = { 1, am_scenarioOutline_KEYWORDS }; + +static const wchar_t* const am_then_KEYWORDS[] = { L"* ", L"Ապա " }; +static const Keywords am_then_keywords = { 2, am_then_KEYWORDS }; + +static const wchar_t* const am_when_KEYWORDS[] = { L"* ", L"Եթե ", L"Երբ " }; +static const Keywords am_when_keywords = { 3, am_when_KEYWORDS }; + +static const Dialect am_dialect = { + L"am", + &am_and_keywords, + &am_background_keywords, + &am_but_keywords, + &am_examples_keywords, + &am_feature_keywords, + &am_given_keywords, + &am_rule_keywords, + &am_scenario_keywords, + &am_scenarioOutline_keywords, + &am_then_keywords, + &am_when_keywords }; + +static const wchar_t* const an_and_KEYWORDS[] = { L"* ", L"Y ", L"E " }; +static const Keywords an_and_keywords = { 3, an_and_KEYWORDS }; + +static const wchar_t* const an_background_KEYWORDS[] = { L"Antecedents" }; +static const Keywords an_background_keywords = { 1, an_background_KEYWORDS }; + +static const wchar_t* const an_but_KEYWORDS[] = { L"* ", L"Pero " }; +static const Keywords an_but_keywords = { 2, an_but_KEYWORDS }; + +static const wchar_t* const an_examples_KEYWORDS[] = { L"Eixemplos" }; +static const Keywords an_examples_keywords = { 1, an_examples_KEYWORDS }; + +static const wchar_t* const an_feature_KEYWORDS[] = { L"Caracteristica" }; +static const Keywords an_feature_keywords = { 1, an_feature_KEYWORDS }; + +static const wchar_t* const an_given_KEYWORDS[] = { L"* ", L"Dau ", L"Dada ", L"Daus ", L"Dadas " }; +static const Keywords an_given_keywords = { 5, an_given_KEYWORDS }; + +static const wchar_t* const an_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords an_rule_keywords = { 1, an_rule_KEYWORDS }; + +static const wchar_t* const an_scenario_KEYWORDS[] = { L"Eixemplo", L"Caso" }; +static const Keywords an_scenario_keywords = { 2, an_scenario_KEYWORDS }; + +static const wchar_t* const an_scenarioOutline_KEYWORDS[] = { L"Esquema del caso" }; +static const Keywords an_scenarioOutline_keywords = { 1, an_scenarioOutline_KEYWORDS }; + +static const wchar_t* const an_then_KEYWORDS[] = { L"* ", L"Alavez ", L"Allora ", L"Antonces " }; +static const Keywords an_then_keywords = { 4, an_then_KEYWORDS }; + +static const wchar_t* const an_when_KEYWORDS[] = { L"* ", L"Cuan " }; +static const Keywords an_when_keywords = { 2, an_when_KEYWORDS }; + +static const Dialect an_dialect = { + L"an", + &an_and_keywords, + &an_background_keywords, + &an_but_keywords, + &an_examples_keywords, + &an_feature_keywords, + &an_given_keywords, + &an_rule_keywords, + &an_scenario_keywords, + &an_scenarioOutline_keywords, + &an_then_keywords, + &an_when_keywords }; + +static const wchar_t* const ar_and_KEYWORDS[] = { L"* ", L"و " }; +static const Keywords ar_and_keywords = { 2, ar_and_KEYWORDS }; + +static const wchar_t* const ar_background_KEYWORDS[] = { L"الخلفية" }; +static const Keywords ar_background_keywords = { 1, ar_background_KEYWORDS }; + +static const wchar_t* const ar_but_KEYWORDS[] = { L"* ", L"لكن " }; +static const Keywords ar_but_keywords = { 2, ar_but_KEYWORDS }; + +static const wchar_t* const ar_examples_KEYWORDS[] = { L"امثلة" }; +static const Keywords ar_examples_keywords = { 1, ar_examples_KEYWORDS }; + +static const wchar_t* const ar_feature_KEYWORDS[] = { L"خاصية" }; +static const Keywords ar_feature_keywords = { 1, ar_feature_KEYWORDS }; + +static const wchar_t* const ar_given_KEYWORDS[] = { L"* ", L"بفرض " }; +static const Keywords ar_given_keywords = { 2, ar_given_KEYWORDS }; + +static const wchar_t* const ar_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ar_rule_keywords = { 1, ar_rule_KEYWORDS }; + +static const wchar_t* const ar_scenario_KEYWORDS[] = { L"مثال", L"سيناريو" }; +static const Keywords ar_scenario_keywords = { 2, ar_scenario_KEYWORDS }; + +static const wchar_t* const ar_scenarioOutline_KEYWORDS[] = { L"سيناريو مخطط" }; +static const Keywords ar_scenarioOutline_keywords = { 1, ar_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ar_then_KEYWORDS[] = { L"* ", L"اذاً ", L"ثم " }; +static const Keywords ar_then_keywords = { 3, ar_then_KEYWORDS }; + +static const wchar_t* const ar_when_KEYWORDS[] = { L"* ", L"متى ", L"عندما " }; +static const Keywords ar_when_keywords = { 3, ar_when_KEYWORDS }; + +static const Dialect ar_dialect = { + L"ar", + &ar_and_keywords, + &ar_background_keywords, + &ar_but_keywords, + &ar_examples_keywords, + &ar_feature_keywords, + &ar_given_keywords, + &ar_rule_keywords, + &ar_scenario_keywords, + &ar_scenarioOutline_keywords, + &ar_then_keywords, + &ar_when_keywords }; + +static const wchar_t* const ast_and_KEYWORDS[] = { L"* ", L"Y ", L"Ya " }; +static const Keywords ast_and_keywords = { 3, ast_and_KEYWORDS }; + +static const wchar_t* const ast_background_KEYWORDS[] = { L"Antecedentes" }; +static const Keywords ast_background_keywords = { 1, ast_background_KEYWORDS }; + +static const wchar_t* const ast_but_KEYWORDS[] = { L"* ", L"Peru " }; +static const Keywords ast_but_keywords = { 2, ast_but_KEYWORDS }; + +static const wchar_t* const ast_examples_KEYWORDS[] = { L"Exemplos" }; +static const Keywords ast_examples_keywords = { 1, ast_examples_KEYWORDS }; + +static const wchar_t* const ast_feature_KEYWORDS[] = { L"Carauterística" }; +static const Keywords ast_feature_keywords = { 1, ast_feature_KEYWORDS }; + +static const wchar_t* const ast_given_KEYWORDS[] = { L"* ", L"Dáu ", L"Dada ", L"Daos ", L"Daes " }; +static const Keywords ast_given_keywords = { 5, ast_given_KEYWORDS }; + +static const wchar_t* const ast_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ast_rule_keywords = { 1, ast_rule_KEYWORDS }; + +static const wchar_t* const ast_scenario_KEYWORDS[] = { L"Exemplo", L"Casu" }; +static const Keywords ast_scenario_keywords = { 2, ast_scenario_KEYWORDS }; + +static const wchar_t* const ast_scenarioOutline_KEYWORDS[] = { L"Esbozu del casu" }; +static const Keywords ast_scenarioOutline_keywords = { 1, ast_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ast_then_KEYWORDS[] = { L"* ", L"Entós " }; +static const Keywords ast_then_keywords = { 2, ast_then_KEYWORDS }; + +static const wchar_t* const ast_when_KEYWORDS[] = { L"* ", L"Cuando " }; +static const Keywords ast_when_keywords = { 2, ast_when_KEYWORDS }; + +static const Dialect ast_dialect = { + L"ast", + &ast_and_keywords, + &ast_background_keywords, + &ast_but_keywords, + &ast_examples_keywords, + &ast_feature_keywords, + &ast_given_keywords, + &ast_rule_keywords, + &ast_scenario_keywords, + &ast_scenarioOutline_keywords, + &ast_then_keywords, + &ast_when_keywords }; + +static const wchar_t* const az_and_KEYWORDS[] = { L"* ", L"Və ", L"Həm " }; +static const Keywords az_and_keywords = { 3, az_and_KEYWORDS }; + +static const wchar_t* const az_background_KEYWORDS[] = { L"Keçmiş", L"Kontekst" }; +static const Keywords az_background_keywords = { 2, az_background_KEYWORDS }; + +static const wchar_t* const az_but_KEYWORDS[] = { L"* ", L"Amma ", L"Ancaq " }; +static const Keywords az_but_keywords = { 3, az_but_KEYWORDS }; + +static const wchar_t* const az_examples_KEYWORDS[] = { L"Nümunələr" }; +static const Keywords az_examples_keywords = { 1, az_examples_KEYWORDS }; + +static const wchar_t* const az_feature_KEYWORDS[] = { L"Özəllik" }; +static const Keywords az_feature_keywords = { 1, az_feature_KEYWORDS }; + +static const wchar_t* const az_given_KEYWORDS[] = { L"* ", L"Tutaq ki ", L"Verilir " }; +static const Keywords az_given_keywords = { 3, az_given_KEYWORDS }; + +static const wchar_t* const az_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords az_rule_keywords = { 1, az_rule_KEYWORDS }; + +static const wchar_t* const az_scenario_KEYWORDS[] = { L"Nümunə", L"Ssenari" }; +static const Keywords az_scenario_keywords = { 2, az_scenario_KEYWORDS }; + +static const wchar_t* const az_scenarioOutline_KEYWORDS[] = { L"Ssenarinin strukturu" }; +static const Keywords az_scenarioOutline_keywords = { 1, az_scenarioOutline_KEYWORDS }; + +static const wchar_t* const az_then_KEYWORDS[] = { L"* ", L"O halda " }; +static const Keywords az_then_keywords = { 2, az_then_KEYWORDS }; + +static const wchar_t* const az_when_KEYWORDS[] = { L"* ", L"Əgər ", L"Nə vaxt ki " }; +static const Keywords az_when_keywords = { 3, az_when_KEYWORDS }; + +static const Dialect az_dialect = { + L"az", + &az_and_keywords, + &az_background_keywords, + &az_but_keywords, + &az_examples_keywords, + &az_feature_keywords, + &az_given_keywords, + &az_rule_keywords, + &az_scenario_keywords, + &az_scenarioOutline_keywords, + &az_then_keywords, + &az_when_keywords }; + +static const wchar_t* const be_and_KEYWORDS[] = { L"* ", L"I ", L"Ды ", L"Таксама " }; +static const Keywords be_and_keywords = { 4, be_and_KEYWORDS }; + +static const wchar_t* const be_background_KEYWORDS[] = { L"Кантэкст" }; +static const Keywords be_background_keywords = { 1, be_background_KEYWORDS }; + +static const wchar_t* const be_but_KEYWORDS[] = { L"* ", L"Але ", L"Інакш " }; +static const Keywords be_but_keywords = { 3, be_but_KEYWORDS }; + +static const wchar_t* const be_examples_KEYWORDS[] = { L"Прыклады" }; +static const Keywords be_examples_keywords = { 1, be_examples_KEYWORDS }; + +static const wchar_t* const be_feature_KEYWORDS[] = { L"Функцыянальнасць", L"Фіча" }; +static const Keywords be_feature_keywords = { 2, be_feature_KEYWORDS }; + +static const wchar_t* const be_given_KEYWORDS[] = { L"* ", L"Няхай ", L"Дадзена " }; +static const Keywords be_given_keywords = { 3, be_given_KEYWORDS }; + +static const wchar_t* const be_rule_KEYWORDS[] = { L"Правілы" }; +static const Keywords be_rule_keywords = { 1, be_rule_KEYWORDS }; + +static const wchar_t* const be_scenario_KEYWORDS[] = { L"Сцэнарый", L"Cцэнар" }; +static const Keywords be_scenario_keywords = { 2, be_scenario_KEYWORDS }; + +static const wchar_t* const be_scenarioOutline_KEYWORDS[] = { L"Шаблон сцэнарыя", L"Узор сцэнара" }; +static const Keywords be_scenarioOutline_keywords = { 2, be_scenarioOutline_KEYWORDS }; + +static const wchar_t* const be_then_KEYWORDS[] = { L"* ", L"Тады " }; +static const Keywords be_then_keywords = { 2, be_then_KEYWORDS }; + +static const wchar_t* const be_when_KEYWORDS[] = { L"* ", L"Калі " }; +static const Keywords be_when_keywords = { 2, be_when_KEYWORDS }; + +static const Dialect be_dialect = { + L"be", + &be_and_keywords, + &be_background_keywords, + &be_but_keywords, + &be_examples_keywords, + &be_feature_keywords, + &be_given_keywords, + &be_rule_keywords, + &be_scenario_keywords, + &be_scenarioOutline_keywords, + &be_then_keywords, + &be_when_keywords }; + +static const wchar_t* const bg_and_KEYWORDS[] = { L"* ", L"И " }; +static const Keywords bg_and_keywords = { 2, bg_and_KEYWORDS }; + +static const wchar_t* const bg_background_KEYWORDS[] = { L"Предистория" }; +static const Keywords bg_background_keywords = { 1, bg_background_KEYWORDS }; + +static const wchar_t* const bg_but_KEYWORDS[] = { L"* ", L"Но " }; +static const Keywords bg_but_keywords = { 2, bg_but_KEYWORDS }; + +static const wchar_t* const bg_examples_KEYWORDS[] = { L"Примери" }; +static const Keywords bg_examples_keywords = { 1, bg_examples_KEYWORDS }; + +static const wchar_t* const bg_feature_KEYWORDS[] = { L"Функционалност" }; +static const Keywords bg_feature_keywords = { 1, bg_feature_KEYWORDS }; + +static const wchar_t* const bg_given_KEYWORDS[] = { L"* ", L"Дадено " }; +static const Keywords bg_given_keywords = { 2, bg_given_KEYWORDS }; + +static const wchar_t* const bg_rule_KEYWORDS[] = { L"Правило" }; +static const Keywords bg_rule_keywords = { 1, bg_rule_KEYWORDS }; + +static const wchar_t* const bg_scenario_KEYWORDS[] = { L"Пример", L"Сценарий" }; +static const Keywords bg_scenario_keywords = { 2, bg_scenario_KEYWORDS }; + +static const wchar_t* const bg_scenarioOutline_KEYWORDS[] = { L"Рамка на сценарий" }; +static const Keywords bg_scenarioOutline_keywords = { 1, bg_scenarioOutline_KEYWORDS }; + +static const wchar_t* const bg_then_KEYWORDS[] = { L"* ", L"То " }; +static const Keywords bg_then_keywords = { 2, bg_then_KEYWORDS }; + +static const wchar_t* const bg_when_KEYWORDS[] = { L"* ", L"Когато " }; +static const Keywords bg_when_keywords = { 2, bg_when_KEYWORDS }; + +static const Dialect bg_dialect = { + L"bg", + &bg_and_keywords, + &bg_background_keywords, + &bg_but_keywords, + &bg_examples_keywords, + &bg_feature_keywords, + &bg_given_keywords, + &bg_rule_keywords, + &bg_scenario_keywords, + &bg_scenarioOutline_keywords, + &bg_then_keywords, + &bg_when_keywords }; + +static const wchar_t* const bm_and_KEYWORDS[] = { L"* ", L"Dan " }; +static const Keywords bm_and_keywords = { 2, bm_and_KEYWORDS }; + +static const wchar_t* const bm_background_KEYWORDS[] = { L"Latar Belakang" }; +static const Keywords bm_background_keywords = { 1, bm_background_KEYWORDS }; + +static const wchar_t* const bm_but_KEYWORDS[] = { L"* ", L"Tetapi ", L"Tapi " }; +static const Keywords bm_but_keywords = { 3, bm_but_KEYWORDS }; + +static const wchar_t* const bm_examples_KEYWORDS[] = { L"Contoh" }; +static const Keywords bm_examples_keywords = { 1, bm_examples_KEYWORDS }; + +static const wchar_t* const bm_feature_KEYWORDS[] = { L"Fungsi" }; +static const Keywords bm_feature_keywords = { 1, bm_feature_KEYWORDS }; + +static const wchar_t* const bm_given_KEYWORDS[] = { L"* ", L"Diberi ", L"Bagi " }; +static const Keywords bm_given_keywords = { 3, bm_given_KEYWORDS }; + +static const wchar_t* const bm_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords bm_rule_keywords = { 1, bm_rule_KEYWORDS }; + +static const wchar_t* const bm_scenario_KEYWORDS[] = { L"Senario", L"Situasi", L"Keadaan" }; +static const Keywords bm_scenario_keywords = { 3, bm_scenario_KEYWORDS }; + +static const wchar_t* const bm_scenarioOutline_KEYWORDS[] = { L"Kerangka Senario", L"Kerangka Situasi", L"Kerangka Keadaan", L"Garis Panduan Senario" }; +static const Keywords bm_scenarioOutline_keywords = { 4, bm_scenarioOutline_KEYWORDS }; + +static const wchar_t* const bm_then_KEYWORDS[] = { L"* ", L"Maka ", L"Kemudian " }; +static const Keywords bm_then_keywords = { 3, bm_then_KEYWORDS }; + +static const wchar_t* const bm_when_KEYWORDS[] = { L"* ", L"Apabila " }; +static const Keywords bm_when_keywords = { 2, bm_when_KEYWORDS }; + +static const Dialect bm_dialect = { + L"bm", + &bm_and_keywords, + &bm_background_keywords, + &bm_but_keywords, + &bm_examples_keywords, + &bm_feature_keywords, + &bm_given_keywords, + &bm_rule_keywords, + &bm_scenario_keywords, + &bm_scenarioOutline_keywords, + &bm_then_keywords, + &bm_when_keywords }; + +static const wchar_t* const bs_and_KEYWORDS[] = { L"* ", L"I ", L"A " }; +static const Keywords bs_and_keywords = { 3, bs_and_KEYWORDS }; + +static const wchar_t* const bs_background_KEYWORDS[] = { L"Pozadina" }; +static const Keywords bs_background_keywords = { 1, bs_background_KEYWORDS }; + +static const wchar_t* const bs_but_KEYWORDS[] = { L"* ", L"Ali " }; +static const Keywords bs_but_keywords = { 2, bs_but_KEYWORDS }; + +static const wchar_t* const bs_examples_KEYWORDS[] = { L"Primjeri" }; +static const Keywords bs_examples_keywords = { 1, bs_examples_KEYWORDS }; + +static const wchar_t* const bs_feature_KEYWORDS[] = { L"Karakteristika" }; +static const Keywords bs_feature_keywords = { 1, bs_feature_KEYWORDS }; + +static const wchar_t* const bs_given_KEYWORDS[] = { L"* ", L"Dato " }; +static const Keywords bs_given_keywords = { 2, bs_given_KEYWORDS }; + +static const wchar_t* const bs_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords bs_rule_keywords = { 1, bs_rule_KEYWORDS }; + +static const wchar_t* const bs_scenario_KEYWORDS[] = { L"Primjer", L"Scenariju", L"Scenario" }; +static const Keywords bs_scenario_keywords = { 3, bs_scenario_KEYWORDS }; + +static const wchar_t* const bs_scenarioOutline_KEYWORDS[] = { L"Scenariju-obris", L"Scenario-outline" }; +static const Keywords bs_scenarioOutline_keywords = { 2, bs_scenarioOutline_KEYWORDS }; + +static const wchar_t* const bs_then_KEYWORDS[] = { L"* ", L"Zatim " }; +static const Keywords bs_then_keywords = { 2, bs_then_KEYWORDS }; + +static const wchar_t* const bs_when_KEYWORDS[] = { L"* ", L"Kada " }; +static const Keywords bs_when_keywords = { 2, bs_when_KEYWORDS }; + +static const Dialect bs_dialect = { + L"bs", + &bs_and_keywords, + &bs_background_keywords, + &bs_but_keywords, + &bs_examples_keywords, + &bs_feature_keywords, + &bs_given_keywords, + &bs_rule_keywords, + &bs_scenario_keywords, + &bs_scenarioOutline_keywords, + &bs_then_keywords, + &bs_when_keywords }; + +static const wchar_t* const ca_and_KEYWORDS[] = { L"* ", L"I " }; +static const Keywords ca_and_keywords = { 2, ca_and_KEYWORDS }; + +static const wchar_t* const ca_background_KEYWORDS[] = { L"Rerefons", L"Antecedents" }; +static const Keywords ca_background_keywords = { 2, ca_background_KEYWORDS }; + +static const wchar_t* const ca_but_KEYWORDS[] = { L"* ", L"Però " }; +static const Keywords ca_but_keywords = { 2, ca_but_KEYWORDS }; + +static const wchar_t* const ca_examples_KEYWORDS[] = { L"Exemples" }; +static const Keywords ca_examples_keywords = { 1, ca_examples_KEYWORDS }; + +static const wchar_t* const ca_feature_KEYWORDS[] = { L"Característica", L"Funcionalitat" }; +static const Keywords ca_feature_keywords = { 2, ca_feature_KEYWORDS }; + +static const wchar_t* const ca_given_KEYWORDS[] = { L"* ", L"Donat ", L"Donada ", L"Atès ", L"Atesa " }; +static const Keywords ca_given_keywords = { 5, ca_given_KEYWORDS }; + +static const wchar_t* const ca_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ca_rule_keywords = { 1, ca_rule_KEYWORDS }; + +static const wchar_t* const ca_scenario_KEYWORDS[] = { L"Exemple", L"Escenari" }; +static const Keywords ca_scenario_keywords = { 2, ca_scenario_KEYWORDS }; + +static const wchar_t* const ca_scenarioOutline_KEYWORDS[] = { L"Esquema de l'escenari" }; +static const Keywords ca_scenarioOutline_keywords = { 1, ca_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ca_then_KEYWORDS[] = { L"* ", L"Aleshores ", L"Cal " }; +static const Keywords ca_then_keywords = { 3, ca_then_KEYWORDS }; + +static const wchar_t* const ca_when_KEYWORDS[] = { L"* ", L"Quan " }; +static const Keywords ca_when_keywords = { 2, ca_when_KEYWORDS }; + +static const Dialect ca_dialect = { + L"ca", + &ca_and_keywords, + &ca_background_keywords, + &ca_but_keywords, + &ca_examples_keywords, + &ca_feature_keywords, + &ca_given_keywords, + &ca_rule_keywords, + &ca_scenario_keywords, + &ca_scenarioOutline_keywords, + &ca_then_keywords, + &ca_when_keywords }; + +static const wchar_t* const cs_and_KEYWORDS[] = { L"* ", L"A také ", L"A " }; +static const Keywords cs_and_keywords = { 3, cs_and_KEYWORDS }; + +static const wchar_t* const cs_background_KEYWORDS[] = { L"Pozadí", L"Kontext" }; +static const Keywords cs_background_keywords = { 2, cs_background_KEYWORDS }; + +static const wchar_t* const cs_but_KEYWORDS[] = { L"* ", L"Ale " }; +static const Keywords cs_but_keywords = { 2, cs_but_KEYWORDS }; + +static const wchar_t* const cs_examples_KEYWORDS[] = { L"Příklady" }; +static const Keywords cs_examples_keywords = { 1, cs_examples_KEYWORDS }; + +static const wchar_t* const cs_feature_KEYWORDS[] = { L"Požadavek" }; +static const Keywords cs_feature_keywords = { 1, cs_feature_KEYWORDS }; + +static const wchar_t* const cs_given_KEYWORDS[] = { L"* ", L"Pokud ", L"Za předpokladu " }; +static const Keywords cs_given_keywords = { 3, cs_given_KEYWORDS }; + +static const wchar_t* const cs_rule_KEYWORDS[] = { L"Pravidlo" }; +static const Keywords cs_rule_keywords = { 1, cs_rule_KEYWORDS }; + +static const wchar_t* const cs_scenario_KEYWORDS[] = { L"Příklad", L"Scénář" }; +static const Keywords cs_scenario_keywords = { 2, cs_scenario_KEYWORDS }; + +static const wchar_t* const cs_scenarioOutline_KEYWORDS[] = { L"Náčrt Scénáře", L"Osnova scénáře" }; +static const Keywords cs_scenarioOutline_keywords = { 2, cs_scenarioOutline_KEYWORDS }; + +static const wchar_t* const cs_then_KEYWORDS[] = { L"* ", L"Pak " }; +static const Keywords cs_then_keywords = { 2, cs_then_KEYWORDS }; + +static const wchar_t* const cs_when_KEYWORDS[] = { L"* ", L"Když " }; +static const Keywords cs_when_keywords = { 2, cs_when_KEYWORDS }; + +static const Dialect cs_dialect = { + L"cs", + &cs_and_keywords, + &cs_background_keywords, + &cs_but_keywords, + &cs_examples_keywords, + &cs_feature_keywords, + &cs_given_keywords, + &cs_rule_keywords, + &cs_scenario_keywords, + &cs_scenarioOutline_keywords, + &cs_then_keywords, + &cs_when_keywords }; + +static const wchar_t* const cy_GB_and_KEYWORDS[] = { L"* ", L"A " }; +static const Keywords cy_GB_and_keywords = { 2, cy_GB_and_KEYWORDS }; + +static const wchar_t* const cy_GB_background_KEYWORDS[] = { L"Cefndir" }; +static const Keywords cy_GB_background_keywords = { 1, cy_GB_background_KEYWORDS }; + +static const wchar_t* const cy_GB_but_KEYWORDS[] = { L"* ", L"Ond " }; +static const Keywords cy_GB_but_keywords = { 2, cy_GB_but_KEYWORDS }; + +static const wchar_t* const cy_GB_examples_KEYWORDS[] = { L"Enghreifftiau" }; +static const Keywords cy_GB_examples_keywords = { 1, cy_GB_examples_KEYWORDS }; + +static const wchar_t* const cy_GB_feature_KEYWORDS[] = { L"Arwedd" }; +static const Keywords cy_GB_feature_keywords = { 1, cy_GB_feature_KEYWORDS }; + +static const wchar_t* const cy_GB_given_KEYWORDS[] = { L"* ", L"Anrhegedig a " }; +static const Keywords cy_GB_given_keywords = { 2, cy_GB_given_KEYWORDS }; + +static const wchar_t* const cy_GB_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords cy_GB_rule_keywords = { 1, cy_GB_rule_KEYWORDS }; + +static const wchar_t* const cy_GB_scenario_KEYWORDS[] = { L"Enghraifft", L"Scenario" }; +static const Keywords cy_GB_scenario_keywords = { 2, cy_GB_scenario_KEYWORDS }; + +static const wchar_t* const cy_GB_scenarioOutline_KEYWORDS[] = { L"Scenario Amlinellol" }; +static const Keywords cy_GB_scenarioOutline_keywords = { 1, cy_GB_scenarioOutline_KEYWORDS }; + +static const wchar_t* const cy_GB_then_KEYWORDS[] = { L"* ", L"Yna " }; +static const Keywords cy_GB_then_keywords = { 2, cy_GB_then_KEYWORDS }; + +static const wchar_t* const cy_GB_when_KEYWORDS[] = { L"* ", L"Pryd " }; +static const Keywords cy_GB_when_keywords = { 2, cy_GB_when_KEYWORDS }; + +static const Dialect cy_GB_dialect = { + L"cy-GB", + &cy_GB_and_keywords, + &cy_GB_background_keywords, + &cy_GB_but_keywords, + &cy_GB_examples_keywords, + &cy_GB_feature_keywords, + &cy_GB_given_keywords, + &cy_GB_rule_keywords, + &cy_GB_scenario_keywords, + &cy_GB_scenarioOutline_keywords, + &cy_GB_then_keywords, + &cy_GB_when_keywords }; + +static const wchar_t* const da_and_KEYWORDS[] = { L"* ", L"Og " }; +static const Keywords da_and_keywords = { 2, da_and_KEYWORDS }; + +static const wchar_t* const da_background_KEYWORDS[] = { L"Baggrund" }; +static const Keywords da_background_keywords = { 1, da_background_KEYWORDS }; + +static const wchar_t* const da_but_KEYWORDS[] = { L"* ", L"Men " }; +static const Keywords da_but_keywords = { 2, da_but_KEYWORDS }; + +static const wchar_t* const da_examples_KEYWORDS[] = { L"Eksempler" }; +static const Keywords da_examples_keywords = { 1, da_examples_KEYWORDS }; + +static const wchar_t* const da_feature_KEYWORDS[] = { L"Egenskab" }; +static const Keywords da_feature_keywords = { 1, da_feature_KEYWORDS }; + +static const wchar_t* const da_given_KEYWORDS[] = { L"* ", L"Givet " }; +static const Keywords da_given_keywords = { 2, da_given_KEYWORDS }; + +static const wchar_t* const da_rule_KEYWORDS[] = { L"Regel" }; +static const Keywords da_rule_keywords = { 1, da_rule_KEYWORDS }; + +static const wchar_t* const da_scenario_KEYWORDS[] = { L"Eksempel", L"Scenarie" }; +static const Keywords da_scenario_keywords = { 2, da_scenario_KEYWORDS }; + +static const wchar_t* const da_scenarioOutline_KEYWORDS[] = { L"Abstrakt Scenario" }; +static const Keywords da_scenarioOutline_keywords = { 1, da_scenarioOutline_KEYWORDS }; + +static const wchar_t* const da_then_KEYWORDS[] = { L"* ", L"Så " }; +static const Keywords da_then_keywords = { 2, da_then_KEYWORDS }; + +static const wchar_t* const da_when_KEYWORDS[] = { L"* ", L"Når " }; +static const Keywords da_when_keywords = { 2, da_when_KEYWORDS }; + +static const Dialect da_dialect = { + L"da", + &da_and_keywords, + &da_background_keywords, + &da_but_keywords, + &da_examples_keywords, + &da_feature_keywords, + &da_given_keywords, + &da_rule_keywords, + &da_scenario_keywords, + &da_scenarioOutline_keywords, + &da_then_keywords, + &da_when_keywords }; + +static const wchar_t* const de_and_KEYWORDS[] = { L"* ", L"Und " }; +static const Keywords de_and_keywords = { 2, de_and_KEYWORDS }; + +static const wchar_t* const de_background_KEYWORDS[] = { L"Grundlage", L"Hintergrund", L"Voraussetzungen", L"Vorbedingungen" }; +static const Keywords de_background_keywords = { 4, de_background_KEYWORDS }; + +static const wchar_t* const de_but_KEYWORDS[] = { L"* ", L"Aber " }; +static const Keywords de_but_keywords = { 2, de_but_KEYWORDS }; + +static const wchar_t* const de_examples_KEYWORDS[] = { L"Beispiele" }; +static const Keywords de_examples_keywords = { 1, de_examples_KEYWORDS }; + +static const wchar_t* const de_feature_KEYWORDS[] = { L"Funktionalität", L"Funktion" }; +static const Keywords de_feature_keywords = { 2, de_feature_KEYWORDS }; + +static const wchar_t* const de_given_KEYWORDS[] = { L"* ", L"Angenommen ", L"Gegeben sei ", L"Gegeben seien " }; +static const Keywords de_given_keywords = { 4, de_given_KEYWORDS }; + +static const wchar_t* const de_rule_KEYWORDS[] = { L"Rule", L"Regel" }; +static const Keywords de_rule_keywords = { 2, de_rule_KEYWORDS }; + +static const wchar_t* const de_scenario_KEYWORDS[] = { L"Beispiel", L"Szenario" }; +static const Keywords de_scenario_keywords = { 2, de_scenario_KEYWORDS }; + +static const wchar_t* const de_scenarioOutline_KEYWORDS[] = { L"Szenariogrundriss", L"Szenarien" }; +static const Keywords de_scenarioOutline_keywords = { 2, de_scenarioOutline_KEYWORDS }; + +static const wchar_t* const de_then_KEYWORDS[] = { L"* ", L"Dann " }; +static const Keywords de_then_keywords = { 2, de_then_KEYWORDS }; + +static const wchar_t* const de_when_KEYWORDS[] = { L"* ", L"Wenn " }; +static const Keywords de_when_keywords = { 2, de_when_KEYWORDS }; + +static const Dialect de_dialect = { + L"de", + &de_and_keywords, + &de_background_keywords, + &de_but_keywords, + &de_examples_keywords, + &de_feature_keywords, + &de_given_keywords, + &de_rule_keywords, + &de_scenario_keywords, + &de_scenarioOutline_keywords, + &de_then_keywords, + &de_when_keywords }; + +static const wchar_t* const el_and_KEYWORDS[] = { L"* ", L"Και " }; +static const Keywords el_and_keywords = { 2, el_and_KEYWORDS }; + +static const wchar_t* const el_background_KEYWORDS[] = { L"Υπόβαθρο" }; +static const Keywords el_background_keywords = { 1, el_background_KEYWORDS }; + +static const wchar_t* const el_but_KEYWORDS[] = { L"* ", L"Αλλά " }; +static const Keywords el_but_keywords = { 2, el_but_KEYWORDS }; + +static const wchar_t* const el_examples_KEYWORDS[] = { L"Παραδείγματα", L"Σενάρια" }; +static const Keywords el_examples_keywords = { 2, el_examples_KEYWORDS }; + +static const wchar_t* const el_feature_KEYWORDS[] = { L"Δυνατότητα", L"Λειτουργία" }; +static const Keywords el_feature_keywords = { 2, el_feature_KEYWORDS }; + +static const wchar_t* const el_given_KEYWORDS[] = { L"* ", L"Δεδομένου " }; +static const Keywords el_given_keywords = { 2, el_given_KEYWORDS }; + +static const wchar_t* const el_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords el_rule_keywords = { 1, el_rule_KEYWORDS }; + +static const wchar_t* const el_scenario_KEYWORDS[] = { L"Παράδειγμα", L"Σενάριο" }; +static const Keywords el_scenario_keywords = { 2, el_scenario_KEYWORDS }; + +static const wchar_t* const el_scenarioOutline_KEYWORDS[] = { L"Περιγραφή Σεναρίου", L"Περίγραμμα Σεναρίου" }; +static const Keywords el_scenarioOutline_keywords = { 2, el_scenarioOutline_KEYWORDS }; + +static const wchar_t* const el_then_KEYWORDS[] = { L"* ", L"Τότε " }; +static const Keywords el_then_keywords = { 2, el_then_KEYWORDS }; + +static const wchar_t* const el_when_KEYWORDS[] = { L"* ", L"Όταν " }; +static const Keywords el_when_keywords = { 2, el_when_KEYWORDS }; + +static const Dialect el_dialect = { + L"el", + &el_and_keywords, + &el_background_keywords, + &el_but_keywords, + &el_examples_keywords, + &el_feature_keywords, + &el_given_keywords, + &el_rule_keywords, + &el_scenario_keywords, + &el_scenarioOutline_keywords, + &el_then_keywords, + &el_when_keywords }; + +static const wchar_t* const em_and_KEYWORDS[] = { L"* ", L"😂" }; +static const Keywords em_and_keywords = { 2, em_and_KEYWORDS }; + +static const wchar_t* const em_background_KEYWORDS[] = { L"💤" }; +static const Keywords em_background_keywords = { 1, em_background_KEYWORDS }; + +static const wchar_t* const em_but_KEYWORDS[] = { L"* ", L"😔" }; +static const Keywords em_but_keywords = { 2, em_but_KEYWORDS }; + +static const wchar_t* const em_examples_KEYWORDS[] = { L"📓" }; +static const Keywords em_examples_keywords = { 1, em_examples_KEYWORDS }; + +static const wchar_t* const em_feature_KEYWORDS[] = { L"📚" }; +static const Keywords em_feature_keywords = { 1, em_feature_KEYWORDS }; + +static const wchar_t* const em_given_KEYWORDS[] = { L"* ", L"😐" }; +static const Keywords em_given_keywords = { 2, em_given_KEYWORDS }; + +static const wchar_t* const em_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords em_rule_keywords = { 1, em_rule_KEYWORDS }; + +static const wchar_t* const em_scenario_KEYWORDS[] = { L"🥒", L"📕" }; +static const Keywords em_scenario_keywords = { 2, em_scenario_KEYWORDS }; + +static const wchar_t* const em_scenarioOutline_KEYWORDS[] = { L"📖" }; +static const Keywords em_scenarioOutline_keywords = { 1, em_scenarioOutline_KEYWORDS }; + +static const wchar_t* const em_then_KEYWORDS[] = { L"* ", L"🙏" }; +static const Keywords em_then_keywords = { 2, em_then_KEYWORDS }; + +static const wchar_t* const em_when_KEYWORDS[] = { L"* ", L"🎬" }; +static const Keywords em_when_keywords = { 2, em_when_KEYWORDS }; + +static const Dialect em_dialect = { + L"em", + &em_and_keywords, + &em_background_keywords, + &em_but_keywords, + &em_examples_keywords, + &em_feature_keywords, + &em_given_keywords, + &em_rule_keywords, + &em_scenario_keywords, + &em_scenarioOutline_keywords, + &em_then_keywords, + &em_when_keywords }; + +static const wchar_t* const en_and_KEYWORDS[] = { L"* ", L"And " }; +static const Keywords en_and_keywords = { 2, en_and_KEYWORDS }; + +static const wchar_t* const en_background_KEYWORDS[] = { L"Background" }; +static const Keywords en_background_keywords = { 1, en_background_KEYWORDS }; + +static const wchar_t* const en_but_KEYWORDS[] = { L"* ", L"But " }; +static const Keywords en_but_keywords = { 2, en_but_KEYWORDS }; + +static const wchar_t* const en_examples_KEYWORDS[] = { L"Examples", L"Scenarios" }; +static const Keywords en_examples_keywords = { 2, en_examples_KEYWORDS }; + +static const wchar_t* const en_feature_KEYWORDS[] = { L"Feature", L"Business Need", L"Ability" }; +static const Keywords en_feature_keywords = { 3, en_feature_KEYWORDS }; + +static const wchar_t* const en_given_KEYWORDS[] = { L"* ", L"Given " }; +static const Keywords en_given_keywords = { 2, en_given_KEYWORDS }; + +static const wchar_t* const en_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_rule_keywords = { 1, en_rule_KEYWORDS }; + +static const wchar_t* const en_scenario_KEYWORDS[] = { L"Example", L"Scenario" }; +static const Keywords en_scenario_keywords = { 2, en_scenario_KEYWORDS }; + +static const wchar_t* const en_scenarioOutline_KEYWORDS[] = { L"Scenario Outline", L"Scenario Template" }; +static const Keywords en_scenarioOutline_keywords = { 2, en_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_then_KEYWORDS[] = { L"* ", L"Then " }; +static const Keywords en_then_keywords = { 2, en_then_KEYWORDS }; + +static const wchar_t* const en_when_KEYWORDS[] = { L"* ", L"When " }; +static const Keywords en_when_keywords = { 2, en_when_KEYWORDS }; + +static const Dialect en_dialect = { + L"en", + &en_and_keywords, + &en_background_keywords, + &en_but_keywords, + &en_examples_keywords, + &en_feature_keywords, + &en_given_keywords, + &en_rule_keywords, + &en_scenario_keywords, + &en_scenarioOutline_keywords, + &en_then_keywords, + &en_when_keywords }; + +static const wchar_t* const en_Scouse_and_KEYWORDS[] = { L"* ", L"An " }; +static const Keywords en_Scouse_and_keywords = { 2, en_Scouse_and_KEYWORDS }; + +static const wchar_t* const en_Scouse_background_KEYWORDS[] = { L"Dis is what went down" }; +static const Keywords en_Scouse_background_keywords = { 1, en_Scouse_background_KEYWORDS }; + +static const wchar_t* const en_Scouse_but_KEYWORDS[] = { L"* ", L"Buh " }; +static const Keywords en_Scouse_but_keywords = { 2, en_Scouse_but_KEYWORDS }; + +static const wchar_t* const en_Scouse_examples_KEYWORDS[] = { L"Examples" }; +static const Keywords en_Scouse_examples_keywords = { 1, en_Scouse_examples_KEYWORDS }; + +static const wchar_t* const en_Scouse_feature_KEYWORDS[] = { L"Feature" }; +static const Keywords en_Scouse_feature_keywords = { 1, en_Scouse_feature_KEYWORDS }; + +static const wchar_t* const en_Scouse_given_KEYWORDS[] = { L"* ", L"Givun ", L"Youse know when youse got " }; +static const Keywords en_Scouse_given_keywords = { 3, en_Scouse_given_KEYWORDS }; + +static const wchar_t* const en_Scouse_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_Scouse_rule_keywords = { 1, en_Scouse_rule_KEYWORDS }; + +static const wchar_t* const en_Scouse_scenario_KEYWORDS[] = { L"The thing of it is" }; +static const Keywords en_Scouse_scenario_keywords = { 1, en_Scouse_scenario_KEYWORDS }; + +static const wchar_t* const en_Scouse_scenarioOutline_KEYWORDS[] = { L"Wharrimean is" }; +static const Keywords en_Scouse_scenarioOutline_keywords = { 1, en_Scouse_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_Scouse_then_KEYWORDS[] = { L"* ", L"Dun ", L"Den youse gotta " }; +static const Keywords en_Scouse_then_keywords = { 3, en_Scouse_then_KEYWORDS }; + +static const wchar_t* const en_Scouse_when_KEYWORDS[] = { L"* ", L"Wun ", L"Youse know like when " }; +static const Keywords en_Scouse_when_keywords = { 3, en_Scouse_when_KEYWORDS }; + +static const Dialect en_Scouse_dialect = { + L"en-Scouse", + &en_Scouse_and_keywords, + &en_Scouse_background_keywords, + &en_Scouse_but_keywords, + &en_Scouse_examples_keywords, + &en_Scouse_feature_keywords, + &en_Scouse_given_keywords, + &en_Scouse_rule_keywords, + &en_Scouse_scenario_keywords, + &en_Scouse_scenarioOutline_keywords, + &en_Scouse_then_keywords, + &en_Scouse_when_keywords }; + +static const wchar_t* const en_au_and_KEYWORDS[] = { L"* ", L"Too right " }; +static const Keywords en_au_and_keywords = { 2, en_au_and_KEYWORDS }; + +static const wchar_t* const en_au_background_KEYWORDS[] = { L"First off" }; +static const Keywords en_au_background_keywords = { 1, en_au_background_KEYWORDS }; + +static const wchar_t* const en_au_but_KEYWORDS[] = { L"* ", L"Yeah nah " }; +static const Keywords en_au_but_keywords = { 2, en_au_but_KEYWORDS }; + +static const wchar_t* const en_au_examples_KEYWORDS[] = { L"You'll wanna" }; +static const Keywords en_au_examples_keywords = { 1, en_au_examples_KEYWORDS }; + +static const wchar_t* const en_au_feature_KEYWORDS[] = { L"Pretty much" }; +static const Keywords en_au_feature_keywords = { 1, en_au_feature_KEYWORDS }; + +static const wchar_t* const en_au_given_KEYWORDS[] = { L"* ", L"Y'know " }; +static const Keywords en_au_given_keywords = { 2, en_au_given_KEYWORDS }; + +static const wchar_t* const en_au_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_au_rule_keywords = { 1, en_au_rule_KEYWORDS }; + +static const wchar_t* const en_au_scenario_KEYWORDS[] = { L"Awww, look mate" }; +static const Keywords en_au_scenario_keywords = { 1, en_au_scenario_KEYWORDS }; + +static const wchar_t* const en_au_scenarioOutline_KEYWORDS[] = { L"Reckon it's like" }; +static const Keywords en_au_scenarioOutline_keywords = { 1, en_au_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_au_then_KEYWORDS[] = { L"* ", L"But at the end of the day I reckon " }; +static const Keywords en_au_then_keywords = { 2, en_au_then_KEYWORDS }; + +static const wchar_t* const en_au_when_KEYWORDS[] = { L"* ", L"It's just unbelievable " }; +static const Keywords en_au_when_keywords = { 2, en_au_when_KEYWORDS }; + +static const Dialect en_au_dialect = { + L"en-au", + &en_au_and_keywords, + &en_au_background_keywords, + &en_au_but_keywords, + &en_au_examples_keywords, + &en_au_feature_keywords, + &en_au_given_keywords, + &en_au_rule_keywords, + &en_au_scenario_keywords, + &en_au_scenarioOutline_keywords, + &en_au_then_keywords, + &en_au_when_keywords }; + +static const wchar_t* const en_lol_and_KEYWORDS[] = { L"* ", L"AN " }; +static const Keywords en_lol_and_keywords = { 2, en_lol_and_KEYWORDS }; + +static const wchar_t* const en_lol_background_KEYWORDS[] = { L"B4" }; +static const Keywords en_lol_background_keywords = { 1, en_lol_background_KEYWORDS }; + +static const wchar_t* const en_lol_but_KEYWORDS[] = { L"* ", L"BUT " }; +static const Keywords en_lol_but_keywords = { 2, en_lol_but_KEYWORDS }; + +static const wchar_t* const en_lol_examples_KEYWORDS[] = { L"EXAMPLZ" }; +static const Keywords en_lol_examples_keywords = { 1, en_lol_examples_KEYWORDS }; + +static const wchar_t* const en_lol_feature_KEYWORDS[] = { L"OH HAI" }; +static const Keywords en_lol_feature_keywords = { 1, en_lol_feature_KEYWORDS }; + +static const wchar_t* const en_lol_given_KEYWORDS[] = { L"* ", L"I CAN HAZ " }; +static const Keywords en_lol_given_keywords = { 2, en_lol_given_KEYWORDS }; + +static const wchar_t* const en_lol_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_lol_rule_keywords = { 1, en_lol_rule_KEYWORDS }; + +static const wchar_t* const en_lol_scenario_KEYWORDS[] = { L"MISHUN" }; +static const Keywords en_lol_scenario_keywords = { 1, en_lol_scenario_KEYWORDS }; + +static const wchar_t* const en_lol_scenarioOutline_KEYWORDS[] = { L"MISHUN SRSLY" }; +static const Keywords en_lol_scenarioOutline_keywords = { 1, en_lol_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_lol_then_KEYWORDS[] = { L"* ", L"DEN " }; +static const Keywords en_lol_then_keywords = { 2, en_lol_then_KEYWORDS }; + +static const wchar_t* const en_lol_when_KEYWORDS[] = { L"* ", L"WEN " }; +static const Keywords en_lol_when_keywords = { 2, en_lol_when_KEYWORDS }; + +static const Dialect en_lol_dialect = { + L"en-lol", + &en_lol_and_keywords, + &en_lol_background_keywords, + &en_lol_but_keywords, + &en_lol_examples_keywords, + &en_lol_feature_keywords, + &en_lol_given_keywords, + &en_lol_rule_keywords, + &en_lol_scenario_keywords, + &en_lol_scenarioOutline_keywords, + &en_lol_then_keywords, + &en_lol_when_keywords }; + +static const wchar_t* const en_old_and_KEYWORDS[] = { L"* ", L"Ond ", L"7 " }; +static const Keywords en_old_and_keywords = { 3, en_old_and_KEYWORDS }; + +static const wchar_t* const en_old_background_KEYWORDS[] = { L"Aer", L"Ær" }; +static const Keywords en_old_background_keywords = { 2, en_old_background_KEYWORDS }; + +static const wchar_t* const en_old_but_KEYWORDS[] = { L"* ", L"Ac " }; +static const Keywords en_old_but_keywords = { 2, en_old_but_KEYWORDS }; + +static const wchar_t* const en_old_examples_KEYWORDS[] = { L"Se the", L"Se þe", L"Se ðe" }; +static const Keywords en_old_examples_keywords = { 3, en_old_examples_KEYWORDS }; + +static const wchar_t* const en_old_feature_KEYWORDS[] = { L"Hwaet", L"Hwæt" }; +static const Keywords en_old_feature_keywords = { 2, en_old_feature_KEYWORDS }; + +static const wchar_t* const en_old_given_KEYWORDS[] = { L"* ", L"Thurh ", L"Þurh ", L"Ðurh " }; +static const Keywords en_old_given_keywords = { 4, en_old_given_KEYWORDS }; + +static const wchar_t* const en_old_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_old_rule_keywords = { 1, en_old_rule_KEYWORDS }; + +static const wchar_t* const en_old_scenario_KEYWORDS[] = { L"Swa" }; +static const Keywords en_old_scenario_keywords = { 1, en_old_scenario_KEYWORDS }; + +static const wchar_t* const en_old_scenarioOutline_KEYWORDS[] = { L"Swa hwaer swa", L"Swa hwær swa" }; +static const Keywords en_old_scenarioOutline_keywords = { 2, en_old_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_old_then_KEYWORDS[] = { L"* ", L"Tha ", L"Þa ", L"Ða ", L"Tha the ", L"Þa þe ", L"Ða ðe " }; +static const Keywords en_old_then_keywords = { 7, en_old_then_KEYWORDS }; + +static const wchar_t* const en_old_when_KEYWORDS[] = { L"* ", L"Bæþsealf ", L"Bæþsealfa ", L"Bæþsealfe ", L"Ciricæw ", L"Ciricæwe ", L"Ciricæwa " }; +static const Keywords en_old_when_keywords = { 7, en_old_when_KEYWORDS }; + +static const Dialect en_old_dialect = { + L"en-old", + &en_old_and_keywords, + &en_old_background_keywords, + &en_old_but_keywords, + &en_old_examples_keywords, + &en_old_feature_keywords, + &en_old_given_keywords, + &en_old_rule_keywords, + &en_old_scenario_keywords, + &en_old_scenarioOutline_keywords, + &en_old_then_keywords, + &en_old_when_keywords }; + +static const wchar_t* const en_pirate_and_KEYWORDS[] = { L"* ", L"Aye " }; +static const Keywords en_pirate_and_keywords = { 2, en_pirate_and_KEYWORDS }; + +static const wchar_t* const en_pirate_background_KEYWORDS[] = { L"Yo-ho-ho" }; +static const Keywords en_pirate_background_keywords = { 1, en_pirate_background_KEYWORDS }; + +static const wchar_t* const en_pirate_but_KEYWORDS[] = { L"* ", L"Avast! " }; +static const Keywords en_pirate_but_keywords = { 2, en_pirate_but_KEYWORDS }; + +static const wchar_t* const en_pirate_examples_KEYWORDS[] = { L"Dead men tell no tales" }; +static const Keywords en_pirate_examples_keywords = { 1, en_pirate_examples_KEYWORDS }; + +static const wchar_t* const en_pirate_feature_KEYWORDS[] = { L"Ahoy matey!" }; +static const Keywords en_pirate_feature_keywords = { 1, en_pirate_feature_KEYWORDS }; + +static const wchar_t* const en_pirate_given_KEYWORDS[] = { L"* ", L"Gangway! " }; +static const Keywords en_pirate_given_keywords = { 2, en_pirate_given_KEYWORDS }; + +static const wchar_t* const en_pirate_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords en_pirate_rule_keywords = { 1, en_pirate_rule_KEYWORDS }; + +static const wchar_t* const en_pirate_scenario_KEYWORDS[] = { L"Heave to" }; +static const Keywords en_pirate_scenario_keywords = { 1, en_pirate_scenario_KEYWORDS }; + +static const wchar_t* const en_pirate_scenarioOutline_KEYWORDS[] = { L"Shiver me timbers" }; +static const Keywords en_pirate_scenarioOutline_keywords = { 1, en_pirate_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_pirate_then_KEYWORDS[] = { L"* ", L"Let go and haul " }; +static const Keywords en_pirate_then_keywords = { 2, en_pirate_then_KEYWORDS }; + +static const wchar_t* const en_pirate_when_KEYWORDS[] = { L"* ", L"Blimey! " }; +static const Keywords en_pirate_when_keywords = { 2, en_pirate_when_KEYWORDS }; + +static const Dialect en_pirate_dialect = { + L"en-pirate", + &en_pirate_and_keywords, + &en_pirate_background_keywords, + &en_pirate_but_keywords, + &en_pirate_examples_keywords, + &en_pirate_feature_keywords, + &en_pirate_given_keywords, + &en_pirate_rule_keywords, + &en_pirate_scenario_keywords, + &en_pirate_scenarioOutline_keywords, + &en_pirate_then_keywords, + &en_pirate_when_keywords }; + +static const wchar_t* const en_tx_and_KEYWORDS[] = { L"Come hell or high water " }; +static const Keywords en_tx_and_keywords = { 1, en_tx_and_KEYWORDS }; + +static const wchar_t* const en_tx_background_KEYWORDS[] = { L"Lemme tell y'all a story" }; +static const Keywords en_tx_background_keywords = { 1, en_tx_background_KEYWORDS }; + +static const wchar_t* const en_tx_but_KEYWORDS[] = { L"Well now hold on, I'll you what " }; +static const Keywords en_tx_but_keywords = { 1, en_tx_but_KEYWORDS }; + +static const wchar_t* const en_tx_examples_KEYWORDS[] = { L"Now that's a story longer than a cattle drive in July" }; +static const Keywords en_tx_examples_keywords = { 1, en_tx_examples_KEYWORDS }; + +static const wchar_t* const en_tx_feature_KEYWORDS[] = { L"This ain’t my first rodeo", L"All gussied up" }; +static const Keywords en_tx_feature_keywords = { 2, en_tx_feature_KEYWORDS }; + +static const wchar_t* const en_tx_given_KEYWORDS[] = { L"Fixin' to ", L"All git out " }; +static const Keywords en_tx_given_keywords = { 2, en_tx_given_KEYWORDS }; + +static const wchar_t* const en_tx_rule_KEYWORDS[] = { L"Rule " }; +static const Keywords en_tx_rule_keywords = { 1, en_tx_rule_KEYWORDS }; + +static const wchar_t* const en_tx_scenario_KEYWORDS[] = { L"All hat and no cattle" }; +static const Keywords en_tx_scenario_keywords = { 1, en_tx_scenario_KEYWORDS }; + +static const wchar_t* const en_tx_scenarioOutline_KEYWORDS[] = { L"Serious as a snake bite", L"Busy as a hound in flea season" }; +static const Keywords en_tx_scenarioOutline_keywords = { 2, en_tx_scenarioOutline_KEYWORDS }; + +static const wchar_t* const en_tx_then_KEYWORDS[] = { L"There’s no tree but bears some fruit " }; +static const Keywords en_tx_then_keywords = { 1, en_tx_then_KEYWORDS }; + +static const wchar_t* const en_tx_when_KEYWORDS[] = { L"Quick out of the chute " }; +static const Keywords en_tx_when_keywords = { 1, en_tx_when_KEYWORDS }; + +static const Dialect en_tx_dialect = { + L"en-tx", + &en_tx_and_keywords, + &en_tx_background_keywords, + &en_tx_but_keywords, + &en_tx_examples_keywords, + &en_tx_feature_keywords, + &en_tx_given_keywords, + &en_tx_rule_keywords, + &en_tx_scenario_keywords, + &en_tx_scenarioOutline_keywords, + &en_tx_then_keywords, + &en_tx_when_keywords }; + +static const wchar_t* const eo_and_KEYWORDS[] = { L"* ", L"Kaj " }; +static const Keywords eo_and_keywords = { 2, eo_and_KEYWORDS }; + +static const wchar_t* const eo_background_KEYWORDS[] = { L"Fono" }; +static const Keywords eo_background_keywords = { 1, eo_background_KEYWORDS }; + +static const wchar_t* const eo_but_KEYWORDS[] = { L"* ", L"Sed " }; +static const Keywords eo_but_keywords = { 2, eo_but_KEYWORDS }; + +static const wchar_t* const eo_examples_KEYWORDS[] = { L"Ekzemploj" }; +static const Keywords eo_examples_keywords = { 1, eo_examples_KEYWORDS }; + +static const wchar_t* const eo_feature_KEYWORDS[] = { L"Trajto" }; +static const Keywords eo_feature_keywords = { 1, eo_feature_KEYWORDS }; + +static const wchar_t* const eo_given_KEYWORDS[] = { L"* ", L"Donitaĵo ", L"Komence " }; +static const Keywords eo_given_keywords = { 3, eo_given_KEYWORDS }; + +static const wchar_t* const eo_rule_KEYWORDS[] = { L"Regulo" }; +static const Keywords eo_rule_keywords = { 1, eo_rule_KEYWORDS }; + +static const wchar_t* const eo_scenario_KEYWORDS[] = { L"Ekzemplo", L"Scenaro", L"Kazo" }; +static const Keywords eo_scenario_keywords = { 3, eo_scenario_KEYWORDS }; + +static const wchar_t* const eo_scenarioOutline_KEYWORDS[] = { L"Konturo de la scenaro", L"Skizo", L"Kazo-skizo" }; +static const Keywords eo_scenarioOutline_keywords = { 3, eo_scenarioOutline_KEYWORDS }; + +static const wchar_t* const eo_then_KEYWORDS[] = { L"* ", L"Do " }; +static const Keywords eo_then_keywords = { 2, eo_then_KEYWORDS }; + +static const wchar_t* const eo_when_KEYWORDS[] = { L"* ", L"Se " }; +static const Keywords eo_when_keywords = { 2, eo_when_KEYWORDS }; + +static const Dialect eo_dialect = { + L"eo", + &eo_and_keywords, + &eo_background_keywords, + &eo_but_keywords, + &eo_examples_keywords, + &eo_feature_keywords, + &eo_given_keywords, + &eo_rule_keywords, + &eo_scenario_keywords, + &eo_scenarioOutline_keywords, + &eo_then_keywords, + &eo_when_keywords }; + +static const wchar_t* const es_and_KEYWORDS[] = { L"* ", L"Y ", L"E " }; +static const Keywords es_and_keywords = { 3, es_and_KEYWORDS }; + +static const wchar_t* const es_background_KEYWORDS[] = { L"Antecedentes" }; +static const Keywords es_background_keywords = { 1, es_background_KEYWORDS }; + +static const wchar_t* const es_but_KEYWORDS[] = { L"* ", L"Pero " }; +static const Keywords es_but_keywords = { 2, es_but_KEYWORDS }; + +static const wchar_t* const es_examples_KEYWORDS[] = { L"Ejemplos" }; +static const Keywords es_examples_keywords = { 1, es_examples_KEYWORDS }; + +static const wchar_t* const es_feature_KEYWORDS[] = { L"Característica", L"Necesidad del negocio", L"Requisito" }; +static const Keywords es_feature_keywords = { 3, es_feature_KEYWORDS }; + +static const wchar_t* const es_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; +static const Keywords es_given_keywords = { 5, es_given_KEYWORDS }; + +static const wchar_t* const es_rule_KEYWORDS[] = { L"Regla", L"Regla de negocio" }; +static const Keywords es_rule_keywords = { 2, es_rule_KEYWORDS }; + +static const wchar_t* const es_scenario_KEYWORDS[] = { L"Ejemplo", L"Escenario" }; +static const Keywords es_scenario_keywords = { 2, es_scenario_KEYWORDS }; + +static const wchar_t* const es_scenarioOutline_KEYWORDS[] = { L"Esquema del escenario" }; +static const Keywords es_scenarioOutline_keywords = { 1, es_scenarioOutline_KEYWORDS }; + +static const wchar_t* const es_then_KEYWORDS[] = { L"* ", L"Entonces " }; +static const Keywords es_then_keywords = { 2, es_then_KEYWORDS }; + +static const wchar_t* const es_when_KEYWORDS[] = { L"* ", L"Cuando " }; +static const Keywords es_when_keywords = { 2, es_when_KEYWORDS }; + +static const Dialect es_dialect = { + L"es", + &es_and_keywords, + &es_background_keywords, + &es_but_keywords, + &es_examples_keywords, + &es_feature_keywords, + &es_given_keywords, + &es_rule_keywords, + &es_scenario_keywords, + &es_scenarioOutline_keywords, + &es_then_keywords, + &es_when_keywords }; + +static const wchar_t* const et_and_KEYWORDS[] = { L"* ", L"Ja " }; +static const Keywords et_and_keywords = { 2, et_and_KEYWORDS }; + +static const wchar_t* const et_background_KEYWORDS[] = { L"Taust" }; +static const Keywords et_background_keywords = { 1, et_background_KEYWORDS }; + +static const wchar_t* const et_but_KEYWORDS[] = { L"* ", L"Kuid " }; +static const Keywords et_but_keywords = { 2, et_but_KEYWORDS }; + +static const wchar_t* const et_examples_KEYWORDS[] = { L"Juhtumid" }; +static const Keywords et_examples_keywords = { 1, et_examples_KEYWORDS }; + +static const wchar_t* const et_feature_KEYWORDS[] = { L"Omadus" }; +static const Keywords et_feature_keywords = { 1, et_feature_KEYWORDS }; + +static const wchar_t* const et_given_KEYWORDS[] = { L"* ", L"Eeldades " }; +static const Keywords et_given_keywords = { 2, et_given_KEYWORDS }; + +static const wchar_t* const et_rule_KEYWORDS[] = { L"Reegel" }; +static const Keywords et_rule_keywords = { 1, et_rule_KEYWORDS }; + +static const wchar_t* const et_scenario_KEYWORDS[] = { L"Juhtum", L"Stsenaarium" }; +static const Keywords et_scenario_keywords = { 2, et_scenario_KEYWORDS }; + +static const wchar_t* const et_scenarioOutline_KEYWORDS[] = { L"Raamjuhtum", L"Raamstsenaarium" }; +static const Keywords et_scenarioOutline_keywords = { 2, et_scenarioOutline_KEYWORDS }; + +static const wchar_t* const et_then_KEYWORDS[] = { L"* ", L"Siis " }; +static const Keywords et_then_keywords = { 2, et_then_KEYWORDS }; + +static const wchar_t* const et_when_KEYWORDS[] = { L"* ", L"Kui " }; +static const Keywords et_when_keywords = { 2, et_when_KEYWORDS }; + +static const Dialect et_dialect = { + L"et", + &et_and_keywords, + &et_background_keywords, + &et_but_keywords, + &et_examples_keywords, + &et_feature_keywords, + &et_given_keywords, + &et_rule_keywords, + &et_scenario_keywords, + &et_scenarioOutline_keywords, + &et_then_keywords, + &et_when_keywords }; + +static const wchar_t* const fa_and_KEYWORDS[] = { L"* ", L"و " }; +static const Keywords fa_and_keywords = { 2, fa_and_KEYWORDS }; + +static const wchar_t* const fa_background_KEYWORDS[] = { L"زمینه" }; +static const Keywords fa_background_keywords = { 1, fa_background_KEYWORDS }; + +static const wchar_t* const fa_but_KEYWORDS[] = { L"* ", L"اما " }; +static const Keywords fa_but_keywords = { 2, fa_but_KEYWORDS }; + +static const wchar_t* const fa_examples_KEYWORDS[] = { L"نمونه ها" }; +static const Keywords fa_examples_keywords = { 1, fa_examples_KEYWORDS }; + +static const wchar_t* const fa_feature_KEYWORDS[] = { L"وِیژگی" }; +static const Keywords fa_feature_keywords = { 1, fa_feature_KEYWORDS }; + +static const wchar_t* const fa_given_KEYWORDS[] = { L"* ", L"با فرض " }; +static const Keywords fa_given_keywords = { 2, fa_given_KEYWORDS }; + +static const wchar_t* const fa_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords fa_rule_keywords = { 1, fa_rule_KEYWORDS }; + +static const wchar_t* const fa_scenario_KEYWORDS[] = { L"مثال", L"سناریو" }; +static const Keywords fa_scenario_keywords = { 2, fa_scenario_KEYWORDS }; + +static const wchar_t* const fa_scenarioOutline_KEYWORDS[] = { L"الگوی سناریو" }; +static const Keywords fa_scenarioOutline_keywords = { 1, fa_scenarioOutline_KEYWORDS }; + +static const wchar_t* const fa_then_KEYWORDS[] = { L"* ", L"آنگاه " }; +static const Keywords fa_then_keywords = { 2, fa_then_KEYWORDS }; + +static const wchar_t* const fa_when_KEYWORDS[] = { L"* ", L"هنگامی " }; +static const Keywords fa_when_keywords = { 2, fa_when_KEYWORDS }; + +static const Dialect fa_dialect = { + L"fa", + &fa_and_keywords, + &fa_background_keywords, + &fa_but_keywords, + &fa_examples_keywords, + &fa_feature_keywords, + &fa_given_keywords, + &fa_rule_keywords, + &fa_scenario_keywords, + &fa_scenarioOutline_keywords, + &fa_then_keywords, + &fa_when_keywords }; + +static const wchar_t* const fi_and_KEYWORDS[] = { L"* ", L"Ja " }; +static const Keywords fi_and_keywords = { 2, fi_and_KEYWORDS }; + +static const wchar_t* const fi_background_KEYWORDS[] = { L"Tausta" }; +static const Keywords fi_background_keywords = { 1, fi_background_KEYWORDS }; + +static const wchar_t* const fi_but_KEYWORDS[] = { L"* ", L"Mutta " }; +static const Keywords fi_but_keywords = { 2, fi_but_KEYWORDS }; + +static const wchar_t* const fi_examples_KEYWORDS[] = { L"Tapaukset" }; +static const Keywords fi_examples_keywords = { 1, fi_examples_KEYWORDS }; + +static const wchar_t* const fi_feature_KEYWORDS[] = { L"Ominaisuus" }; +static const Keywords fi_feature_keywords = { 1, fi_feature_KEYWORDS }; + +static const wchar_t* const fi_given_KEYWORDS[] = { L"* ", L"Oletetaan " }; +static const Keywords fi_given_keywords = { 2, fi_given_KEYWORDS }; + +static const wchar_t* const fi_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords fi_rule_keywords = { 1, fi_rule_KEYWORDS }; + +static const wchar_t* const fi_scenario_KEYWORDS[] = { L"Tapaus" }; +static const Keywords fi_scenario_keywords = { 1, fi_scenario_KEYWORDS }; + +static const wchar_t* const fi_scenarioOutline_KEYWORDS[] = { L"Tapausaihio" }; +static const Keywords fi_scenarioOutline_keywords = { 1, fi_scenarioOutline_KEYWORDS }; + +static const wchar_t* const fi_then_KEYWORDS[] = { L"* ", L"Niin " }; +static const Keywords fi_then_keywords = { 2, fi_then_KEYWORDS }; + +static const wchar_t* const fi_when_KEYWORDS[] = { L"* ", L"Kun " }; +static const Keywords fi_when_keywords = { 2, fi_when_KEYWORDS }; + +static const Dialect fi_dialect = { + L"fi", + &fi_and_keywords, + &fi_background_keywords, + &fi_but_keywords, + &fi_examples_keywords, + &fi_feature_keywords, + &fi_given_keywords, + &fi_rule_keywords, + &fi_scenario_keywords, + &fi_scenarioOutline_keywords, + &fi_then_keywords, + &fi_when_keywords }; + +static const wchar_t* const fr_and_KEYWORDS[] = { L"* ", L"Et que ", L"Et qu'", L"Et " }; +static const Keywords fr_and_keywords = { 4, fr_and_KEYWORDS }; + +static const wchar_t* const fr_background_KEYWORDS[] = { L"Contexte" }; +static const Keywords fr_background_keywords = { 1, fr_background_KEYWORDS }; + +static const wchar_t* const fr_but_KEYWORDS[] = { L"* ", L"Mais que ", L"Mais qu'", L"Mais " }; +static const Keywords fr_but_keywords = { 4, fr_but_KEYWORDS }; + +static const wchar_t* const fr_examples_KEYWORDS[] = { L"Exemples" }; +static const Keywords fr_examples_keywords = { 1, fr_examples_KEYWORDS }; + +static const wchar_t* const fr_feature_KEYWORDS[] = { L"Fonctionnalité" }; +static const Keywords fr_feature_keywords = { 1, fr_feature_KEYWORDS }; + +static const wchar_t* const fr_given_KEYWORDS[] = { L"* ", L"Soit ", L"Sachant que ", L"Sachant qu'", L"Sachant ", L"Etant donné que ", L"Etant donné qu'", L"Etant donné ", L"Etant donnée ", L"Etant donnés ", L"Etant données ", L"Étant donné que ", L"Étant donné qu'", L"Étant donné ", L"Étant donnée ", L"Étant donnés ", L"Étant données " }; +static const Keywords fr_given_keywords = { 17, fr_given_KEYWORDS }; + +static const wchar_t* const fr_rule_KEYWORDS[] = { L"Règle" }; +static const Keywords fr_rule_keywords = { 1, fr_rule_KEYWORDS }; + +static const wchar_t* const fr_scenario_KEYWORDS[] = { L"Exemple", L"Scénario" }; +static const Keywords fr_scenario_keywords = { 2, fr_scenario_KEYWORDS }; + +static const wchar_t* const fr_scenarioOutline_KEYWORDS[] = { L"Plan du scénario", L"Plan du Scénario" }; +static const Keywords fr_scenarioOutline_keywords = { 2, fr_scenarioOutline_KEYWORDS }; + +static const wchar_t* const fr_then_KEYWORDS[] = { L"* ", L"Alors ", L"Donc " }; +static const Keywords fr_then_keywords = { 3, fr_then_KEYWORDS }; + +static const wchar_t* const fr_when_KEYWORDS[] = { L"* ", L"Quand ", L"Lorsque ", L"Lorsqu'" }; +static const Keywords fr_when_keywords = { 4, fr_when_KEYWORDS }; + +static const Dialect fr_dialect = { + L"fr", + &fr_and_keywords, + &fr_background_keywords, + &fr_but_keywords, + &fr_examples_keywords, + &fr_feature_keywords, + &fr_given_keywords, + &fr_rule_keywords, + &fr_scenario_keywords, + &fr_scenarioOutline_keywords, + &fr_then_keywords, + &fr_when_keywords }; + +static const wchar_t* const ga_and_KEYWORDS[] = { L"* ", L"Agus " }; +static const Keywords ga_and_keywords = { 2, ga_and_KEYWORDS }; + +static const wchar_t* const ga_background_KEYWORDS[] = { L"Cúlra" }; +static const Keywords ga_background_keywords = { 1, ga_background_KEYWORDS }; + +static const wchar_t* const ga_but_KEYWORDS[] = { L"* ", L"Ach " }; +static const Keywords ga_but_keywords = { 2, ga_but_KEYWORDS }; + +static const wchar_t* const ga_examples_KEYWORDS[] = { L"Samplaí" }; +static const Keywords ga_examples_keywords = { 1, ga_examples_KEYWORDS }; + +static const wchar_t* const ga_feature_KEYWORDS[] = { L"Gné" }; +static const Keywords ga_feature_keywords = { 1, ga_feature_KEYWORDS }; + +static const wchar_t* const ga_given_KEYWORDS[] = { L"* ", L"Cuir i gcás go ", L"Cuir i gcás nach ", L"Cuir i gcás gur ", L"Cuir i gcás nár " }; +static const Keywords ga_given_keywords = { 5, ga_given_KEYWORDS }; + +static const wchar_t* const ga_rule_KEYWORDS[] = { L"Riail" }; +static const Keywords ga_rule_keywords = { 1, ga_rule_KEYWORDS }; + +static const wchar_t* const ga_scenario_KEYWORDS[] = { L"Sampla", L"Cás" }; +static const Keywords ga_scenario_keywords = { 2, ga_scenario_KEYWORDS }; + +static const wchar_t* const ga_scenarioOutline_KEYWORDS[] = { L"Cás Achomair" }; +static const Keywords ga_scenarioOutline_keywords = { 1, ga_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ga_then_KEYWORDS[] = { L"* ", L"Ansin " }; +static const Keywords ga_then_keywords = { 2, ga_then_KEYWORDS }; + +static const wchar_t* const ga_when_KEYWORDS[] = { L"* ", L"Nuair a ", L"Nuair nach ", L"Nuair ba ", L"Nuair nár " }; +static const Keywords ga_when_keywords = { 5, ga_when_KEYWORDS }; + +static const Dialect ga_dialect = { + L"ga", + &ga_and_keywords, + &ga_background_keywords, + &ga_but_keywords, + &ga_examples_keywords, + &ga_feature_keywords, + &ga_given_keywords, + &ga_rule_keywords, + &ga_scenario_keywords, + &ga_scenarioOutline_keywords, + &ga_then_keywords, + &ga_when_keywords }; + +static const wchar_t* const gj_and_KEYWORDS[] = { L"* ", L"અને " }; +static const Keywords gj_and_keywords = { 2, gj_and_KEYWORDS }; + +static const wchar_t* const gj_background_KEYWORDS[] = { L"બેકગ્રાઉન્ડ" }; +static const Keywords gj_background_keywords = { 1, gj_background_KEYWORDS }; + +static const wchar_t* const gj_but_KEYWORDS[] = { L"* ", L"પણ " }; +static const Keywords gj_but_keywords = { 2, gj_but_KEYWORDS }; + +static const wchar_t* const gj_examples_KEYWORDS[] = { L"ઉદાહરણો" }; +static const Keywords gj_examples_keywords = { 1, gj_examples_KEYWORDS }; + +static const wchar_t* const gj_feature_KEYWORDS[] = { L"લક્ષણ", L"વ્યાપાર જરૂર", L"ક્ષમતા" }; +static const Keywords gj_feature_keywords = { 3, gj_feature_KEYWORDS }; + +static const wchar_t* const gj_given_KEYWORDS[] = { L"* ", L"આપેલ છે " }; +static const Keywords gj_given_keywords = { 2, gj_given_KEYWORDS }; + +static const wchar_t* const gj_rule_KEYWORDS[] = { L"નિયમ" }; +static const Keywords gj_rule_keywords = { 1, gj_rule_KEYWORDS }; + +static const wchar_t* const gj_scenario_KEYWORDS[] = { L"ઉદાહરણ", L"સ્થિતિ" }; +static const Keywords gj_scenario_keywords = { 2, gj_scenario_KEYWORDS }; + +static const wchar_t* const gj_scenarioOutline_KEYWORDS[] = { L"પરિદ્દશ્ય રૂપરેખા", L"પરિદ્દશ્ય ઢાંચો" }; +static const Keywords gj_scenarioOutline_keywords = { 2, gj_scenarioOutline_KEYWORDS }; + +static const wchar_t* const gj_then_KEYWORDS[] = { L"* ", L"પછી " }; +static const Keywords gj_then_keywords = { 2, gj_then_KEYWORDS }; + +static const wchar_t* const gj_when_KEYWORDS[] = { L"* ", L"ક્યારે " }; +static const Keywords gj_when_keywords = { 2, gj_when_KEYWORDS }; + +static const Dialect gj_dialect = { + L"gj", + &gj_and_keywords, + &gj_background_keywords, + &gj_but_keywords, + &gj_examples_keywords, + &gj_feature_keywords, + &gj_given_keywords, + &gj_rule_keywords, + &gj_scenario_keywords, + &gj_scenarioOutline_keywords, + &gj_then_keywords, + &gj_when_keywords }; + +static const wchar_t* const gl_and_KEYWORDS[] = { L"* ", L"E " }; +static const Keywords gl_and_keywords = { 2, gl_and_KEYWORDS }; + +static const wchar_t* const gl_background_KEYWORDS[] = { L"Contexto" }; +static const Keywords gl_background_keywords = { 1, gl_background_KEYWORDS }; + +static const wchar_t* const gl_but_KEYWORDS[] = { L"* ", L"Mais ", L"Pero " }; +static const Keywords gl_but_keywords = { 3, gl_but_KEYWORDS }; + +static const wchar_t* const gl_examples_KEYWORDS[] = { L"Exemplos" }; +static const Keywords gl_examples_keywords = { 1, gl_examples_KEYWORDS }; + +static const wchar_t* const gl_feature_KEYWORDS[] = { L"Característica" }; +static const Keywords gl_feature_keywords = { 1, gl_feature_KEYWORDS }; + +static const wchar_t* const gl_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; +static const Keywords gl_given_keywords = { 5, gl_given_KEYWORDS }; + +static const wchar_t* const gl_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords gl_rule_keywords = { 1, gl_rule_KEYWORDS }; + +static const wchar_t* const gl_scenario_KEYWORDS[] = { L"Exemplo", L"Escenario" }; +static const Keywords gl_scenario_keywords = { 2, gl_scenario_KEYWORDS }; + +static const wchar_t* const gl_scenarioOutline_KEYWORDS[] = { L"Esbozo do escenario" }; +static const Keywords gl_scenarioOutline_keywords = { 1, gl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const gl_then_KEYWORDS[] = { L"* ", L"Entón ", L"Logo " }; +static const Keywords gl_then_keywords = { 3, gl_then_KEYWORDS }; + +static const wchar_t* const gl_when_KEYWORDS[] = { L"* ", L"Cando " }; +static const Keywords gl_when_keywords = { 2, gl_when_KEYWORDS }; + +static const Dialect gl_dialect = { + L"gl", + &gl_and_keywords, + &gl_background_keywords, + &gl_but_keywords, + &gl_examples_keywords, + &gl_feature_keywords, + &gl_given_keywords, + &gl_rule_keywords, + &gl_scenario_keywords, + &gl_scenarioOutline_keywords, + &gl_then_keywords, + &gl_when_keywords }; + +static const wchar_t* const he_and_KEYWORDS[] = { L"* ", L"וגם " }; +static const Keywords he_and_keywords = { 2, he_and_KEYWORDS }; + +static const wchar_t* const he_background_KEYWORDS[] = { L"רקע" }; +static const Keywords he_background_keywords = { 1, he_background_KEYWORDS }; + +static const wchar_t* const he_but_KEYWORDS[] = { L"* ", L"אבל " }; +static const Keywords he_but_keywords = { 2, he_but_KEYWORDS }; + +static const wchar_t* const he_examples_KEYWORDS[] = { L"דוגמאות" }; +static const Keywords he_examples_keywords = { 1, he_examples_KEYWORDS }; + +static const wchar_t* const he_feature_KEYWORDS[] = { L"תכונה" }; +static const Keywords he_feature_keywords = { 1, he_feature_KEYWORDS }; + +static const wchar_t* const he_given_KEYWORDS[] = { L"* ", L"בהינתן " }; +static const Keywords he_given_keywords = { 2, he_given_KEYWORDS }; + +static const wchar_t* const he_rule_KEYWORDS[] = { L"כלל" }; +static const Keywords he_rule_keywords = { 1, he_rule_KEYWORDS }; + +static const wchar_t* const he_scenario_KEYWORDS[] = { L"דוגמא", L"תרחיש" }; +static const Keywords he_scenario_keywords = { 2, he_scenario_KEYWORDS }; + +static const wchar_t* const he_scenarioOutline_KEYWORDS[] = { L"תבנית תרחיש" }; +static const Keywords he_scenarioOutline_keywords = { 1, he_scenarioOutline_KEYWORDS }; + +static const wchar_t* const he_then_KEYWORDS[] = { L"* ", L"אז ", L"אזי " }; +static const Keywords he_then_keywords = { 3, he_then_KEYWORDS }; + +static const wchar_t* const he_when_KEYWORDS[] = { L"* ", L"כאשר " }; +static const Keywords he_when_keywords = { 2, he_when_KEYWORDS }; + +static const Dialect he_dialect = { + L"he", + &he_and_keywords, + &he_background_keywords, + &he_but_keywords, + &he_examples_keywords, + &he_feature_keywords, + &he_given_keywords, + &he_rule_keywords, + &he_scenario_keywords, + &he_scenarioOutline_keywords, + &he_then_keywords, + &he_when_keywords }; + +static const wchar_t* const hi_and_KEYWORDS[] = { L"* ", L"और ", L"तथा " }; +static const Keywords hi_and_keywords = { 3, hi_and_KEYWORDS }; + +static const wchar_t* const hi_background_KEYWORDS[] = { L"पृष्ठभूमि" }; +static const Keywords hi_background_keywords = { 1, hi_background_KEYWORDS }; + +static const wchar_t* const hi_but_KEYWORDS[] = { L"* ", L"पर ", L"परन्तु ", L"किन्तु " }; +static const Keywords hi_but_keywords = { 4, hi_but_KEYWORDS }; + +static const wchar_t* const hi_examples_KEYWORDS[] = { L"उदाहरण" }; +static const Keywords hi_examples_keywords = { 1, hi_examples_KEYWORDS }; + +static const wchar_t* const hi_feature_KEYWORDS[] = { L"रूप लेख" }; +static const Keywords hi_feature_keywords = { 1, hi_feature_KEYWORDS }; + +static const wchar_t* const hi_given_KEYWORDS[] = { L"* ", L"अगर ", L"यदि ", L"चूंकि " }; +static const Keywords hi_given_keywords = { 4, hi_given_KEYWORDS }; + +static const wchar_t* const hi_rule_KEYWORDS[] = { L"नियम" }; +static const Keywords hi_rule_keywords = { 1, hi_rule_KEYWORDS }; + +static const wchar_t* const hi_scenario_KEYWORDS[] = { L"परिदृश्य" }; +static const Keywords hi_scenario_keywords = { 1, hi_scenario_KEYWORDS }; + +static const wchar_t* const hi_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; +static const Keywords hi_scenarioOutline_keywords = { 1, hi_scenarioOutline_KEYWORDS }; + +static const wchar_t* const hi_then_KEYWORDS[] = { L"* ", L"तब ", L"तदा " }; +static const Keywords hi_then_keywords = { 3, hi_then_KEYWORDS }; + +static const wchar_t* const hi_when_KEYWORDS[] = { L"* ", L"जब ", L"कदा " }; +static const Keywords hi_when_keywords = { 3, hi_when_KEYWORDS }; + +static const Dialect hi_dialect = { + L"hi", + &hi_and_keywords, + &hi_background_keywords, + &hi_but_keywords, + &hi_examples_keywords, + &hi_feature_keywords, + &hi_given_keywords, + &hi_rule_keywords, + &hi_scenario_keywords, + &hi_scenarioOutline_keywords, + &hi_then_keywords, + &hi_when_keywords }; + +static const wchar_t* const hr_and_KEYWORDS[] = { L"* ", L"I " }; +static const Keywords hr_and_keywords = { 2, hr_and_KEYWORDS }; + +static const wchar_t* const hr_background_KEYWORDS[] = { L"Pozadina" }; +static const Keywords hr_background_keywords = { 1, hr_background_KEYWORDS }; + +static const wchar_t* const hr_but_KEYWORDS[] = { L"* ", L"Ali " }; +static const Keywords hr_but_keywords = { 2, hr_but_KEYWORDS }; + +static const wchar_t* const hr_examples_KEYWORDS[] = { L"Primjeri", L"Scenariji" }; +static const Keywords hr_examples_keywords = { 2, hr_examples_KEYWORDS }; + +static const wchar_t* const hr_feature_KEYWORDS[] = { L"Osobina", L"Mogućnost", L"Mogucnost" }; +static const Keywords hr_feature_keywords = { 3, hr_feature_KEYWORDS }; + +static const wchar_t* const hr_given_KEYWORDS[] = { L"* ", L"Zadan ", L"Zadani ", L"Zadano ", L"Ukoliko " }; +static const Keywords hr_given_keywords = { 5, hr_given_KEYWORDS }; + +static const wchar_t* const hr_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords hr_rule_keywords = { 1, hr_rule_KEYWORDS }; + +static const wchar_t* const hr_scenario_KEYWORDS[] = { L"Primjer", L"Scenarij" }; +static const Keywords hr_scenario_keywords = { 2, hr_scenario_KEYWORDS }; + +static const wchar_t* const hr_scenarioOutline_KEYWORDS[] = { L"Skica", L"Koncept" }; +static const Keywords hr_scenarioOutline_keywords = { 2, hr_scenarioOutline_KEYWORDS }; + +static const wchar_t* const hr_then_KEYWORDS[] = { L"* ", L"Onda " }; +static const Keywords hr_then_keywords = { 2, hr_then_KEYWORDS }; + +static const wchar_t* const hr_when_KEYWORDS[] = { L"* ", L"Kada ", L"Kad " }; +static const Keywords hr_when_keywords = { 3, hr_when_KEYWORDS }; + +static const Dialect hr_dialect = { + L"hr", + &hr_and_keywords, + &hr_background_keywords, + &hr_but_keywords, + &hr_examples_keywords, + &hr_feature_keywords, + &hr_given_keywords, + &hr_rule_keywords, + &hr_scenario_keywords, + &hr_scenarioOutline_keywords, + &hr_then_keywords, + &hr_when_keywords }; + +static const wchar_t* const ht_and_KEYWORDS[] = { L"* ", L"Ak ", L"Epi ", L"E " }; +static const Keywords ht_and_keywords = { 4, ht_and_KEYWORDS }; + +static const wchar_t* const ht_background_KEYWORDS[] = { L"Kontèks", L"Istorik" }; +static const Keywords ht_background_keywords = { 2, ht_background_KEYWORDS }; + +static const wchar_t* const ht_but_KEYWORDS[] = { L"* ", L"Men " }; +static const Keywords ht_but_keywords = { 2, ht_but_KEYWORDS }; + +static const wchar_t* const ht_examples_KEYWORDS[] = { L"Egzanp" }; +static const Keywords ht_examples_keywords = { 1, ht_examples_KEYWORDS }; + +static const wchar_t* const ht_feature_KEYWORDS[] = { L"Karakteristik", L"Mak", L"Fonksyonalite" }; +static const Keywords ht_feature_keywords = { 3, ht_feature_KEYWORDS }; + +static const wchar_t* const ht_given_KEYWORDS[] = { L"* ", L"Sipoze ", L"Sipoze ke ", L"Sipoze Ke " }; +static const Keywords ht_given_keywords = { 4, ht_given_KEYWORDS }; + +static const wchar_t* const ht_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ht_rule_keywords = { 1, ht_rule_KEYWORDS }; + +static const wchar_t* const ht_scenario_KEYWORDS[] = { L"Senaryo" }; +static const Keywords ht_scenario_keywords = { 1, ht_scenario_KEYWORDS }; + +static const wchar_t* const ht_scenarioOutline_KEYWORDS[] = { L"Plan senaryo", L"Plan Senaryo", L"Senaryo deskripsyon", L"Senaryo Deskripsyon", L"Dyagram senaryo", L"Dyagram Senaryo" }; +static const Keywords ht_scenarioOutline_keywords = { 6, ht_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ht_then_KEYWORDS[] = { L"* ", L"Lè sa a ", L"Le sa a " }; +static const Keywords ht_then_keywords = { 3, ht_then_KEYWORDS }; + +static const wchar_t* const ht_when_KEYWORDS[] = { L"* ", L"Lè ", L"Le " }; +static const Keywords ht_when_keywords = { 3, ht_when_KEYWORDS }; + +static const Dialect ht_dialect = { + L"ht", + &ht_and_keywords, + &ht_background_keywords, + &ht_but_keywords, + &ht_examples_keywords, + &ht_feature_keywords, + &ht_given_keywords, + &ht_rule_keywords, + &ht_scenario_keywords, + &ht_scenarioOutline_keywords, + &ht_then_keywords, + &ht_when_keywords }; + +static const wchar_t* const hu_and_KEYWORDS[] = { L"* ", L"És " }; +static const Keywords hu_and_keywords = { 2, hu_and_KEYWORDS }; + +static const wchar_t* const hu_background_KEYWORDS[] = { L"Háttér" }; +static const Keywords hu_background_keywords = { 1, hu_background_KEYWORDS }; + +static const wchar_t* const hu_but_KEYWORDS[] = { L"* ", L"De " }; +static const Keywords hu_but_keywords = { 2, hu_but_KEYWORDS }; + +static const wchar_t* const hu_examples_KEYWORDS[] = { L"Példák" }; +static const Keywords hu_examples_keywords = { 1, hu_examples_KEYWORDS }; + +static const wchar_t* const hu_feature_KEYWORDS[] = { L"Jellemző" }; +static const Keywords hu_feature_keywords = { 1, hu_feature_KEYWORDS }; + +static const wchar_t* const hu_given_KEYWORDS[] = { L"* ", L"Amennyiben ", L"Adott " }; +static const Keywords hu_given_keywords = { 3, hu_given_KEYWORDS }; + +static const wchar_t* const hu_rule_KEYWORDS[] = { L"Szabály" }; +static const Keywords hu_rule_keywords = { 1, hu_rule_KEYWORDS }; + +static const wchar_t* const hu_scenario_KEYWORDS[] = { L"Példa", L"Forgatókönyv" }; +static const Keywords hu_scenario_keywords = { 2, hu_scenario_KEYWORDS }; + +static const wchar_t* const hu_scenarioOutline_KEYWORDS[] = { L"Forgatókönyv vázlat" }; +static const Keywords hu_scenarioOutline_keywords = { 1, hu_scenarioOutline_KEYWORDS }; + +static const wchar_t* const hu_then_KEYWORDS[] = { L"* ", L"Akkor " }; +static const Keywords hu_then_keywords = { 2, hu_then_KEYWORDS }; + +static const wchar_t* const hu_when_KEYWORDS[] = { L"* ", L"Majd ", L"Ha ", L"Amikor " }; +static const Keywords hu_when_keywords = { 4, hu_when_KEYWORDS }; + +static const Dialect hu_dialect = { + L"hu", + &hu_and_keywords, + &hu_background_keywords, + &hu_but_keywords, + &hu_examples_keywords, + &hu_feature_keywords, + &hu_given_keywords, + &hu_rule_keywords, + &hu_scenario_keywords, + &hu_scenarioOutline_keywords, + &hu_then_keywords, + &hu_when_keywords }; + +static const wchar_t* const id_and_KEYWORDS[] = { L"* ", L"Dan " }; +static const Keywords id_and_keywords = { 2, id_and_KEYWORDS }; + +static const wchar_t* const id_background_KEYWORDS[] = { L"Dasar", L"Latar Belakang" }; +static const Keywords id_background_keywords = { 2, id_background_KEYWORDS }; + +static const wchar_t* const id_but_KEYWORDS[] = { L"* ", L"Tapi ", L"Tetapi " }; +static const Keywords id_but_keywords = { 3, id_but_KEYWORDS }; + +static const wchar_t* const id_examples_KEYWORDS[] = { L"Contoh", L"Misal" }; +static const Keywords id_examples_keywords = { 2, id_examples_KEYWORDS }; + +static const wchar_t* const id_feature_KEYWORDS[] = { L"Fitur" }; +static const Keywords id_feature_keywords = { 1, id_feature_KEYWORDS }; + +static const wchar_t* const id_given_KEYWORDS[] = { L"* ", L"Dengan ", L"Diketahui ", L"Diasumsikan ", L"Bila ", L"Jika " }; +static const Keywords id_given_keywords = { 6, id_given_KEYWORDS }; + +static const wchar_t* const id_rule_KEYWORDS[] = { L"Rule", L"Aturan" }; +static const Keywords id_rule_keywords = { 2, id_rule_KEYWORDS }; + +static const wchar_t* const id_scenario_KEYWORDS[] = { L"Skenario" }; +static const Keywords id_scenario_keywords = { 1, id_scenario_KEYWORDS }; + +static const wchar_t* const id_scenarioOutline_KEYWORDS[] = { L"Skenario konsep", L"Garis-Besar Skenario" }; +static const Keywords id_scenarioOutline_keywords = { 2, id_scenarioOutline_KEYWORDS }; + +static const wchar_t* const id_then_KEYWORDS[] = { L"* ", L"Maka ", L"Kemudian " }; +static const Keywords id_then_keywords = { 3, id_then_KEYWORDS }; + +static const wchar_t* const id_when_KEYWORDS[] = { L"* ", L"Ketika " }; +static const Keywords id_when_keywords = { 2, id_when_KEYWORDS }; + +static const Dialect id_dialect = { + L"id", + &id_and_keywords, + &id_background_keywords, + &id_but_keywords, + &id_examples_keywords, + &id_feature_keywords, + &id_given_keywords, + &id_rule_keywords, + &id_scenario_keywords, + &id_scenarioOutline_keywords, + &id_then_keywords, + &id_when_keywords }; + +static const wchar_t* const is_and_KEYWORDS[] = { L"* ", L"Og " }; +static const Keywords is_and_keywords = { 2, is_and_KEYWORDS }; + +static const wchar_t* const is_background_KEYWORDS[] = { L"Bakgrunnur" }; +static const Keywords is_background_keywords = { 1, is_background_KEYWORDS }; + +static const wchar_t* const is_but_KEYWORDS[] = { L"* ", L"En " }; +static const Keywords is_but_keywords = { 2, is_but_KEYWORDS }; + +static const wchar_t* const is_examples_KEYWORDS[] = { L"Dæmi", L"Atburðarásir" }; +static const Keywords is_examples_keywords = { 2, is_examples_KEYWORDS }; + +static const wchar_t* const is_feature_KEYWORDS[] = { L"Eiginleiki" }; +static const Keywords is_feature_keywords = { 1, is_feature_KEYWORDS }; + +static const wchar_t* const is_given_KEYWORDS[] = { L"* ", L"Ef " }; +static const Keywords is_given_keywords = { 2, is_given_KEYWORDS }; + +static const wchar_t* const is_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords is_rule_keywords = { 1, is_rule_KEYWORDS }; + +static const wchar_t* const is_scenario_KEYWORDS[] = { L"Atburðarás" }; +static const Keywords is_scenario_keywords = { 1, is_scenario_KEYWORDS }; + +static const wchar_t* const is_scenarioOutline_KEYWORDS[] = { L"Lýsing Atburðarásar", L"Lýsing Dæma" }; +static const Keywords is_scenarioOutline_keywords = { 2, is_scenarioOutline_KEYWORDS }; + +static const wchar_t* const is_then_KEYWORDS[] = { L"* ", L"Þá " }; +static const Keywords is_then_keywords = { 2, is_then_KEYWORDS }; + +static const wchar_t* const is_when_KEYWORDS[] = { L"* ", L"Þegar " }; +static const Keywords is_when_keywords = { 2, is_when_KEYWORDS }; + +static const Dialect is_dialect = { + L"is", + &is_and_keywords, + &is_background_keywords, + &is_but_keywords, + &is_examples_keywords, + &is_feature_keywords, + &is_given_keywords, + &is_rule_keywords, + &is_scenario_keywords, + &is_scenarioOutline_keywords, + &is_then_keywords, + &is_when_keywords }; + +static const wchar_t* const it_and_KEYWORDS[] = { L"* ", L"E ", L"Ed " }; +static const Keywords it_and_keywords = { 3, it_and_KEYWORDS }; + +static const wchar_t* const it_background_KEYWORDS[] = { L"Contesto" }; +static const Keywords it_background_keywords = { 1, it_background_KEYWORDS }; + +static const wchar_t* const it_but_KEYWORDS[] = { L"* ", L"Ma " }; +static const Keywords it_but_keywords = { 2, it_but_KEYWORDS }; + +static const wchar_t* const it_examples_KEYWORDS[] = { L"Esempi" }; +static const Keywords it_examples_keywords = { 1, it_examples_KEYWORDS }; + +static const wchar_t* const it_feature_KEYWORDS[] = { L"Funzionalità", L"Esigenza di Business", L"Abilità" }; +static const Keywords it_feature_keywords = { 3, it_feature_KEYWORDS }; + +static const wchar_t* const it_given_KEYWORDS[] = { L"* ", L"Dato ", L"Data ", L"Dati ", L"Date " }; +static const Keywords it_given_keywords = { 5, it_given_KEYWORDS }; + +static const wchar_t* const it_rule_KEYWORDS[] = { L"Regola" }; +static const Keywords it_rule_keywords = { 1, it_rule_KEYWORDS }; + +static const wchar_t* const it_scenario_KEYWORDS[] = { L"Esempio", L"Scenario" }; +static const Keywords it_scenario_keywords = { 2, it_scenario_KEYWORDS }; + +static const wchar_t* const it_scenarioOutline_KEYWORDS[] = { L"Schema dello scenario" }; +static const Keywords it_scenarioOutline_keywords = { 1, it_scenarioOutline_KEYWORDS }; + +static const wchar_t* const it_then_KEYWORDS[] = { L"* ", L"Allora " }; +static const Keywords it_then_keywords = { 2, it_then_KEYWORDS }; + +static const wchar_t* const it_when_KEYWORDS[] = { L"* ", L"Quando " }; +static const Keywords it_when_keywords = { 2, it_when_KEYWORDS }; + +static const Dialect it_dialect = { + L"it", + &it_and_keywords, + &it_background_keywords, + &it_but_keywords, + &it_examples_keywords, + &it_feature_keywords, + &it_given_keywords, + &it_rule_keywords, + &it_scenario_keywords, + &it_scenarioOutline_keywords, + &it_then_keywords, + &it_when_keywords }; + +static const wchar_t* const ja_and_KEYWORDS[] = { L"* ", L"且つ", L"かつ" }; +static const Keywords ja_and_keywords = { 3, ja_and_KEYWORDS }; + +static const wchar_t* const ja_background_KEYWORDS[] = { L"背景" }; +static const Keywords ja_background_keywords = { 1, ja_background_KEYWORDS }; + +static const wchar_t* const ja_but_KEYWORDS[] = { L"* ", L"然し", L"しかし", L"但し", L"ただし" }; +static const Keywords ja_but_keywords = { 5, ja_but_KEYWORDS }; + +static const wchar_t* const ja_examples_KEYWORDS[] = { L"例", L"サンプル" }; +static const Keywords ja_examples_keywords = { 2, ja_examples_KEYWORDS }; + +static const wchar_t* const ja_feature_KEYWORDS[] = { L"フィーチャ", L"機能" }; +static const Keywords ja_feature_keywords = { 2, ja_feature_KEYWORDS }; + +static const wchar_t* const ja_given_KEYWORDS[] = { L"* ", L"前提" }; +static const Keywords ja_given_keywords = { 2, ja_given_KEYWORDS }; + +static const wchar_t* const ja_rule_KEYWORDS[] = { L"ルール" }; +static const Keywords ja_rule_keywords = { 1, ja_rule_KEYWORDS }; + +static const wchar_t* const ja_scenario_KEYWORDS[] = { L"シナリオ" }; +static const Keywords ja_scenario_keywords = { 1, ja_scenario_KEYWORDS }; + +static const wchar_t* const ja_scenarioOutline_KEYWORDS[] = { L"シナリオアウトライン", L"シナリオテンプレート", L"テンプレ", L"シナリオテンプレ" }; +static const Keywords ja_scenarioOutline_keywords = { 4, ja_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ja_then_KEYWORDS[] = { L"* ", L"ならば" }; +static const Keywords ja_then_keywords = { 2, ja_then_KEYWORDS }; + +static const wchar_t* const ja_when_KEYWORDS[] = { L"* ", L"もし" }; +static const Keywords ja_when_keywords = { 2, ja_when_KEYWORDS }; + +static const Dialect ja_dialect = { + L"ja", + &ja_and_keywords, + &ja_background_keywords, + &ja_but_keywords, + &ja_examples_keywords, + &ja_feature_keywords, + &ja_given_keywords, + &ja_rule_keywords, + &ja_scenario_keywords, + &ja_scenarioOutline_keywords, + &ja_then_keywords, + &ja_when_keywords }; + +static const wchar_t* const jv_and_KEYWORDS[] = { L"* ", L"Lan " }; +static const Keywords jv_and_keywords = { 2, jv_and_KEYWORDS }; + +static const wchar_t* const jv_background_KEYWORDS[] = { L"Dasar" }; +static const Keywords jv_background_keywords = { 1, jv_background_KEYWORDS }; + +static const wchar_t* const jv_but_KEYWORDS[] = { L"* ", L"Tapi ", L"Nanging ", L"Ananging " }; +static const Keywords jv_but_keywords = { 4, jv_but_KEYWORDS }; + +static const wchar_t* const jv_examples_KEYWORDS[] = { L"Conto", L"Contone" }; +static const Keywords jv_examples_keywords = { 2, jv_examples_KEYWORDS }; + +static const wchar_t* const jv_feature_KEYWORDS[] = { L"Fitur" }; +static const Keywords jv_feature_keywords = { 1, jv_feature_KEYWORDS }; + +static const wchar_t* const jv_given_KEYWORDS[] = { L"* ", L"Nalika ", L"Nalikaning " }; +static const Keywords jv_given_keywords = { 3, jv_given_KEYWORDS }; + +static const wchar_t* const jv_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords jv_rule_keywords = { 1, jv_rule_KEYWORDS }; + +static const wchar_t* const jv_scenario_KEYWORDS[] = { L"Skenario" }; +static const Keywords jv_scenario_keywords = { 1, jv_scenario_KEYWORDS }; + +static const wchar_t* const jv_scenarioOutline_KEYWORDS[] = { L"Konsep skenario" }; +static const Keywords jv_scenarioOutline_keywords = { 1, jv_scenarioOutline_KEYWORDS }; + +static const wchar_t* const jv_then_KEYWORDS[] = { L"* ", L"Njuk ", L"Banjur " }; +static const Keywords jv_then_keywords = { 3, jv_then_KEYWORDS }; + +static const wchar_t* const jv_when_KEYWORDS[] = { L"* ", L"Manawa ", L"Menawa " }; +static const Keywords jv_when_keywords = { 3, jv_when_KEYWORDS }; + +static const Dialect jv_dialect = { + L"jv", + &jv_and_keywords, + &jv_background_keywords, + &jv_but_keywords, + &jv_examples_keywords, + &jv_feature_keywords, + &jv_given_keywords, + &jv_rule_keywords, + &jv_scenario_keywords, + &jv_scenarioOutline_keywords, + &jv_then_keywords, + &jv_when_keywords }; + +static const wchar_t* const ka_and_KEYWORDS[] = { L"* ", L"და ", L"ასევე " }; +static const Keywords ka_and_keywords = { 3, ka_and_KEYWORDS }; + +static const wchar_t* const ka_background_KEYWORDS[] = { L"კონტექსტი" }; +static const Keywords ka_background_keywords = { 1, ka_background_KEYWORDS }; + +static const wchar_t* const ka_but_KEYWORDS[] = { L"* ", L"მაგრამ ", L"თუმცა " }; +static const Keywords ka_but_keywords = { 3, ka_but_KEYWORDS }; + +static const wchar_t* const ka_examples_KEYWORDS[] = { L"მაგალითები" }; +static const Keywords ka_examples_keywords = { 1, ka_examples_KEYWORDS }; + +static const wchar_t* const ka_feature_KEYWORDS[] = { L"თვისება", L"მოთხოვნა" }; +static const Keywords ka_feature_keywords = { 2, ka_feature_KEYWORDS }; + +static const wchar_t* const ka_given_KEYWORDS[] = { L"* ", L"მოცემული ", L"მოცემულია ", L"ვთქვათ " }; +static const Keywords ka_given_keywords = { 4, ka_given_KEYWORDS }; + +static const wchar_t* const ka_rule_KEYWORDS[] = { L"წესი" }; +static const Keywords ka_rule_keywords = { 1, ka_rule_KEYWORDS }; + +static const wchar_t* const ka_scenario_KEYWORDS[] = { L"მაგალითად", L"მაგალითი", L"მაგ", L"სცენარი" }; +static const Keywords ka_scenario_keywords = { 4, ka_scenario_KEYWORDS }; + +static const wchar_t* const ka_scenarioOutline_KEYWORDS[] = { L"სცენარის ნიმუში", L"სცენარის შაბლონი", L"ნიმუში", L"შაბლონი" }; +static const Keywords ka_scenarioOutline_keywords = { 4, ka_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ka_then_KEYWORDS[] = { L"* ", L"მაშინ " }; +static const Keywords ka_then_keywords = { 2, ka_then_KEYWORDS }; + +static const wchar_t* const ka_when_KEYWORDS[] = { L"* ", L"როდესაც ", L"როცა ", L"როგორც კი ", L"თუ " }; +static const Keywords ka_when_keywords = { 5, ka_when_KEYWORDS }; + +static const Dialect ka_dialect = { + L"ka", + &ka_and_keywords, + &ka_background_keywords, + &ka_but_keywords, + &ka_examples_keywords, + &ka_feature_keywords, + &ka_given_keywords, + &ka_rule_keywords, + &ka_scenario_keywords, + &ka_scenarioOutline_keywords, + &ka_then_keywords, + &ka_when_keywords }; + +static const wchar_t* const kn_and_KEYWORDS[] = { L"* ", L"ಮತ್ತು " }; +static const Keywords kn_and_keywords = { 2, kn_and_KEYWORDS }; + +static const wchar_t* const kn_background_KEYWORDS[] = { L"ಹಿನ್ನೆಲೆ" }; +static const Keywords kn_background_keywords = { 1, kn_background_KEYWORDS }; + +static const wchar_t* const kn_but_KEYWORDS[] = { L"* ", L"ಆದರೆ " }; +static const Keywords kn_but_keywords = { 2, kn_but_KEYWORDS }; + +static const wchar_t* const kn_examples_KEYWORDS[] = { L"ಉದಾಹರಣೆಗಳು" }; +static const Keywords kn_examples_keywords = { 1, kn_examples_KEYWORDS }; + +static const wchar_t* const kn_feature_KEYWORDS[] = { L"ಹೆಚ್ಚಳ" }; +static const Keywords kn_feature_keywords = { 1, kn_feature_KEYWORDS }; + +static const wchar_t* const kn_given_KEYWORDS[] = { L"* ", L"ನೀಡಿದ " }; +static const Keywords kn_given_keywords = { 2, kn_given_KEYWORDS }; + +static const wchar_t* const kn_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords kn_rule_keywords = { 1, kn_rule_KEYWORDS }; + +static const wchar_t* const kn_scenario_KEYWORDS[] = { L"ಉದಾಹರಣೆ", L"ಕಥಾಸಾರಾಂಶ" }; +static const Keywords kn_scenario_keywords = { 2, kn_scenario_KEYWORDS }; + +static const wchar_t* const kn_scenarioOutline_KEYWORDS[] = { L"ವಿವರಣೆ" }; +static const Keywords kn_scenarioOutline_keywords = { 1, kn_scenarioOutline_KEYWORDS }; + +static const wchar_t* const kn_then_KEYWORDS[] = { L"* ", L"ನಂತರ " }; +static const Keywords kn_then_keywords = { 2, kn_then_KEYWORDS }; + +static const wchar_t* const kn_when_KEYWORDS[] = { L"* ", L"ಸ್ಥಿತಿಯನ್ನು " }; +static const Keywords kn_when_keywords = { 2, kn_when_KEYWORDS }; + +static const Dialect kn_dialect = { + L"kn", + &kn_and_keywords, + &kn_background_keywords, + &kn_but_keywords, + &kn_examples_keywords, + &kn_feature_keywords, + &kn_given_keywords, + &kn_rule_keywords, + &kn_scenario_keywords, + &kn_scenarioOutline_keywords, + &kn_then_keywords, + &kn_when_keywords }; + +static const wchar_t* const ko_and_KEYWORDS[] = { L"* ", L"그리고 " }; +static const Keywords ko_and_keywords = { 2, ko_and_KEYWORDS }; + +static const wchar_t* const ko_background_KEYWORDS[] = { L"배경" }; +static const Keywords ko_background_keywords = { 1, ko_background_KEYWORDS }; + +static const wchar_t* const ko_but_KEYWORDS[] = { L"* ", L"하지만 ", L"단 " }; +static const Keywords ko_but_keywords = { 3, ko_but_KEYWORDS }; + +static const wchar_t* const ko_examples_KEYWORDS[] = { L"예" }; +static const Keywords ko_examples_keywords = { 1, ko_examples_KEYWORDS }; + +static const wchar_t* const ko_feature_KEYWORDS[] = { L"기능" }; +static const Keywords ko_feature_keywords = { 1, ko_feature_KEYWORDS }; + +static const wchar_t* const ko_given_KEYWORDS[] = { L"* ", L"조건 ", L"먼저 " }; +static const Keywords ko_given_keywords = { 3, ko_given_KEYWORDS }; + +static const wchar_t* const ko_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ko_rule_keywords = { 1, ko_rule_KEYWORDS }; + +static const wchar_t* const ko_scenario_KEYWORDS[] = { L"시나리오" }; +static const Keywords ko_scenario_keywords = { 1, ko_scenario_KEYWORDS }; + +static const wchar_t* const ko_scenarioOutline_KEYWORDS[] = { L"시나리오 개요" }; +static const Keywords ko_scenarioOutline_keywords = { 1, ko_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ko_then_KEYWORDS[] = { L"* ", L"그러면 " }; +static const Keywords ko_then_keywords = { 2, ko_then_KEYWORDS }; + +static const wchar_t* const ko_when_KEYWORDS[] = { L"* ", L"만일 ", L"만약 " }; +static const Keywords ko_when_keywords = { 3, ko_when_KEYWORDS }; + +static const Dialect ko_dialect = { + L"ko", + &ko_and_keywords, + &ko_background_keywords, + &ko_but_keywords, + &ko_examples_keywords, + &ko_feature_keywords, + &ko_given_keywords, + &ko_rule_keywords, + &ko_scenario_keywords, + &ko_scenarioOutline_keywords, + &ko_then_keywords, + &ko_when_keywords }; + +static const wchar_t* const lt_and_KEYWORDS[] = { L"* ", L"Ir " }; +static const Keywords lt_and_keywords = { 2, lt_and_KEYWORDS }; + +static const wchar_t* const lt_background_KEYWORDS[] = { L"Kontekstas" }; +static const Keywords lt_background_keywords = { 1, lt_background_KEYWORDS }; + +static const wchar_t* const lt_but_KEYWORDS[] = { L"* ", L"Bet " }; +static const Keywords lt_but_keywords = { 2, lt_but_KEYWORDS }; + +static const wchar_t* const lt_examples_KEYWORDS[] = { L"Pavyzdžiai", L"Scenarijai", L"Variantai" }; +static const Keywords lt_examples_keywords = { 3, lt_examples_KEYWORDS }; + +static const wchar_t* const lt_feature_KEYWORDS[] = { L"Savybė" }; +static const Keywords lt_feature_keywords = { 1, lt_feature_KEYWORDS }; + +static const wchar_t* const lt_given_KEYWORDS[] = { L"* ", L"Duota " }; +static const Keywords lt_given_keywords = { 2, lt_given_KEYWORDS }; + +static const wchar_t* const lt_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords lt_rule_keywords = { 1, lt_rule_KEYWORDS }; + +static const wchar_t* const lt_scenario_KEYWORDS[] = { L"Pavyzdys", L"Scenarijus" }; +static const Keywords lt_scenario_keywords = { 2, lt_scenario_KEYWORDS }; + +static const wchar_t* const lt_scenarioOutline_KEYWORDS[] = { L"Scenarijaus šablonas" }; +static const Keywords lt_scenarioOutline_keywords = { 1, lt_scenarioOutline_KEYWORDS }; + +static const wchar_t* const lt_then_KEYWORDS[] = { L"* ", L"Tada " }; +static const Keywords lt_then_keywords = { 2, lt_then_KEYWORDS }; + +static const wchar_t* const lt_when_KEYWORDS[] = { L"* ", L"Kai " }; +static const Keywords lt_when_keywords = { 2, lt_when_KEYWORDS }; + +static const Dialect lt_dialect = { + L"lt", + <_and_keywords, + <_background_keywords, + <_but_keywords, + <_examples_keywords, + <_feature_keywords, + <_given_keywords, + <_rule_keywords, + <_scenario_keywords, + <_scenarioOutline_keywords, + <_then_keywords, + <_when_keywords }; + +static const wchar_t* const lu_and_KEYWORDS[] = { L"* ", L"an ", L"a " }; +static const Keywords lu_and_keywords = { 3, lu_and_KEYWORDS }; + +static const wchar_t* const lu_background_KEYWORDS[] = { L"Hannergrond" }; +static const Keywords lu_background_keywords = { 1, lu_background_KEYWORDS }; + +static const wchar_t* const lu_but_KEYWORDS[] = { L"* ", L"awer ", L"mä " }; +static const Keywords lu_but_keywords = { 3, lu_but_KEYWORDS }; + +static const wchar_t* const lu_examples_KEYWORDS[] = { L"Beispiller" }; +static const Keywords lu_examples_keywords = { 1, lu_examples_KEYWORDS }; + +static const wchar_t* const lu_feature_KEYWORDS[] = { L"Funktionalitéit" }; +static const Keywords lu_feature_keywords = { 1, lu_feature_KEYWORDS }; + +static const wchar_t* const lu_given_KEYWORDS[] = { L"* ", L"ugeholl " }; +static const Keywords lu_given_keywords = { 2, lu_given_KEYWORDS }; + +static const wchar_t* const lu_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords lu_rule_keywords = { 1, lu_rule_KEYWORDS }; + +static const wchar_t* const lu_scenario_KEYWORDS[] = { L"Beispill", L"Szenario" }; +static const Keywords lu_scenario_keywords = { 2, lu_scenario_KEYWORDS }; + +static const wchar_t* const lu_scenarioOutline_KEYWORDS[] = { L"Plang vum Szenario" }; +static const Keywords lu_scenarioOutline_keywords = { 1, lu_scenarioOutline_KEYWORDS }; + +static const wchar_t* const lu_then_KEYWORDS[] = { L"* ", L"dann " }; +static const Keywords lu_then_keywords = { 2, lu_then_KEYWORDS }; + +static const wchar_t* const lu_when_KEYWORDS[] = { L"* ", L"wann " }; +static const Keywords lu_when_keywords = { 2, lu_when_KEYWORDS }; + +static const Dialect lu_dialect = { + L"lu", + &lu_and_keywords, + &lu_background_keywords, + &lu_but_keywords, + &lu_examples_keywords, + &lu_feature_keywords, + &lu_given_keywords, + &lu_rule_keywords, + &lu_scenario_keywords, + &lu_scenarioOutline_keywords, + &lu_then_keywords, + &lu_when_keywords }; + +static const wchar_t* const lv_and_KEYWORDS[] = { L"* ", L"Un " }; +static const Keywords lv_and_keywords = { 2, lv_and_KEYWORDS }; + +static const wchar_t* const lv_background_KEYWORDS[] = { L"Konteksts", L"Situācija" }; +static const Keywords lv_background_keywords = { 2, lv_background_KEYWORDS }; + +static const wchar_t* const lv_but_KEYWORDS[] = { L"* ", L"Bet " }; +static const Keywords lv_but_keywords = { 2, lv_but_KEYWORDS }; + +static const wchar_t* const lv_examples_KEYWORDS[] = { L"Piemēri", L"Paraugs" }; +static const Keywords lv_examples_keywords = { 2, lv_examples_KEYWORDS }; + +static const wchar_t* const lv_feature_KEYWORDS[] = { L"Funkcionalitāte", L"Fīča" }; +static const Keywords lv_feature_keywords = { 2, lv_feature_KEYWORDS }; + +static const wchar_t* const lv_given_KEYWORDS[] = { L"* ", L"Kad " }; +static const Keywords lv_given_keywords = { 2, lv_given_KEYWORDS }; + +static const wchar_t* const lv_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords lv_rule_keywords = { 1, lv_rule_KEYWORDS }; + +static const wchar_t* const lv_scenario_KEYWORDS[] = { L"Piemērs", L"Scenārijs" }; +static const Keywords lv_scenario_keywords = { 2, lv_scenario_KEYWORDS }; + +static const wchar_t* const lv_scenarioOutline_KEYWORDS[] = { L"Scenārijs pēc parauga" }; +static const Keywords lv_scenarioOutline_keywords = { 1, lv_scenarioOutline_KEYWORDS }; + +static const wchar_t* const lv_then_KEYWORDS[] = { L"* ", L"Tad " }; +static const Keywords lv_then_keywords = { 2, lv_then_KEYWORDS }; + +static const wchar_t* const lv_when_KEYWORDS[] = { L"* ", L"Ja " }; +static const Keywords lv_when_keywords = { 2, lv_when_KEYWORDS }; + +static const Dialect lv_dialect = { + L"lv", + &lv_and_keywords, + &lv_background_keywords, + &lv_but_keywords, + &lv_examples_keywords, + &lv_feature_keywords, + &lv_given_keywords, + &lv_rule_keywords, + &lv_scenario_keywords, + &lv_scenarioOutline_keywords, + &lv_then_keywords, + &lv_when_keywords }; + +static const wchar_t* const mk_Cyrl_and_KEYWORDS[] = { L"* ", L"И " }; +static const Keywords mk_Cyrl_and_keywords = { 2, mk_Cyrl_and_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_background_KEYWORDS[] = { L"Контекст", L"Содржина" }; +static const Keywords mk_Cyrl_background_keywords = { 2, mk_Cyrl_background_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_but_KEYWORDS[] = { L"* ", L"Но " }; +static const Keywords mk_Cyrl_but_keywords = { 2, mk_Cyrl_but_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_examples_KEYWORDS[] = { L"Примери", L"Сценарија" }; +static const Keywords mk_Cyrl_examples_keywords = { 2, mk_Cyrl_examples_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_feature_KEYWORDS[] = { L"Функционалност", L"Бизнис потреба", L"Можност" }; +static const Keywords mk_Cyrl_feature_keywords = { 3, mk_Cyrl_feature_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_given_KEYWORDS[] = { L"* ", L"Дадено ", L"Дадена " }; +static const Keywords mk_Cyrl_given_keywords = { 3, mk_Cyrl_given_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords mk_Cyrl_rule_keywords = { 1, mk_Cyrl_rule_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_scenario_KEYWORDS[] = { L"Пример", L"Сценарио", L"На пример" }; +static const Keywords mk_Cyrl_scenario_keywords = { 3, mk_Cyrl_scenario_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_scenarioOutline_KEYWORDS[] = { L"Преглед на сценарија", L"Скица", L"Концепт" }; +static const Keywords mk_Cyrl_scenarioOutline_keywords = { 3, mk_Cyrl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_then_KEYWORDS[] = { L"* ", L"Тогаш " }; +static const Keywords mk_Cyrl_then_keywords = { 2, mk_Cyrl_then_KEYWORDS }; + +static const wchar_t* const mk_Cyrl_when_KEYWORDS[] = { L"* ", L"Кога " }; +static const Keywords mk_Cyrl_when_keywords = { 2, mk_Cyrl_when_KEYWORDS }; + +static const Dialect mk_Cyrl_dialect = { + L"mk-Cyrl", + &mk_Cyrl_and_keywords, + &mk_Cyrl_background_keywords, + &mk_Cyrl_but_keywords, + &mk_Cyrl_examples_keywords, + &mk_Cyrl_feature_keywords, + &mk_Cyrl_given_keywords, + &mk_Cyrl_rule_keywords, + &mk_Cyrl_scenario_keywords, + &mk_Cyrl_scenarioOutline_keywords, + &mk_Cyrl_then_keywords, + &mk_Cyrl_when_keywords }; + +static const wchar_t* const mk_Latn_and_KEYWORDS[] = { L"* ", L"I " }; +static const Keywords mk_Latn_and_keywords = { 2, mk_Latn_and_KEYWORDS }; + +static const wchar_t* const mk_Latn_background_KEYWORDS[] = { L"Kontekst", L"Sodrzhina" }; +static const Keywords mk_Latn_background_keywords = { 2, mk_Latn_background_KEYWORDS }; + +static const wchar_t* const mk_Latn_but_KEYWORDS[] = { L"* ", L"No " }; +static const Keywords mk_Latn_but_keywords = { 2, mk_Latn_but_KEYWORDS }; + +static const wchar_t* const mk_Latn_examples_KEYWORDS[] = { L"Primeri", L"Scenaria" }; +static const Keywords mk_Latn_examples_keywords = { 2, mk_Latn_examples_KEYWORDS }; + +static const wchar_t* const mk_Latn_feature_KEYWORDS[] = { L"Funkcionalnost", L"Biznis potreba", L"Mozhnost" }; +static const Keywords mk_Latn_feature_keywords = { 3, mk_Latn_feature_KEYWORDS }; + +static const wchar_t* const mk_Latn_given_KEYWORDS[] = { L"* ", L"Dadeno ", L"Dadena " }; +static const Keywords mk_Latn_given_keywords = { 3, mk_Latn_given_KEYWORDS }; + +static const wchar_t* const mk_Latn_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords mk_Latn_rule_keywords = { 1, mk_Latn_rule_KEYWORDS }; + +static const wchar_t* const mk_Latn_scenario_KEYWORDS[] = { L"Scenario", L"Na primer" }; +static const Keywords mk_Latn_scenario_keywords = { 2, mk_Latn_scenario_KEYWORDS }; + +static const wchar_t* const mk_Latn_scenarioOutline_KEYWORDS[] = { L"Pregled na scenarija", L"Skica", L"Koncept" }; +static const Keywords mk_Latn_scenarioOutline_keywords = { 3, mk_Latn_scenarioOutline_KEYWORDS }; + +static const wchar_t* const mk_Latn_then_KEYWORDS[] = { L"* ", L"Togash " }; +static const Keywords mk_Latn_then_keywords = { 2, mk_Latn_then_KEYWORDS }; + +static const wchar_t* const mk_Latn_when_KEYWORDS[] = { L"* ", L"Koga " }; +static const Keywords mk_Latn_when_keywords = { 2, mk_Latn_when_KEYWORDS }; + +static const Dialect mk_Latn_dialect = { + L"mk-Latn", + &mk_Latn_and_keywords, + &mk_Latn_background_keywords, + &mk_Latn_but_keywords, + &mk_Latn_examples_keywords, + &mk_Latn_feature_keywords, + &mk_Latn_given_keywords, + &mk_Latn_rule_keywords, + &mk_Latn_scenario_keywords, + &mk_Latn_scenarioOutline_keywords, + &mk_Latn_then_keywords, + &mk_Latn_when_keywords }; + +static const wchar_t* const mn_and_KEYWORDS[] = { L"* ", L"Мөн ", L"Тэгээд " }; +static const Keywords mn_and_keywords = { 3, mn_and_KEYWORDS }; + +static const wchar_t* const mn_background_KEYWORDS[] = { L"Агуулга" }; +static const Keywords mn_background_keywords = { 1, mn_background_KEYWORDS }; + +static const wchar_t* const mn_but_KEYWORDS[] = { L"* ", L"Гэхдээ ", L"Харин " }; +static const Keywords mn_but_keywords = { 3, mn_but_KEYWORDS }; + +static const wchar_t* const mn_examples_KEYWORDS[] = { L"Тухайлбал" }; +static const Keywords mn_examples_keywords = { 1, mn_examples_KEYWORDS }; + +static const wchar_t* const mn_feature_KEYWORDS[] = { L"Функц", L"Функционал" }; +static const Keywords mn_feature_keywords = { 2, mn_feature_KEYWORDS }; + +static const wchar_t* const mn_given_KEYWORDS[] = { L"* ", L"Өгөгдсөн нь ", L"Анх " }; +static const Keywords mn_given_keywords = { 3, mn_given_KEYWORDS }; + +static const wchar_t* const mn_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords mn_rule_keywords = { 1, mn_rule_KEYWORDS }; + +static const wchar_t* const mn_scenario_KEYWORDS[] = { L"Сценар" }; +static const Keywords mn_scenario_keywords = { 1, mn_scenario_KEYWORDS }; + +static const wchar_t* const mn_scenarioOutline_KEYWORDS[] = { L"Сценарын төлөвлөгөө" }; +static const Keywords mn_scenarioOutline_keywords = { 1, mn_scenarioOutline_KEYWORDS }; + +static const wchar_t* const mn_then_KEYWORDS[] = { L"* ", L"Тэгэхэд ", L"Үүний дараа " }; +static const Keywords mn_then_keywords = { 3, mn_then_KEYWORDS }; + +static const wchar_t* const mn_when_KEYWORDS[] = { L"* ", L"Хэрэв " }; +static const Keywords mn_when_keywords = { 2, mn_when_KEYWORDS }; + +static const Dialect mn_dialect = { + L"mn", + &mn_and_keywords, + &mn_background_keywords, + &mn_but_keywords, + &mn_examples_keywords, + &mn_feature_keywords, + &mn_given_keywords, + &mn_rule_keywords, + &mn_scenario_keywords, + &mn_scenarioOutline_keywords, + &mn_then_keywords, + &mn_when_keywords }; + +static const wchar_t* const ne_and_KEYWORDS[] = { L"* ", L"र ", L"अनि " }; +static const Keywords ne_and_keywords = { 3, ne_and_KEYWORDS }; + +static const wchar_t* const ne_background_KEYWORDS[] = { L"पृष्ठभूमी" }; +static const Keywords ne_background_keywords = { 1, ne_background_KEYWORDS }; + +static const wchar_t* const ne_but_KEYWORDS[] = { L"* ", L"तर " }; +static const Keywords ne_but_keywords = { 2, ne_but_KEYWORDS }; + +static const wchar_t* const ne_examples_KEYWORDS[] = { L"उदाहरण", L"उदाहरणहरु" }; +static const Keywords ne_examples_keywords = { 2, ne_examples_KEYWORDS }; + +static const wchar_t* const ne_feature_KEYWORDS[] = { L"सुविधा", L"विशेषता" }; +static const Keywords ne_feature_keywords = { 2, ne_feature_KEYWORDS }; + +static const wchar_t* const ne_given_KEYWORDS[] = { L"* ", L"दिइएको ", L"दिएको ", L"यदि " }; +static const Keywords ne_given_keywords = { 4, ne_given_KEYWORDS }; + +static const wchar_t* const ne_rule_KEYWORDS[] = { L"नियम" }; +static const Keywords ne_rule_keywords = { 1, ne_rule_KEYWORDS }; + +static const wchar_t* const ne_scenario_KEYWORDS[] = { L"परिदृश्य" }; +static const Keywords ne_scenario_keywords = { 1, ne_scenario_KEYWORDS }; + +static const wchar_t* const ne_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; +static const Keywords ne_scenarioOutline_keywords = { 1, ne_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ne_then_KEYWORDS[] = { L"* ", L"त्यसपछि ", L"अनी " }; +static const Keywords ne_then_keywords = { 3, ne_then_KEYWORDS }; + +static const wchar_t* const ne_when_KEYWORDS[] = { L"* ", L"जब " }; +static const Keywords ne_when_keywords = { 2, ne_when_KEYWORDS }; + +static const Dialect ne_dialect = { + L"ne", + &ne_and_keywords, + &ne_background_keywords, + &ne_but_keywords, + &ne_examples_keywords, + &ne_feature_keywords, + &ne_given_keywords, + &ne_rule_keywords, + &ne_scenario_keywords, + &ne_scenarioOutline_keywords, + &ne_then_keywords, + &ne_when_keywords }; + +static const wchar_t* const nl_and_KEYWORDS[] = { L"* ", L"En " }; +static const Keywords nl_and_keywords = { 2, nl_and_KEYWORDS }; + +static const wchar_t* const nl_background_KEYWORDS[] = { L"Achtergrond" }; +static const Keywords nl_background_keywords = { 1, nl_background_KEYWORDS }; + +static const wchar_t* const nl_but_KEYWORDS[] = { L"* ", L"Maar " }; +static const Keywords nl_but_keywords = { 2, nl_but_KEYWORDS }; + +static const wchar_t* const nl_examples_KEYWORDS[] = { L"Voorbeelden" }; +static const Keywords nl_examples_keywords = { 1, nl_examples_KEYWORDS }; + +static const wchar_t* const nl_feature_KEYWORDS[] = { L"Functionaliteit" }; +static const Keywords nl_feature_keywords = { 1, nl_feature_KEYWORDS }; + +static const wchar_t* const nl_given_KEYWORDS[] = { L"* ", L"Gegeven ", L"Stel " }; +static const Keywords nl_given_keywords = { 3, nl_given_KEYWORDS }; + +static const wchar_t* const nl_rule_KEYWORDS[] = { L"Regel" }; +static const Keywords nl_rule_keywords = { 1, nl_rule_KEYWORDS }; + +static const wchar_t* const nl_scenario_KEYWORDS[] = { L"Voorbeeld", L"Scenario" }; +static const Keywords nl_scenario_keywords = { 2, nl_scenario_KEYWORDS }; + +static const wchar_t* const nl_scenarioOutline_KEYWORDS[] = { L"Abstract Scenario" }; +static const Keywords nl_scenarioOutline_keywords = { 1, nl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const nl_then_KEYWORDS[] = { L"* ", L"Dan " }; +static const Keywords nl_then_keywords = { 2, nl_then_KEYWORDS }; + +static const wchar_t* const nl_when_KEYWORDS[] = { L"* ", L"Als ", L"Wanneer " }; +static const Keywords nl_when_keywords = { 3, nl_when_KEYWORDS }; + +static const Dialect nl_dialect = { + L"nl", + &nl_and_keywords, + &nl_background_keywords, + &nl_but_keywords, + &nl_examples_keywords, + &nl_feature_keywords, + &nl_given_keywords, + &nl_rule_keywords, + &nl_scenario_keywords, + &nl_scenarioOutline_keywords, + &nl_then_keywords, + &nl_when_keywords }; + +static const wchar_t* const no_and_KEYWORDS[] = { L"* ", L"Og " }; +static const Keywords no_and_keywords = { 2, no_and_KEYWORDS }; + +static const wchar_t* const no_background_KEYWORDS[] = { L"Bakgrunn" }; +static const Keywords no_background_keywords = { 1, no_background_KEYWORDS }; + +static const wchar_t* const no_but_KEYWORDS[] = { L"* ", L"Men " }; +static const Keywords no_but_keywords = { 2, no_but_KEYWORDS }; + +static const wchar_t* const no_examples_KEYWORDS[] = { L"Eksempler" }; +static const Keywords no_examples_keywords = { 1, no_examples_KEYWORDS }; + +static const wchar_t* const no_feature_KEYWORDS[] = { L"Egenskap" }; +static const Keywords no_feature_keywords = { 1, no_feature_KEYWORDS }; + +static const wchar_t* const no_given_KEYWORDS[] = { L"* ", L"Gitt " }; +static const Keywords no_given_keywords = { 2, no_given_KEYWORDS }; + +static const wchar_t* const no_rule_KEYWORDS[] = { L"Regel" }; +static const Keywords no_rule_keywords = { 1, no_rule_KEYWORDS }; + +static const wchar_t* const no_scenario_KEYWORDS[] = { L"Eksempel", L"Scenario" }; +static const Keywords no_scenario_keywords = { 2, no_scenario_KEYWORDS }; + +static const wchar_t* const no_scenarioOutline_KEYWORDS[] = { L"Scenariomal", L"Abstrakt Scenario" }; +static const Keywords no_scenarioOutline_keywords = { 2, no_scenarioOutline_KEYWORDS }; + +static const wchar_t* const no_then_KEYWORDS[] = { L"* ", L"Så " }; +static const Keywords no_then_keywords = { 2, no_then_KEYWORDS }; + +static const wchar_t* const no_when_KEYWORDS[] = { L"* ", L"Når " }; +static const Keywords no_when_keywords = { 2, no_when_KEYWORDS }; + +static const Dialect no_dialect = { + L"no", + &no_and_keywords, + &no_background_keywords, + &no_but_keywords, + &no_examples_keywords, + &no_feature_keywords, + &no_given_keywords, + &no_rule_keywords, + &no_scenario_keywords, + &no_scenarioOutline_keywords, + &no_then_keywords, + &no_when_keywords }; + +static const wchar_t* const pa_and_KEYWORDS[] = { L"* ", L"ਅਤੇ " }; +static const Keywords pa_and_keywords = { 2, pa_and_KEYWORDS }; + +static const wchar_t* const pa_background_KEYWORDS[] = { L"ਪਿਛੋਕੜ" }; +static const Keywords pa_background_keywords = { 1, pa_background_KEYWORDS }; + +static const wchar_t* const pa_but_KEYWORDS[] = { L"* ", L"ਪਰ " }; +static const Keywords pa_but_keywords = { 2, pa_but_KEYWORDS }; + +static const wchar_t* const pa_examples_KEYWORDS[] = { L"ਉਦਾਹਰਨਾਂ" }; +static const Keywords pa_examples_keywords = { 1, pa_examples_KEYWORDS }; + +static const wchar_t* const pa_feature_KEYWORDS[] = { L"ਖਾਸੀਅਤ", L"ਮੁਹਾਂਦਰਾ", L"ਨਕਸ਼ ਨੁਹਾਰ" }; +static const Keywords pa_feature_keywords = { 3, pa_feature_KEYWORDS }; + +static const wchar_t* const pa_given_KEYWORDS[] = { L"* ", L"ਜੇਕਰ ", L"ਜਿਵੇਂ ਕਿ " }; +static const Keywords pa_given_keywords = { 3, pa_given_KEYWORDS }; + +static const wchar_t* const pa_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords pa_rule_keywords = { 1, pa_rule_KEYWORDS }; + +static const wchar_t* const pa_scenario_KEYWORDS[] = { L"ਉਦਾਹਰਨ", L"ਪਟਕਥਾ" }; +static const Keywords pa_scenario_keywords = { 2, pa_scenario_KEYWORDS }; + +static const wchar_t* const pa_scenarioOutline_KEYWORDS[] = { L"ਪਟਕਥਾ ਢਾਂਚਾ", L"ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ" }; +static const Keywords pa_scenarioOutline_keywords = { 2, pa_scenarioOutline_KEYWORDS }; + +static const wchar_t* const pa_then_KEYWORDS[] = { L"* ", L"ਤਦ " }; +static const Keywords pa_then_keywords = { 2, pa_then_KEYWORDS }; + +static const wchar_t* const pa_when_KEYWORDS[] = { L"* ", L"ਜਦੋਂ " }; +static const Keywords pa_when_keywords = { 2, pa_when_KEYWORDS }; + +static const Dialect pa_dialect = { + L"pa", + &pa_and_keywords, + &pa_background_keywords, + &pa_but_keywords, + &pa_examples_keywords, + &pa_feature_keywords, + &pa_given_keywords, + &pa_rule_keywords, + &pa_scenario_keywords, + &pa_scenarioOutline_keywords, + &pa_then_keywords, + &pa_when_keywords }; + +static const wchar_t* const pl_and_KEYWORDS[] = { L"* ", L"Oraz ", L"I " }; +static const Keywords pl_and_keywords = { 3, pl_and_KEYWORDS }; + +static const wchar_t* const pl_background_KEYWORDS[] = { L"Założenia" }; +static const Keywords pl_background_keywords = { 1, pl_background_KEYWORDS }; + +static const wchar_t* const pl_but_KEYWORDS[] = { L"* ", L"Ale " }; +static const Keywords pl_but_keywords = { 2, pl_but_KEYWORDS }; + +static const wchar_t* const pl_examples_KEYWORDS[] = { L"Przykłady" }; +static const Keywords pl_examples_keywords = { 1, pl_examples_KEYWORDS }; + +static const wchar_t* const pl_feature_KEYWORDS[] = { L"Właściwość", L"Funkcja", L"Aspekt", L"Potrzeba biznesowa" }; +static const Keywords pl_feature_keywords = { 4, pl_feature_KEYWORDS }; + +static const wchar_t* const pl_given_KEYWORDS[] = { L"* ", L"Zakładając ", L"Mając ", L"Zakładając, że " }; +static const Keywords pl_given_keywords = { 4, pl_given_KEYWORDS }; + +static const wchar_t* const pl_rule_KEYWORDS[] = { L"Zasada", L"Reguła" }; +static const Keywords pl_rule_keywords = { 2, pl_rule_KEYWORDS }; + +static const wchar_t* const pl_scenario_KEYWORDS[] = { L"Przykład", L"Scenariusz" }; +static const Keywords pl_scenario_keywords = { 2, pl_scenario_KEYWORDS }; + +static const wchar_t* const pl_scenarioOutline_KEYWORDS[] = { L"Szablon scenariusza" }; +static const Keywords pl_scenarioOutline_keywords = { 1, pl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const pl_then_KEYWORDS[] = { L"* ", L"Wtedy " }; +static const Keywords pl_then_keywords = { 2, pl_then_KEYWORDS }; + +static const wchar_t* const pl_when_KEYWORDS[] = { L"* ", L"Jeżeli ", L"Jeśli ", L"Gdy ", L"Kiedy " }; +static const Keywords pl_when_keywords = { 5, pl_when_KEYWORDS }; + +static const Dialect pl_dialect = { + L"pl", + &pl_and_keywords, + &pl_background_keywords, + &pl_but_keywords, + &pl_examples_keywords, + &pl_feature_keywords, + &pl_given_keywords, + &pl_rule_keywords, + &pl_scenario_keywords, + &pl_scenarioOutline_keywords, + &pl_then_keywords, + &pl_when_keywords }; + +static const wchar_t* const pt_and_KEYWORDS[] = { L"* ", L"E " }; +static const Keywords pt_and_keywords = { 2, pt_and_KEYWORDS }; + +static const wchar_t* const pt_background_KEYWORDS[] = { L"Contexto", L"Cenário de Fundo", L"Cenario de Fundo", L"Fundo" }; +static const Keywords pt_background_keywords = { 4, pt_background_KEYWORDS }; + +static const wchar_t* const pt_but_KEYWORDS[] = { L"* ", L"Mas " }; +static const Keywords pt_but_keywords = { 2, pt_but_KEYWORDS }; + +static const wchar_t* const pt_examples_KEYWORDS[] = { L"Exemplos", L"Cenários", L"Cenarios" }; +static const Keywords pt_examples_keywords = { 3, pt_examples_KEYWORDS }; + +static const wchar_t* const pt_feature_KEYWORDS[] = { L"Funcionalidade", L"Característica", L"Caracteristica" }; +static const Keywords pt_feature_keywords = { 3, pt_feature_KEYWORDS }; + +static const wchar_t* const pt_given_KEYWORDS[] = { L"* ", L"Dado ", L"Dada ", L"Dados ", L"Dadas " }; +static const Keywords pt_given_keywords = { 5, pt_given_KEYWORDS }; + +static const wchar_t* const pt_rule_KEYWORDS[] = { L"Regra" }; +static const Keywords pt_rule_keywords = { 1, pt_rule_KEYWORDS }; + +static const wchar_t* const pt_scenario_KEYWORDS[] = { L"Exemplo", L"Cenário", L"Cenario" }; +static const Keywords pt_scenario_keywords = { 3, pt_scenario_KEYWORDS }; + +static const wchar_t* const pt_scenarioOutline_KEYWORDS[] = { L"Esquema do Cenário", L"Esquema do Cenario", L"Delineação do Cenário", L"Delineacao do Cenario" }; +static const Keywords pt_scenarioOutline_keywords = { 4, pt_scenarioOutline_KEYWORDS }; + +static const wchar_t* const pt_then_KEYWORDS[] = { L"* ", L"Então ", L"Entao " }; +static const Keywords pt_then_keywords = { 3, pt_then_KEYWORDS }; + +static const wchar_t* const pt_when_KEYWORDS[] = { L"* ", L"Quando " }; +static const Keywords pt_when_keywords = { 2, pt_when_KEYWORDS }; + +static const Dialect pt_dialect = { + L"pt", + &pt_and_keywords, + &pt_background_keywords, + &pt_but_keywords, + &pt_examples_keywords, + &pt_feature_keywords, + &pt_given_keywords, + &pt_rule_keywords, + &pt_scenario_keywords, + &pt_scenarioOutline_keywords, + &pt_then_keywords, + &pt_when_keywords }; + +static const wchar_t* const ro_and_KEYWORDS[] = { L"* ", L"Si ", L"Și ", L"Şi " }; +static const Keywords ro_and_keywords = { 4, ro_and_KEYWORDS }; + +static const wchar_t* const ro_background_KEYWORDS[] = { L"Context" }; +static const Keywords ro_background_keywords = { 1, ro_background_KEYWORDS }; + +static const wchar_t* const ro_but_KEYWORDS[] = { L"* ", L"Dar " }; +static const Keywords ro_but_keywords = { 2, ro_but_KEYWORDS }; + +static const wchar_t* const ro_examples_KEYWORDS[] = { L"Exemple" }; +static const Keywords ro_examples_keywords = { 1, ro_examples_KEYWORDS }; + +static const wchar_t* const ro_feature_KEYWORDS[] = { L"Functionalitate", L"Funcționalitate", L"Funcţionalitate" }; +static const Keywords ro_feature_keywords = { 3, ro_feature_KEYWORDS }; + +static const wchar_t* const ro_given_KEYWORDS[] = { L"* ", L"Date fiind ", L"Dat fiind ", L"Dată fiind", L"Dati fiind ", L"Dați fiind ", L"Daţi fiind " }; +static const Keywords ro_given_keywords = { 7, ro_given_KEYWORDS }; + +static const wchar_t* const ro_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ro_rule_keywords = { 1, ro_rule_KEYWORDS }; + +static const wchar_t* const ro_scenario_KEYWORDS[] = { L"Exemplu", L"Scenariu" }; +static const Keywords ro_scenario_keywords = { 2, ro_scenario_KEYWORDS }; + +static const wchar_t* const ro_scenarioOutline_KEYWORDS[] = { L"Structura scenariu", L"Structură scenariu" }; +static const Keywords ro_scenarioOutline_keywords = { 2, ro_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ro_then_KEYWORDS[] = { L"* ", L"Atunci " }; +static const Keywords ro_then_keywords = { 2, ro_then_KEYWORDS }; + +static const wchar_t* const ro_when_KEYWORDS[] = { L"* ", L"Cand ", L"Când " }; +static const Keywords ro_when_keywords = { 3, ro_when_KEYWORDS }; + +static const Dialect ro_dialect = { + L"ro", + &ro_and_keywords, + &ro_background_keywords, + &ro_but_keywords, + &ro_examples_keywords, + &ro_feature_keywords, + &ro_given_keywords, + &ro_rule_keywords, + &ro_scenario_keywords, + &ro_scenarioOutline_keywords, + &ro_then_keywords, + &ro_when_keywords }; + +static const wchar_t* const ru_and_KEYWORDS[] = { L"* ", L"И ", L"К тому же ", L"Также " }; +static const Keywords ru_and_keywords = { 4, ru_and_KEYWORDS }; + +static const wchar_t* const ru_background_KEYWORDS[] = { L"Предыстория", L"Контекст" }; +static const Keywords ru_background_keywords = { 2, ru_background_KEYWORDS }; + +static const wchar_t* const ru_but_KEYWORDS[] = { L"* ", L"Но ", L"А ", L"Иначе " }; +static const Keywords ru_but_keywords = { 4, ru_but_KEYWORDS }; + +static const wchar_t* const ru_examples_KEYWORDS[] = { L"Примеры" }; +static const Keywords ru_examples_keywords = { 1, ru_examples_KEYWORDS }; + +static const wchar_t* const ru_feature_KEYWORDS[] = { L"Функция", L"Функциональность", L"Функционал", L"Свойство", L"Фича" }; +static const Keywords ru_feature_keywords = { 5, ru_feature_KEYWORDS }; + +static const wchar_t* const ru_given_KEYWORDS[] = { L"* ", L"Допустим ", L"Дано ", L"Пусть " }; +static const Keywords ru_given_keywords = { 4, ru_given_KEYWORDS }; + +static const wchar_t* const ru_rule_KEYWORDS[] = { L"Правило" }; +static const Keywords ru_rule_keywords = { 1, ru_rule_KEYWORDS }; + +static const wchar_t* const ru_scenario_KEYWORDS[] = { L"Пример", L"Сценарий" }; +static const Keywords ru_scenario_keywords = { 2, ru_scenario_KEYWORDS }; + +static const wchar_t* const ru_scenarioOutline_KEYWORDS[] = { L"Структура сценария", L"Шаблон сценария" }; +static const Keywords ru_scenarioOutline_keywords = { 2, ru_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ru_then_KEYWORDS[] = { L"* ", L"То ", L"Затем ", L"Тогда " }; +static const Keywords ru_then_keywords = { 4, ru_then_KEYWORDS }; + +static const wchar_t* const ru_when_KEYWORDS[] = { L"* ", L"Когда ", L"Если " }; +static const Keywords ru_when_keywords = { 3, ru_when_KEYWORDS }; + +static const Dialect ru_dialect = { + L"ru", + &ru_and_keywords, + &ru_background_keywords, + &ru_but_keywords, + &ru_examples_keywords, + &ru_feature_keywords, + &ru_given_keywords, + &ru_rule_keywords, + &ru_scenario_keywords, + &ru_scenarioOutline_keywords, + &ru_then_keywords, + &ru_when_keywords }; + +static const wchar_t* const sk_and_KEYWORDS[] = { L"* ", L"A ", L"A tiež ", L"A taktiež ", L"A zároveň " }; +static const Keywords sk_and_keywords = { 5, sk_and_KEYWORDS }; + +static const wchar_t* const sk_background_KEYWORDS[] = { L"Pozadie" }; +static const Keywords sk_background_keywords = { 1, sk_background_KEYWORDS }; + +static const wchar_t* const sk_but_KEYWORDS[] = { L"* ", L"Ale " }; +static const Keywords sk_but_keywords = { 2, sk_but_KEYWORDS }; + +static const wchar_t* const sk_examples_KEYWORDS[] = { L"Príklady" }; +static const Keywords sk_examples_keywords = { 1, sk_examples_KEYWORDS }; + +static const wchar_t* const sk_feature_KEYWORDS[] = { L"Požiadavka", L"Funkcia", L"Vlastnosť" }; +static const Keywords sk_feature_keywords = { 3, sk_feature_KEYWORDS }; + +static const wchar_t* const sk_given_KEYWORDS[] = { L"* ", L"Pokiaľ ", L"Za predpokladu " }; +static const Keywords sk_given_keywords = { 3, sk_given_KEYWORDS }; + +static const wchar_t* const sk_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords sk_rule_keywords = { 1, sk_rule_KEYWORDS }; + +static const wchar_t* const sk_scenario_KEYWORDS[] = { L"Príklad", L"Scenár" }; +static const Keywords sk_scenario_keywords = { 2, sk_scenario_KEYWORDS }; + +static const wchar_t* const sk_scenarioOutline_KEYWORDS[] = { L"Náčrt Scenáru", L"Náčrt Scenára", L"Osnova Scenára" }; +static const Keywords sk_scenarioOutline_keywords = { 3, sk_scenarioOutline_KEYWORDS }; + +static const wchar_t* const sk_then_KEYWORDS[] = { L"* ", L"Tak ", L"Potom " }; +static const Keywords sk_then_keywords = { 3, sk_then_KEYWORDS }; + +static const wchar_t* const sk_when_KEYWORDS[] = { L"* ", L"Keď ", L"Ak " }; +static const Keywords sk_when_keywords = { 3, sk_when_KEYWORDS }; + +static const Dialect sk_dialect = { + L"sk", + &sk_and_keywords, + &sk_background_keywords, + &sk_but_keywords, + &sk_examples_keywords, + &sk_feature_keywords, + &sk_given_keywords, + &sk_rule_keywords, + &sk_scenario_keywords, + &sk_scenarioOutline_keywords, + &sk_then_keywords, + &sk_when_keywords }; + +static const wchar_t* const sl_and_KEYWORDS[] = { L"In ", L"Ter " }; +static const Keywords sl_and_keywords = { 2, sl_and_KEYWORDS }; + +static const wchar_t* const sl_background_KEYWORDS[] = { L"Kontekst", L"Osnova", L"Ozadje" }; +static const Keywords sl_background_keywords = { 3, sl_background_KEYWORDS }; + +static const wchar_t* const sl_but_KEYWORDS[] = { L"Toda ", L"Ampak ", L"Vendar " }; +static const Keywords sl_but_keywords = { 3, sl_but_KEYWORDS }; + +static const wchar_t* const sl_examples_KEYWORDS[] = { L"Primeri", L"Scenariji" }; +static const Keywords sl_examples_keywords = { 2, sl_examples_KEYWORDS }; + +static const wchar_t* const sl_feature_KEYWORDS[] = { L"Funkcionalnost", L"Funkcija", L"Možnosti", L"Moznosti", L"Lastnost", L"Značilnost" }; +static const Keywords sl_feature_keywords = { 6, sl_feature_KEYWORDS }; + +static const wchar_t* const sl_given_KEYWORDS[] = { L"Dano ", L"Podano ", L"Zaradi ", L"Privzeto " }; +static const Keywords sl_given_keywords = { 4, sl_given_KEYWORDS }; + +static const wchar_t* const sl_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords sl_rule_keywords = { 1, sl_rule_KEYWORDS }; + +static const wchar_t* const sl_scenario_KEYWORDS[] = { L"Primer", L"Scenarij" }; +static const Keywords sl_scenario_keywords = { 2, sl_scenario_KEYWORDS }; + +static const wchar_t* const sl_scenarioOutline_KEYWORDS[] = { L"Struktura scenarija", L"Skica", L"Koncept", L"Oris scenarija", L"Osnutek" }; +static const Keywords sl_scenarioOutline_keywords = { 5, sl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const sl_then_KEYWORDS[] = { L"Nato ", L"Potem ", L"Takrat " }; +static const Keywords sl_then_keywords = { 3, sl_then_KEYWORDS }; + +static const wchar_t* const sl_when_KEYWORDS[] = { L"Ko ", L"Ce ", L"Če ", L"Kadar " }; +static const Keywords sl_when_keywords = { 4, sl_when_KEYWORDS }; + +static const Dialect sl_dialect = { + L"sl", + &sl_and_keywords, + &sl_background_keywords, + &sl_but_keywords, + &sl_examples_keywords, + &sl_feature_keywords, + &sl_given_keywords, + &sl_rule_keywords, + &sl_scenario_keywords, + &sl_scenarioOutline_keywords, + &sl_then_keywords, + &sl_when_keywords }; + +static const wchar_t* const sr_Cyrl_and_KEYWORDS[] = { L"* ", L"И " }; +static const Keywords sr_Cyrl_and_keywords = { 2, sr_Cyrl_and_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_background_KEYWORDS[] = { L"Контекст", L"Основа", L"Позадина" }; +static const Keywords sr_Cyrl_background_keywords = { 3, sr_Cyrl_background_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_but_KEYWORDS[] = { L"* ", L"Али " }; +static const Keywords sr_Cyrl_but_keywords = { 2, sr_Cyrl_but_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_examples_KEYWORDS[] = { L"Примери", L"Сценарији" }; +static const Keywords sr_Cyrl_examples_keywords = { 2, sr_Cyrl_examples_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_feature_KEYWORDS[] = { L"Функционалност", L"Могућност", L"Особина" }; +static const Keywords sr_Cyrl_feature_keywords = { 3, sr_Cyrl_feature_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_given_KEYWORDS[] = { L"* ", L"За дато ", L"За дате ", L"За дати " }; +static const Keywords sr_Cyrl_given_keywords = { 4, sr_Cyrl_given_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_rule_KEYWORDS[] = { L"Правило" }; +static const Keywords sr_Cyrl_rule_keywords = { 1, sr_Cyrl_rule_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_scenario_KEYWORDS[] = { L"Сценарио", L"Пример" }; +static const Keywords sr_Cyrl_scenario_keywords = { 2, sr_Cyrl_scenario_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_scenarioOutline_KEYWORDS[] = { L"Структура сценарија", L"Скица", L"Концепт" }; +static const Keywords sr_Cyrl_scenarioOutline_keywords = { 3, sr_Cyrl_scenarioOutline_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_then_KEYWORDS[] = { L"* ", L"Онда " }; +static const Keywords sr_Cyrl_then_keywords = { 2, sr_Cyrl_then_KEYWORDS }; + +static const wchar_t* const sr_Cyrl_when_KEYWORDS[] = { L"* ", L"Када ", L"Кад " }; +static const Keywords sr_Cyrl_when_keywords = { 3, sr_Cyrl_when_KEYWORDS }; + +static const Dialect sr_Cyrl_dialect = { + L"sr-Cyrl", + &sr_Cyrl_and_keywords, + &sr_Cyrl_background_keywords, + &sr_Cyrl_but_keywords, + &sr_Cyrl_examples_keywords, + &sr_Cyrl_feature_keywords, + &sr_Cyrl_given_keywords, + &sr_Cyrl_rule_keywords, + &sr_Cyrl_scenario_keywords, + &sr_Cyrl_scenarioOutline_keywords, + &sr_Cyrl_then_keywords, + &sr_Cyrl_when_keywords }; + +static const wchar_t* const sr_Latn_and_KEYWORDS[] = { L"* ", L"I " }; +static const Keywords sr_Latn_and_keywords = { 2, sr_Latn_and_KEYWORDS }; + +static const wchar_t* const sr_Latn_background_KEYWORDS[] = { L"Kontekst", L"Osnova", L"Pozadina" }; +static const Keywords sr_Latn_background_keywords = { 3, sr_Latn_background_KEYWORDS }; + +static const wchar_t* const sr_Latn_but_KEYWORDS[] = { L"* ", L"Ali " }; +static const Keywords sr_Latn_but_keywords = { 2, sr_Latn_but_KEYWORDS }; + +static const wchar_t* const sr_Latn_examples_KEYWORDS[] = { L"Primeri", L"Scenariji" }; +static const Keywords sr_Latn_examples_keywords = { 2, sr_Latn_examples_KEYWORDS }; + +static const wchar_t* const sr_Latn_feature_KEYWORDS[] = { L"Funkcionalnost", L"Mogućnost", L"Mogucnost", L"Osobina" }; +static const Keywords sr_Latn_feature_keywords = { 4, sr_Latn_feature_KEYWORDS }; + +static const wchar_t* const sr_Latn_given_KEYWORDS[] = { L"* ", L"Za dato ", L"Za date ", L"Za dati " }; +static const Keywords sr_Latn_given_keywords = { 4, sr_Latn_given_KEYWORDS }; + +static const wchar_t* const sr_Latn_rule_KEYWORDS[] = { L"Pravilo" }; +static const Keywords sr_Latn_rule_keywords = { 1, sr_Latn_rule_KEYWORDS }; + +static const wchar_t* const sr_Latn_scenario_KEYWORDS[] = { L"Scenario", L"Primer" }; +static const Keywords sr_Latn_scenario_keywords = { 2, sr_Latn_scenario_KEYWORDS }; + +static const wchar_t* const sr_Latn_scenarioOutline_KEYWORDS[] = { L"Struktura scenarija", L"Skica", L"Koncept" }; +static const Keywords sr_Latn_scenarioOutline_keywords = { 3, sr_Latn_scenarioOutline_KEYWORDS }; + +static const wchar_t* const sr_Latn_then_KEYWORDS[] = { L"* ", L"Onda " }; +static const Keywords sr_Latn_then_keywords = { 2, sr_Latn_then_KEYWORDS }; + +static const wchar_t* const sr_Latn_when_KEYWORDS[] = { L"* ", L"Kada ", L"Kad " }; +static const Keywords sr_Latn_when_keywords = { 3, sr_Latn_when_KEYWORDS }; + +static const Dialect sr_Latn_dialect = { + L"sr-Latn", + &sr_Latn_and_keywords, + &sr_Latn_background_keywords, + &sr_Latn_but_keywords, + &sr_Latn_examples_keywords, + &sr_Latn_feature_keywords, + &sr_Latn_given_keywords, + &sr_Latn_rule_keywords, + &sr_Latn_scenario_keywords, + &sr_Latn_scenarioOutline_keywords, + &sr_Latn_then_keywords, + &sr_Latn_when_keywords }; + +static const wchar_t* const sv_and_KEYWORDS[] = { L"* ", L"Och " }; +static const Keywords sv_and_keywords = { 2, sv_and_KEYWORDS }; + +static const wchar_t* const sv_background_KEYWORDS[] = { L"Bakgrund" }; +static const Keywords sv_background_keywords = { 1, sv_background_KEYWORDS }; + +static const wchar_t* const sv_but_KEYWORDS[] = { L"* ", L"Men " }; +static const Keywords sv_but_keywords = { 2, sv_but_KEYWORDS }; + +static const wchar_t* const sv_examples_KEYWORDS[] = { L"Exempel" }; +static const Keywords sv_examples_keywords = { 1, sv_examples_KEYWORDS }; + +static const wchar_t* const sv_feature_KEYWORDS[] = { L"Egenskap" }; +static const Keywords sv_feature_keywords = { 1, sv_feature_KEYWORDS }; + +static const wchar_t* const sv_given_KEYWORDS[] = { L"* ", L"Givet " }; +static const Keywords sv_given_keywords = { 2, sv_given_KEYWORDS }; + +static const wchar_t* const sv_rule_KEYWORDS[] = { L"Regel" }; +static const Keywords sv_rule_keywords = { 1, sv_rule_KEYWORDS }; + +static const wchar_t* const sv_scenario_KEYWORDS[] = { L"Scenario" }; +static const Keywords sv_scenario_keywords = { 1, sv_scenario_KEYWORDS }; + +static const wchar_t* const sv_scenarioOutline_KEYWORDS[] = { L"Abstrakt Scenario", L"Scenariomall" }; +static const Keywords sv_scenarioOutline_keywords = { 2, sv_scenarioOutline_KEYWORDS }; + +static const wchar_t* const sv_then_KEYWORDS[] = { L"* ", L"Så " }; +static const Keywords sv_then_keywords = { 2, sv_then_KEYWORDS }; + +static const wchar_t* const sv_when_KEYWORDS[] = { L"* ", L"När " }; +static const Keywords sv_when_keywords = { 2, sv_when_KEYWORDS }; + +static const Dialect sv_dialect = { + L"sv", + &sv_and_keywords, + &sv_background_keywords, + &sv_but_keywords, + &sv_examples_keywords, + &sv_feature_keywords, + &sv_given_keywords, + &sv_rule_keywords, + &sv_scenario_keywords, + &sv_scenarioOutline_keywords, + &sv_then_keywords, + &sv_when_keywords }; + +static const wchar_t* const ta_and_KEYWORDS[] = { L"* ", L"மேலும் ", L"மற்றும் " }; +static const Keywords ta_and_keywords = { 3, ta_and_KEYWORDS }; + +static const wchar_t* const ta_background_KEYWORDS[] = { L"பின்னணி" }; +static const Keywords ta_background_keywords = { 1, ta_background_KEYWORDS }; + +static const wchar_t* const ta_but_KEYWORDS[] = { L"* ", L"ஆனால் " }; +static const Keywords ta_but_keywords = { 2, ta_but_KEYWORDS }; + +static const wchar_t* const ta_examples_KEYWORDS[] = { L"எடுத்துக்காட்டுகள்", L"காட்சிகள்", L"நிலைமைகளில்" }; +static const Keywords ta_examples_keywords = { 3, ta_examples_KEYWORDS }; + +static const wchar_t* const ta_feature_KEYWORDS[] = { L"அம்சம்", L"வணிக தேவை", L"திறன்" }; +static const Keywords ta_feature_keywords = { 3, ta_feature_KEYWORDS }; + +static const wchar_t* const ta_given_KEYWORDS[] = { L"* ", L"கொடுக்கப்பட்ட " }; +static const Keywords ta_given_keywords = { 2, ta_given_KEYWORDS }; + +static const wchar_t* const ta_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ta_rule_keywords = { 1, ta_rule_KEYWORDS }; + +static const wchar_t* const ta_scenario_KEYWORDS[] = { L"உதாரணமாக", L"காட்சி" }; +static const Keywords ta_scenario_keywords = { 2, ta_scenario_KEYWORDS }; + +static const wchar_t* const ta_scenarioOutline_KEYWORDS[] = { L"காட்சி சுருக்கம்", L"காட்சி வார்ப்புரு" }; +static const Keywords ta_scenarioOutline_keywords = { 2, ta_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ta_then_KEYWORDS[] = { L"* ", L"அப்பொழுது " }; +static const Keywords ta_then_keywords = { 2, ta_then_KEYWORDS }; + +static const wchar_t* const ta_when_KEYWORDS[] = { L"* ", L"எப்போது " }; +static const Keywords ta_when_keywords = { 2, ta_when_KEYWORDS }; + +static const Dialect ta_dialect = { + L"ta", + &ta_and_keywords, + &ta_background_keywords, + &ta_but_keywords, + &ta_examples_keywords, + &ta_feature_keywords, + &ta_given_keywords, + &ta_rule_keywords, + &ta_scenario_keywords, + &ta_scenarioOutline_keywords, + &ta_then_keywords, + &ta_when_keywords }; + +static const wchar_t* const th_and_KEYWORDS[] = { L"* ", L"และ " }; +static const Keywords th_and_keywords = { 2, th_and_KEYWORDS }; + +static const wchar_t* const th_background_KEYWORDS[] = { L"แนวคิด" }; +static const Keywords th_background_keywords = { 1, th_background_KEYWORDS }; + +static const wchar_t* const th_but_KEYWORDS[] = { L"* ", L"แต่ " }; +static const Keywords th_but_keywords = { 2, th_but_KEYWORDS }; + +static const wchar_t* const th_examples_KEYWORDS[] = { L"ชุดของตัวอย่าง", L"ชุดของเหตุการณ์" }; +static const Keywords th_examples_keywords = { 2, th_examples_KEYWORDS }; + +static const wchar_t* const th_feature_KEYWORDS[] = { L"โครงหลัก", L"ความต้องการทางธุรกิจ", L"ความสามารถ" }; +static const Keywords th_feature_keywords = { 3, th_feature_KEYWORDS }; + +static const wchar_t* const th_given_KEYWORDS[] = { L"* ", L"กำหนดให้ " }; +static const Keywords th_given_keywords = { 2, th_given_KEYWORDS }; + +static const wchar_t* const th_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords th_rule_keywords = { 1, th_rule_KEYWORDS }; + +static const wchar_t* const th_scenario_KEYWORDS[] = { L"เหตุการณ์" }; +static const Keywords th_scenario_keywords = { 1, th_scenario_KEYWORDS }; + +static const wchar_t* const th_scenarioOutline_KEYWORDS[] = { L"สรุปเหตุการณ์", L"โครงสร้างของเหตุการณ์" }; +static const Keywords th_scenarioOutline_keywords = { 2, th_scenarioOutline_KEYWORDS }; + +static const wchar_t* const th_then_KEYWORDS[] = { L"* ", L"ดังนั้น " }; +static const Keywords th_then_keywords = { 2, th_then_KEYWORDS }; + +static const wchar_t* const th_when_KEYWORDS[] = { L"* ", L"เมื่อ " }; +static const Keywords th_when_keywords = { 2, th_when_KEYWORDS }; + +static const Dialect th_dialect = { + L"th", + &th_and_keywords, + &th_background_keywords, + &th_but_keywords, + &th_examples_keywords, + &th_feature_keywords, + &th_given_keywords, + &th_rule_keywords, + &th_scenario_keywords, + &th_scenarioOutline_keywords, + &th_then_keywords, + &th_when_keywords }; + +static const wchar_t* const te_and_KEYWORDS[] = { L"* ", L"మరియు " }; +static const Keywords te_and_keywords = { 2, te_and_KEYWORDS }; + +static const wchar_t* const te_background_KEYWORDS[] = { L"నేపథ్యం" }; +static const Keywords te_background_keywords = { 1, te_background_KEYWORDS }; + +static const wchar_t* const te_but_KEYWORDS[] = { L"* ", L"కాని " }; +static const Keywords te_but_keywords = { 2, te_but_KEYWORDS }; + +static const wchar_t* const te_examples_KEYWORDS[] = { L"ఉదాహరణలు" }; +static const Keywords te_examples_keywords = { 1, te_examples_KEYWORDS }; + +static const wchar_t* const te_feature_KEYWORDS[] = { L"గుణము" }; +static const Keywords te_feature_keywords = { 1, te_feature_KEYWORDS }; + +static const wchar_t* const te_given_KEYWORDS[] = { L"* ", L"చెప్పబడినది " }; +static const Keywords te_given_keywords = { 2, te_given_KEYWORDS }; + +static const wchar_t* const te_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords te_rule_keywords = { 1, te_rule_KEYWORDS }; + +static const wchar_t* const te_scenario_KEYWORDS[] = { L"ఉదాహరణ", L"సన్నివేశం" }; +static const Keywords te_scenario_keywords = { 2, te_scenario_KEYWORDS }; + +static const wchar_t* const te_scenarioOutline_KEYWORDS[] = { L"కథనం" }; +static const Keywords te_scenarioOutline_keywords = { 1, te_scenarioOutline_KEYWORDS }; + +static const wchar_t* const te_then_KEYWORDS[] = { L"* ", L"అప్పుడు " }; +static const Keywords te_then_keywords = { 2, te_then_KEYWORDS }; + +static const wchar_t* const te_when_KEYWORDS[] = { L"* ", L"ఈ పరిస్థితిలో " }; +static const Keywords te_when_keywords = { 2, te_when_KEYWORDS }; + +static const Dialect te_dialect = { + L"te", + &te_and_keywords, + &te_background_keywords, + &te_but_keywords, + &te_examples_keywords, + &te_feature_keywords, + &te_given_keywords, + &te_rule_keywords, + &te_scenario_keywords, + &te_scenarioOutline_keywords, + &te_then_keywords, + &te_when_keywords }; + +static const wchar_t* const tlh_and_KEYWORDS[] = { L"* ", L"'ej ", L"latlh " }; +static const Keywords tlh_and_keywords = { 3, tlh_and_KEYWORDS }; + +static const wchar_t* const tlh_background_KEYWORDS[] = { L"mo'" }; +static const Keywords tlh_background_keywords = { 1, tlh_background_KEYWORDS }; + +static const wchar_t* const tlh_but_KEYWORDS[] = { L"* ", L"'ach ", L"'a " }; +static const Keywords tlh_but_keywords = { 3, tlh_but_KEYWORDS }; + +static const wchar_t* const tlh_examples_KEYWORDS[] = { L"ghantoH", L"lutmey" }; +static const Keywords tlh_examples_keywords = { 2, tlh_examples_KEYWORDS }; + +static const wchar_t* const tlh_feature_KEYWORDS[] = { L"Qap", L"Qu'meH 'ut", L"perbogh", L"poQbogh malja'", L"laH" }; +static const Keywords tlh_feature_keywords = { 5, tlh_feature_KEYWORDS }; + +static const wchar_t* const tlh_given_KEYWORDS[] = { L"* ", L"ghu' noblu' ", L"DaH ghu' bejlu' " }; +static const Keywords tlh_given_keywords = { 3, tlh_given_KEYWORDS }; + +static const wchar_t* const tlh_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords tlh_rule_keywords = { 1, tlh_rule_KEYWORDS }; + +static const wchar_t* const tlh_scenario_KEYWORDS[] = { L"lut" }; +static const Keywords tlh_scenario_keywords = { 1, tlh_scenario_KEYWORDS }; + +static const wchar_t* const tlh_scenarioOutline_KEYWORDS[] = { L"lut chovnatlh" }; +static const Keywords tlh_scenarioOutline_keywords = { 1, tlh_scenarioOutline_KEYWORDS }; + +static const wchar_t* const tlh_then_KEYWORDS[] = { L"* ", L"vaj " }; +static const Keywords tlh_then_keywords = { 2, tlh_then_KEYWORDS }; + +static const wchar_t* const tlh_when_KEYWORDS[] = { L"* ", L"qaSDI' " }; +static const Keywords tlh_when_keywords = { 2, tlh_when_KEYWORDS }; + +static const Dialect tlh_dialect = { + L"tlh", + &tlh_and_keywords, + &tlh_background_keywords, + &tlh_but_keywords, + &tlh_examples_keywords, + &tlh_feature_keywords, + &tlh_given_keywords, + &tlh_rule_keywords, + &tlh_scenario_keywords, + &tlh_scenarioOutline_keywords, + &tlh_then_keywords, + &tlh_when_keywords }; + +static const wchar_t* const tr_and_KEYWORDS[] = { L"* ", L"Ve " }; +static const Keywords tr_and_keywords = { 2, tr_and_KEYWORDS }; + +static const wchar_t* const tr_background_KEYWORDS[] = { L"Geçmiş" }; +static const Keywords tr_background_keywords = { 1, tr_background_KEYWORDS }; + +static const wchar_t* const tr_but_KEYWORDS[] = { L"* ", L"Fakat ", L"Ama " }; +static const Keywords tr_but_keywords = { 3, tr_but_KEYWORDS }; + +static const wchar_t* const tr_examples_KEYWORDS[] = { L"Örnekler" }; +static const Keywords tr_examples_keywords = { 1, tr_examples_KEYWORDS }; + +static const wchar_t* const tr_feature_KEYWORDS[] = { L"Özellik" }; +static const Keywords tr_feature_keywords = { 1, tr_feature_KEYWORDS }; + +static const wchar_t* const tr_given_KEYWORDS[] = { L"* ", L"Diyelim ki " }; +static const Keywords tr_given_keywords = { 2, tr_given_KEYWORDS }; + +static const wchar_t* const tr_rule_KEYWORDS[] = { L"Kural" }; +static const Keywords tr_rule_keywords = { 1, tr_rule_KEYWORDS }; + +static const wchar_t* const tr_scenario_KEYWORDS[] = { L"Örnek", L"Senaryo" }; +static const Keywords tr_scenario_keywords = { 2, tr_scenario_KEYWORDS }; + +static const wchar_t* const tr_scenarioOutline_KEYWORDS[] = { L"Senaryo taslağı" }; +static const Keywords tr_scenarioOutline_keywords = { 1, tr_scenarioOutline_KEYWORDS }; + +static const wchar_t* const tr_then_KEYWORDS[] = { L"* ", L"O zaman " }; +static const Keywords tr_then_keywords = { 2, tr_then_KEYWORDS }; + +static const wchar_t* const tr_when_KEYWORDS[] = { L"* ", L"Eğer ki " }; +static const Keywords tr_when_keywords = { 2, tr_when_KEYWORDS }; + +static const Dialect tr_dialect = { + L"tr", + &tr_and_keywords, + &tr_background_keywords, + &tr_but_keywords, + &tr_examples_keywords, + &tr_feature_keywords, + &tr_given_keywords, + &tr_rule_keywords, + &tr_scenario_keywords, + &tr_scenarioOutline_keywords, + &tr_then_keywords, + &tr_when_keywords }; + +static const wchar_t* const tt_and_KEYWORDS[] = { L"* ", L"Һәм ", L"Вә " }; +static const Keywords tt_and_keywords = { 3, tt_and_KEYWORDS }; + +static const wchar_t* const tt_background_KEYWORDS[] = { L"Кереш" }; +static const Keywords tt_background_keywords = { 1, tt_background_KEYWORDS }; + +static const wchar_t* const tt_but_KEYWORDS[] = { L"* ", L"Ләкин ", L"Әмма " }; +static const Keywords tt_but_keywords = { 3, tt_but_KEYWORDS }; + +static const wchar_t* const tt_examples_KEYWORDS[] = { L"Үрнәкләр", L"Мисаллар" }; +static const Keywords tt_examples_keywords = { 2, tt_examples_KEYWORDS }; + +static const wchar_t* const tt_feature_KEYWORDS[] = { L"Мөмкинлек", L"Үзенчәлеклелек" }; +static const Keywords tt_feature_keywords = { 2, tt_feature_KEYWORDS }; + +static const wchar_t* const tt_given_KEYWORDS[] = { L"* ", L"Әйтик " }; +static const Keywords tt_given_keywords = { 2, tt_given_KEYWORDS }; + +static const wchar_t* const tt_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords tt_rule_keywords = { 1, tt_rule_KEYWORDS }; + +static const wchar_t* const tt_scenario_KEYWORDS[] = { L"Сценарий" }; +static const Keywords tt_scenario_keywords = { 1, tt_scenario_KEYWORDS }; + +static const wchar_t* const tt_scenarioOutline_KEYWORDS[] = { L"Сценарийның төзелеше" }; +static const Keywords tt_scenarioOutline_keywords = { 1, tt_scenarioOutline_KEYWORDS }; + +static const wchar_t* const tt_then_KEYWORDS[] = { L"* ", L"Нәтиҗәдә " }; +static const Keywords tt_then_keywords = { 2, tt_then_KEYWORDS }; + +static const wchar_t* const tt_when_KEYWORDS[] = { L"* ", L"Әгәр " }; +static const Keywords tt_when_keywords = { 2, tt_when_KEYWORDS }; + +static const Dialect tt_dialect = { + L"tt", + &tt_and_keywords, + &tt_background_keywords, + &tt_but_keywords, + &tt_examples_keywords, + &tt_feature_keywords, + &tt_given_keywords, + &tt_rule_keywords, + &tt_scenario_keywords, + &tt_scenarioOutline_keywords, + &tt_then_keywords, + &tt_when_keywords }; + +static const wchar_t* const uk_and_KEYWORDS[] = { L"* ", L"І ", L"А також ", L"Та " }; +static const Keywords uk_and_keywords = { 4, uk_and_KEYWORDS }; + +static const wchar_t* const uk_background_KEYWORDS[] = { L"Передумова" }; +static const Keywords uk_background_keywords = { 1, uk_background_KEYWORDS }; + +static const wchar_t* const uk_but_KEYWORDS[] = { L"* ", L"Але " }; +static const Keywords uk_but_keywords = { 2, uk_but_KEYWORDS }; + +static const wchar_t* const uk_examples_KEYWORDS[] = { L"Приклади" }; +static const Keywords uk_examples_keywords = { 1, uk_examples_KEYWORDS }; + +static const wchar_t* const uk_feature_KEYWORDS[] = { L"Функціонал" }; +static const Keywords uk_feature_keywords = { 1, uk_feature_KEYWORDS }; + +static const wchar_t* const uk_given_KEYWORDS[] = { L"* ", L"Припустимо ", L"Припустимо, що ", L"Нехай ", L"Дано " }; +static const Keywords uk_given_keywords = { 5, uk_given_KEYWORDS }; + +static const wchar_t* const uk_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords uk_rule_keywords = { 1, uk_rule_KEYWORDS }; + +static const wchar_t* const uk_scenario_KEYWORDS[] = { L"Приклад", L"Сценарій" }; +static const Keywords uk_scenario_keywords = { 2, uk_scenario_KEYWORDS }; + +static const wchar_t* const uk_scenarioOutline_KEYWORDS[] = { L"Структура сценарію" }; +static const Keywords uk_scenarioOutline_keywords = { 1, uk_scenarioOutline_KEYWORDS }; + +static const wchar_t* const uk_then_KEYWORDS[] = { L"* ", L"То ", L"Тоді " }; +static const Keywords uk_then_keywords = { 3, uk_then_KEYWORDS }; + +static const wchar_t* const uk_when_KEYWORDS[] = { L"* ", L"Якщо ", L"Коли " }; +static const Keywords uk_when_keywords = { 3, uk_when_KEYWORDS }; + +static const Dialect uk_dialect = { + L"uk", + &uk_and_keywords, + &uk_background_keywords, + &uk_but_keywords, + &uk_examples_keywords, + &uk_feature_keywords, + &uk_given_keywords, + &uk_rule_keywords, + &uk_scenario_keywords, + &uk_scenarioOutline_keywords, + &uk_then_keywords, + &uk_when_keywords }; + +static const wchar_t* const ur_and_KEYWORDS[] = { L"* ", L"اور " }; +static const Keywords ur_and_keywords = { 2, ur_and_KEYWORDS }; + +static const wchar_t* const ur_background_KEYWORDS[] = { L"پس منظر" }; +static const Keywords ur_background_keywords = { 1, ur_background_KEYWORDS }; + +static const wchar_t* const ur_but_KEYWORDS[] = { L"* ", L"لیکن " }; +static const Keywords ur_but_keywords = { 2, ur_but_KEYWORDS }; + +static const wchar_t* const ur_examples_KEYWORDS[] = { L"مثالیں" }; +static const Keywords ur_examples_keywords = { 1, ur_examples_KEYWORDS }; + +static const wchar_t* const ur_feature_KEYWORDS[] = { L"صلاحیت", L"کاروبار کی ضرورت", L"خصوصیت" }; +static const Keywords ur_feature_keywords = { 3, ur_feature_KEYWORDS }; + +static const wchar_t* const ur_given_KEYWORDS[] = { L"* ", L"اگر ", L"بالفرض ", L"فرض کیا " }; +static const Keywords ur_given_keywords = { 4, ur_given_KEYWORDS }; + +static const wchar_t* const ur_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords ur_rule_keywords = { 1, ur_rule_KEYWORDS }; + +static const wchar_t* const ur_scenario_KEYWORDS[] = { L"منظرنامہ" }; +static const Keywords ur_scenario_keywords = { 1, ur_scenario_KEYWORDS }; + +static const wchar_t* const ur_scenarioOutline_KEYWORDS[] = { L"منظر نامے کا خاکہ" }; +static const Keywords ur_scenarioOutline_keywords = { 1, ur_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ur_then_KEYWORDS[] = { L"* ", L"پھر ", L"تب " }; +static const Keywords ur_then_keywords = { 3, ur_then_KEYWORDS }; + +static const wchar_t* const ur_when_KEYWORDS[] = { L"* ", L"جب " }; +static const Keywords ur_when_keywords = { 2, ur_when_KEYWORDS }; + +static const Dialect ur_dialect = { + L"ur", + &ur_and_keywords, + &ur_background_keywords, + &ur_but_keywords, + &ur_examples_keywords, + &ur_feature_keywords, + &ur_given_keywords, + &ur_rule_keywords, + &ur_scenario_keywords, + &ur_scenarioOutline_keywords, + &ur_then_keywords, + &ur_when_keywords }; + +static const wchar_t* const uz_and_KEYWORDS[] = { L"* ", L"Ва " }; +static const Keywords uz_and_keywords = { 2, uz_and_KEYWORDS }; + +static const wchar_t* const uz_background_KEYWORDS[] = { L"Тарих" }; +static const Keywords uz_background_keywords = { 1, uz_background_KEYWORDS }; + +static const wchar_t* const uz_but_KEYWORDS[] = { L"* ", L"Лекин ", L"Бирок ", L"Аммо " }; +static const Keywords uz_but_keywords = { 4, uz_but_KEYWORDS }; + +static const wchar_t* const uz_examples_KEYWORDS[] = { L"Мисоллар" }; +static const Keywords uz_examples_keywords = { 1, uz_examples_KEYWORDS }; + +static const wchar_t* const uz_feature_KEYWORDS[] = { L"Функционал" }; +static const Keywords uz_feature_keywords = { 1, uz_feature_KEYWORDS }; + +static const wchar_t* const uz_given_KEYWORDS[] = { L"* ", L"Belgilangan " }; +static const Keywords uz_given_keywords = { 2, uz_given_KEYWORDS }; + +static const wchar_t* const uz_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords uz_rule_keywords = { 1, uz_rule_KEYWORDS }; + +static const wchar_t* const uz_scenario_KEYWORDS[] = { L"Сценарий" }; +static const Keywords uz_scenario_keywords = { 1, uz_scenario_KEYWORDS }; + +static const wchar_t* const uz_scenarioOutline_KEYWORDS[] = { L"Сценарий структураси" }; +static const Keywords uz_scenarioOutline_keywords = { 1, uz_scenarioOutline_KEYWORDS }; + +static const wchar_t* const uz_then_KEYWORDS[] = { L"* ", L"Унда " }; +static const Keywords uz_then_keywords = { 2, uz_then_KEYWORDS }; + +static const wchar_t* const uz_when_KEYWORDS[] = { L"* ", L"Агар " }; +static const Keywords uz_when_keywords = { 2, uz_when_KEYWORDS }; + +static const Dialect uz_dialect = { + L"uz", + &uz_and_keywords, + &uz_background_keywords, + &uz_but_keywords, + &uz_examples_keywords, + &uz_feature_keywords, + &uz_given_keywords, + &uz_rule_keywords, + &uz_scenario_keywords, + &uz_scenarioOutline_keywords, + &uz_then_keywords, + &uz_when_keywords }; + +static const wchar_t* const vi_and_KEYWORDS[] = { L"* ", L"Và " }; +static const Keywords vi_and_keywords = { 2, vi_and_KEYWORDS }; + +static const wchar_t* const vi_background_KEYWORDS[] = { L"Bối cảnh" }; +static const Keywords vi_background_keywords = { 1, vi_background_KEYWORDS }; + +static const wchar_t* const vi_but_KEYWORDS[] = { L"* ", L"Nhưng " }; +static const Keywords vi_but_keywords = { 2, vi_but_KEYWORDS }; + +static const wchar_t* const vi_examples_KEYWORDS[] = { L"Dữ liệu" }; +static const Keywords vi_examples_keywords = { 1, vi_examples_KEYWORDS }; + +static const wchar_t* const vi_feature_KEYWORDS[] = { L"Tính năng" }; +static const Keywords vi_feature_keywords = { 1, vi_feature_KEYWORDS }; + +static const wchar_t* const vi_given_KEYWORDS[] = { L"* ", L"Biết ", L"Cho " }; +static const Keywords vi_given_keywords = { 3, vi_given_KEYWORDS }; + +static const wchar_t* const vi_rule_KEYWORDS[] = { L"Quy tắc" }; +static const Keywords vi_rule_keywords = { 1, vi_rule_KEYWORDS }; + +static const wchar_t* const vi_scenario_KEYWORDS[] = { L"Tình huống", L"Kịch bản" }; +static const Keywords vi_scenario_keywords = { 2, vi_scenario_KEYWORDS }; + +static const wchar_t* const vi_scenarioOutline_KEYWORDS[] = { L"Khung tình huống", L"Khung kịch bản" }; +static const Keywords vi_scenarioOutline_keywords = { 2, vi_scenarioOutline_KEYWORDS }; + +static const wchar_t* const vi_then_KEYWORDS[] = { L"* ", L"Thì " }; +static const Keywords vi_then_keywords = { 2, vi_then_KEYWORDS }; + +static const wchar_t* const vi_when_KEYWORDS[] = { L"* ", L"Khi " }; +static const Keywords vi_when_keywords = { 2, vi_when_KEYWORDS }; + +static const Dialect vi_dialect = { + L"vi", + &vi_and_keywords, + &vi_background_keywords, + &vi_but_keywords, + &vi_examples_keywords, + &vi_feature_keywords, + &vi_given_keywords, + &vi_rule_keywords, + &vi_scenario_keywords, + &vi_scenarioOutline_keywords, + &vi_then_keywords, + &vi_when_keywords }; + +static const wchar_t* const zh_CN_and_KEYWORDS[] = { L"* ", L"而且", L"并且", L"同时" }; +static const Keywords zh_CN_and_keywords = { 4, zh_CN_and_KEYWORDS }; + +static const wchar_t* const zh_CN_background_KEYWORDS[] = { L"背景" }; +static const Keywords zh_CN_background_keywords = { 1, zh_CN_background_KEYWORDS }; + +static const wchar_t* const zh_CN_but_KEYWORDS[] = { L"* ", L"但是" }; +static const Keywords zh_CN_but_keywords = { 2, zh_CN_but_KEYWORDS }; + +static const wchar_t* const zh_CN_examples_KEYWORDS[] = { L"例子" }; +static const Keywords zh_CN_examples_keywords = { 1, zh_CN_examples_KEYWORDS }; + +static const wchar_t* const zh_CN_feature_KEYWORDS[] = { L"功能" }; +static const Keywords zh_CN_feature_keywords = { 1, zh_CN_feature_KEYWORDS }; + +static const wchar_t* const zh_CN_given_KEYWORDS[] = { L"* ", L"假如", L"假设", L"假定" }; +static const Keywords zh_CN_given_keywords = { 4, zh_CN_given_KEYWORDS }; + +static const wchar_t* const zh_CN_rule_KEYWORDS[] = { L"Rule", L"规则" }; +static const Keywords zh_CN_rule_keywords = { 2, zh_CN_rule_KEYWORDS }; + +static const wchar_t* const zh_CN_scenario_KEYWORDS[] = { L"场景", L"剧本" }; +static const Keywords zh_CN_scenario_keywords = { 2, zh_CN_scenario_KEYWORDS }; + +static const wchar_t* const zh_CN_scenarioOutline_KEYWORDS[] = { L"场景大纲", L"剧本大纲" }; +static const Keywords zh_CN_scenarioOutline_keywords = { 2, zh_CN_scenarioOutline_KEYWORDS }; + +static const wchar_t* const zh_CN_then_KEYWORDS[] = { L"* ", L"那么" }; +static const Keywords zh_CN_then_keywords = { 2, zh_CN_then_KEYWORDS }; + +static const wchar_t* const zh_CN_when_KEYWORDS[] = { L"* ", L"当" }; +static const Keywords zh_CN_when_keywords = { 2, zh_CN_when_KEYWORDS }; + +static const Dialect zh_CN_dialect = { + L"zh-CN", + &zh_CN_and_keywords, + &zh_CN_background_keywords, + &zh_CN_but_keywords, + &zh_CN_examples_keywords, + &zh_CN_feature_keywords, + &zh_CN_given_keywords, + &zh_CN_rule_keywords, + &zh_CN_scenario_keywords, + &zh_CN_scenarioOutline_keywords, + &zh_CN_then_keywords, + &zh_CN_when_keywords }; + +static const wchar_t* const ml_and_KEYWORDS[] = { L"* ", L"ഒപ്പം" }; +static const Keywords ml_and_keywords = { 2, ml_and_KEYWORDS }; + +static const wchar_t* const ml_background_KEYWORDS[] = { L"പശ്ചാത്തലം" }; +static const Keywords ml_background_keywords = { 1, ml_background_KEYWORDS }; + +static const wchar_t* const ml_but_KEYWORDS[] = { L"* ", L"പക്ഷേ" }; +static const Keywords ml_but_keywords = { 2, ml_but_KEYWORDS }; + +static const wchar_t* const ml_examples_KEYWORDS[] = { L"ഉദാഹരണങ്ങൾ" }; +static const Keywords ml_examples_keywords = { 1, ml_examples_KEYWORDS }; + +static const wchar_t* const ml_feature_KEYWORDS[] = { L"സവിശേഷത" }; +static const Keywords ml_feature_keywords = { 1, ml_feature_KEYWORDS }; + +static const wchar_t* const ml_given_KEYWORDS[] = { L"* ", L"നൽകിയത്" }; +static const Keywords ml_given_keywords = { 2, ml_given_KEYWORDS }; + +static const wchar_t* const ml_rule_KEYWORDS[] = { L"നിയമം" }; +static const Keywords ml_rule_keywords = { 1, ml_rule_KEYWORDS }; + +static const wchar_t* const ml_scenario_KEYWORDS[] = { L"രംഗം" }; +static const Keywords ml_scenario_keywords = { 1, ml_scenario_KEYWORDS }; + +static const wchar_t* const ml_scenarioOutline_KEYWORDS[] = { L"സാഹചര്യത്തിന്റെ രൂപരേഖ" }; +static const Keywords ml_scenarioOutline_keywords = { 1, ml_scenarioOutline_KEYWORDS }; + +static const wchar_t* const ml_then_KEYWORDS[] = { L"* ", L"പിന്നെ" }; +static const Keywords ml_then_keywords = { 2, ml_then_KEYWORDS }; + +static const wchar_t* const ml_when_KEYWORDS[] = { L"എപ്പോൾ" }; +static const Keywords ml_when_keywords = { 1, ml_when_KEYWORDS }; + +static const Dialect ml_dialect = { + L"ml", + &ml_and_keywords, + &ml_background_keywords, + &ml_but_keywords, + &ml_examples_keywords, + &ml_feature_keywords, + &ml_given_keywords, + &ml_rule_keywords, + &ml_scenario_keywords, + &ml_scenarioOutline_keywords, + &ml_then_keywords, + &ml_when_keywords }; + +static const wchar_t* const zh_TW_and_KEYWORDS[] = { L"* ", L"而且", L"並且", L"同時" }; +static const Keywords zh_TW_and_keywords = { 4, zh_TW_and_KEYWORDS }; + +static const wchar_t* const zh_TW_background_KEYWORDS[] = { L"背景" }; +static const Keywords zh_TW_background_keywords = { 1, zh_TW_background_KEYWORDS }; + +static const wchar_t* const zh_TW_but_KEYWORDS[] = { L"* ", L"但是" }; +static const Keywords zh_TW_but_keywords = { 2, zh_TW_but_KEYWORDS }; + +static const wchar_t* const zh_TW_examples_KEYWORDS[] = { L"例子" }; +static const Keywords zh_TW_examples_keywords = { 1, zh_TW_examples_KEYWORDS }; + +static const wchar_t* const zh_TW_feature_KEYWORDS[] = { L"功能" }; +static const Keywords zh_TW_feature_keywords = { 1, zh_TW_feature_KEYWORDS }; + +static const wchar_t* const zh_TW_given_KEYWORDS[] = { L"* ", L"假如", L"假設", L"假定" }; +static const Keywords zh_TW_given_keywords = { 4, zh_TW_given_KEYWORDS }; + +static const wchar_t* const zh_TW_rule_KEYWORDS[] = { L"Rule" }; +static const Keywords zh_TW_rule_keywords = { 1, zh_TW_rule_KEYWORDS }; + +static const wchar_t* const zh_TW_scenario_KEYWORDS[] = { L"場景", L"劇本" }; +static const Keywords zh_TW_scenario_keywords = { 2, zh_TW_scenario_KEYWORDS }; + +static const wchar_t* const zh_TW_scenarioOutline_KEYWORDS[] = { L"場景大綱", L"劇本大綱" }; +static const Keywords zh_TW_scenarioOutline_keywords = { 2, zh_TW_scenarioOutline_KEYWORDS }; + +static const wchar_t* const zh_TW_then_KEYWORDS[] = { L"* ", L"那麼" }; +static const Keywords zh_TW_then_keywords = { 2, zh_TW_then_KEYWORDS }; + +static const wchar_t* const zh_TW_when_KEYWORDS[] = { L"* ", L"當" }; +static const Keywords zh_TW_when_keywords = { 2, zh_TW_when_KEYWORDS }; + +static const Dialect zh_TW_dialect = { + L"zh-TW", + &zh_TW_and_keywords, + &zh_TW_background_keywords, + &zh_TW_but_keywords, + &zh_TW_examples_keywords, + &zh_TW_feature_keywords, + &zh_TW_given_keywords, + &zh_TW_rule_keywords, + &zh_TW_scenario_keywords, + &zh_TW_scenarioOutline_keywords, + &zh_TW_then_keywords, + &zh_TW_when_keywords }; + +static const wchar_t* const mr_and_KEYWORDS[] = { L"* ", L"आणि ", L"तसेच " }; +static const Keywords mr_and_keywords = { 3, mr_and_KEYWORDS }; + +static const wchar_t* const mr_background_KEYWORDS[] = { L"पार्श्वभूमी" }; +static const Keywords mr_background_keywords = { 1, mr_background_KEYWORDS }; + +static const wchar_t* const mr_but_KEYWORDS[] = { L"* ", L"पण ", L"परंतु " }; +static const Keywords mr_but_keywords = { 3, mr_but_KEYWORDS }; + +static const wchar_t* const mr_examples_KEYWORDS[] = { L"उदाहरण" }; +static const Keywords mr_examples_keywords = { 1, mr_examples_KEYWORDS }; + +static const wchar_t* const mr_feature_KEYWORDS[] = { L"वैशिष्ट्य", L"सुविधा" }; +static const Keywords mr_feature_keywords = { 2, mr_feature_KEYWORDS }; + +static const wchar_t* const mr_given_KEYWORDS[] = { L"* ", L"जर", L"दिलेल्या प्रमाणे " }; +static const Keywords mr_given_keywords = { 3, mr_given_KEYWORDS }; + +static const wchar_t* const mr_rule_KEYWORDS[] = { L"नियम" }; +static const Keywords mr_rule_keywords = { 1, mr_rule_KEYWORDS }; + +static const wchar_t* const mr_scenario_KEYWORDS[] = { L"परिदृश्य" }; +static const Keywords mr_scenario_keywords = { 1, mr_scenario_KEYWORDS }; + +static const wchar_t* const mr_scenarioOutline_KEYWORDS[] = { L"परिदृश्य रूपरेखा" }; +static const Keywords mr_scenarioOutline_keywords = { 1, mr_scenarioOutline_KEYWORDS }; + +static const wchar_t* const mr_then_KEYWORDS[] = { L"* ", L"मग ", L"तेव्हा " }; +static const Keywords mr_then_keywords = { 3, mr_then_KEYWORDS }; + +static const wchar_t* const mr_when_KEYWORDS[] = { L"* ", L"जेव्हा " }; +static const Keywords mr_when_keywords = { 2, mr_when_KEYWORDS }; + +static const Dialect mr_dialect = { + L"mr", + &mr_and_keywords, + &mr_background_keywords, + &mr_but_keywords, + &mr_examples_keywords, + &mr_feature_keywords, + &mr_given_keywords, + &mr_rule_keywords, + &mr_scenario_keywords, + &mr_scenarioOutline_keywords, + &mr_then_keywords, + &mr_when_keywords }; + +static const wchar_t* const amh_and_KEYWORDS[] = { L"* ", L"እና " }; +static const Keywords amh_and_keywords = { 2, amh_and_KEYWORDS }; + +static const wchar_t* const amh_background_KEYWORDS[] = { L"ቅድመ ሁኔታ", L"መነሻ", L"መነሻ ሀሳብ" }; +static const Keywords amh_background_keywords = { 3, amh_background_KEYWORDS }; + +static const wchar_t* const amh_but_KEYWORDS[] = { L"* ", L"ግን " }; +static const Keywords amh_but_keywords = { 2, amh_but_KEYWORDS }; + +static const wchar_t* const amh_examples_KEYWORDS[] = { L"ምሳሌዎች", L"ሁናቴዎች" }; +static const Keywords amh_examples_keywords = { 2, amh_examples_KEYWORDS }; + +static const wchar_t* const amh_feature_KEYWORDS[] = { L"ስራ", L"የተፈለገው ስራ", L"የሚፈለገው ድርጊት" }; +static const Keywords amh_feature_keywords = { 3, amh_feature_KEYWORDS }; + +static const wchar_t* const amh_given_KEYWORDS[] = { L"* ", L"የተሰጠ " }; +static const Keywords amh_given_keywords = { 2, amh_given_KEYWORDS }; + +static const wchar_t* const amh_rule_KEYWORDS[] = { L"ህግ" }; +static const Keywords amh_rule_keywords = { 1, amh_rule_KEYWORDS }; + +static const wchar_t* const amh_scenario_KEYWORDS[] = { L"ምሳሌ", L"ሁናቴ" }; +static const Keywords amh_scenario_keywords = { 2, amh_scenario_KEYWORDS }; + +static const wchar_t* const amh_scenarioOutline_KEYWORDS[] = { L"ሁናቴ ዝርዝር", L"ሁናቴ አብነት" }; +static const Keywords amh_scenarioOutline_keywords = { 2, amh_scenarioOutline_KEYWORDS }; + +static const wchar_t* const amh_then_KEYWORDS[] = { L"* ", L"ከዚያ " }; +static const Keywords amh_then_keywords = { 2, amh_then_KEYWORDS }; + +static const wchar_t* const amh_when_KEYWORDS[] = { L"* ", L"መቼ " }; +static const Keywords amh_when_keywords = { 2, amh_when_KEYWORDS }; + +static const Dialect amh_dialect = { + L"amh", + &amh_and_keywords, + &amh_background_keywords, + &amh_but_keywords, + &amh_examples_keywords, + &amh_feature_keywords, + &amh_given_keywords, + &amh_rule_keywords, + &amh_scenario_keywords, + &amh_scenarioOutline_keywords, + &amh_then_keywords, + &amh_when_keywords }; + +const Dialect* Dialect_for(const wchar_t* language) { + if (wcscmp(af_dialect.language_name, language) == 0) + return &af_dialect; + if (wcscmp(am_dialect.language_name, language) == 0) + return &am_dialect; + if (wcscmp(an_dialect.language_name, language) == 0) + return &an_dialect; + if (wcscmp(ar_dialect.language_name, language) == 0) + return &ar_dialect; + if (wcscmp(ast_dialect.language_name, language) == 0) + return &ast_dialect; + if (wcscmp(az_dialect.language_name, language) == 0) + return &az_dialect; + if (wcscmp(be_dialect.language_name, language) == 0) + return &be_dialect; + if (wcscmp(bg_dialect.language_name, language) == 0) + return &bg_dialect; + if (wcscmp(bm_dialect.language_name, language) == 0) + return &bm_dialect; + if (wcscmp(bs_dialect.language_name, language) == 0) + return &bs_dialect; + if (wcscmp(ca_dialect.language_name, language) == 0) + return &ca_dialect; + if (wcscmp(cs_dialect.language_name, language) == 0) + return &cs_dialect; + if (wcscmp(cy_GB_dialect.language_name, language) == 0) + return &cy_GB_dialect; + if (wcscmp(da_dialect.language_name, language) == 0) + return &da_dialect; + if (wcscmp(de_dialect.language_name, language) == 0) + return &de_dialect; + if (wcscmp(el_dialect.language_name, language) == 0) + return &el_dialect; + if (wcscmp(em_dialect.language_name, language) == 0) + return &em_dialect; + if (wcscmp(en_dialect.language_name, language) == 0) + return &en_dialect; + if (wcscmp(en_Scouse_dialect.language_name, language) == 0) + return &en_Scouse_dialect; + if (wcscmp(en_au_dialect.language_name, language) == 0) + return &en_au_dialect; + if (wcscmp(en_lol_dialect.language_name, language) == 0) + return &en_lol_dialect; + if (wcscmp(en_old_dialect.language_name, language) == 0) + return &en_old_dialect; + if (wcscmp(en_pirate_dialect.language_name, language) == 0) + return &en_pirate_dialect; + if (wcscmp(en_tx_dialect.language_name, language) == 0) + return &en_tx_dialect; + if (wcscmp(eo_dialect.language_name, language) == 0) + return &eo_dialect; + if (wcscmp(es_dialect.language_name, language) == 0) + return &es_dialect; + if (wcscmp(et_dialect.language_name, language) == 0) + return &et_dialect; + if (wcscmp(fa_dialect.language_name, language) == 0) + return &fa_dialect; + if (wcscmp(fi_dialect.language_name, language) == 0) + return &fi_dialect; + if (wcscmp(fr_dialect.language_name, language) == 0) + return &fr_dialect; + if (wcscmp(ga_dialect.language_name, language) == 0) + return &ga_dialect; + if (wcscmp(gj_dialect.language_name, language) == 0) + return &gj_dialect; + if (wcscmp(gl_dialect.language_name, language) == 0) + return &gl_dialect; + if (wcscmp(he_dialect.language_name, language) == 0) + return &he_dialect; + if (wcscmp(hi_dialect.language_name, language) == 0) + return &hi_dialect; + if (wcscmp(hr_dialect.language_name, language) == 0) + return &hr_dialect; + if (wcscmp(ht_dialect.language_name, language) == 0) + return &ht_dialect; + if (wcscmp(hu_dialect.language_name, language) == 0) + return &hu_dialect; + if (wcscmp(id_dialect.language_name, language) == 0) + return &id_dialect; + if (wcscmp(is_dialect.language_name, language) == 0) + return &is_dialect; + if (wcscmp(it_dialect.language_name, language) == 0) + return &it_dialect; + if (wcscmp(ja_dialect.language_name, language) == 0) + return &ja_dialect; + if (wcscmp(jv_dialect.language_name, language) == 0) + return &jv_dialect; + if (wcscmp(ka_dialect.language_name, language) == 0) + return &ka_dialect; + if (wcscmp(kn_dialect.language_name, language) == 0) + return &kn_dialect; + if (wcscmp(ko_dialect.language_name, language) == 0) + return &ko_dialect; + if (wcscmp(lt_dialect.language_name, language) == 0) + return <_dialect; + if (wcscmp(lu_dialect.language_name, language) == 0) + return &lu_dialect; + if (wcscmp(lv_dialect.language_name, language) == 0) + return &lv_dialect; + if (wcscmp(mk_Cyrl_dialect.language_name, language) == 0) + return &mk_Cyrl_dialect; + if (wcscmp(mk_Latn_dialect.language_name, language) == 0) + return &mk_Latn_dialect; + if (wcscmp(mn_dialect.language_name, language) == 0) + return &mn_dialect; + if (wcscmp(ne_dialect.language_name, language) == 0) + return &ne_dialect; + if (wcscmp(nl_dialect.language_name, language) == 0) + return &nl_dialect; + if (wcscmp(no_dialect.language_name, language) == 0) + return &no_dialect; + if (wcscmp(pa_dialect.language_name, language) == 0) + return &pa_dialect; + if (wcscmp(pl_dialect.language_name, language) == 0) + return &pl_dialect; + if (wcscmp(pt_dialect.language_name, language) == 0) + return &pt_dialect; + if (wcscmp(ro_dialect.language_name, language) == 0) + return &ro_dialect; + if (wcscmp(ru_dialect.language_name, language) == 0) + return &ru_dialect; + if (wcscmp(sk_dialect.language_name, language) == 0) + return &sk_dialect; + if (wcscmp(sl_dialect.language_name, language) == 0) + return &sl_dialect; + if (wcscmp(sr_Cyrl_dialect.language_name, language) == 0) + return &sr_Cyrl_dialect; + if (wcscmp(sr_Latn_dialect.language_name, language) == 0) + return &sr_Latn_dialect; + if (wcscmp(sv_dialect.language_name, language) == 0) + return &sv_dialect; + if (wcscmp(ta_dialect.language_name, language) == 0) + return &ta_dialect; + if (wcscmp(th_dialect.language_name, language) == 0) + return &th_dialect; + if (wcscmp(te_dialect.language_name, language) == 0) + return &te_dialect; + if (wcscmp(tlh_dialect.language_name, language) == 0) + return &tlh_dialect; + if (wcscmp(tr_dialect.language_name, language) == 0) + return &tr_dialect; + if (wcscmp(tt_dialect.language_name, language) == 0) + return &tt_dialect; + if (wcscmp(uk_dialect.language_name, language) == 0) + return &uk_dialect; + if (wcscmp(ur_dialect.language_name, language) == 0) + return &ur_dialect; + if (wcscmp(uz_dialect.language_name, language) == 0) + return &uz_dialect; + if (wcscmp(vi_dialect.language_name, language) == 0) + return &vi_dialect; + if (wcscmp(zh_CN_dialect.language_name, language) == 0) + return &zh_CN_dialect; + if (wcscmp(ml_dialect.language_name, language) == 0) + return &ml_dialect; + if (wcscmp(zh_TW_dialect.language_name, language) == 0) + return &zh_TW_dialect; + if (wcscmp(mr_dialect.language_name, language) == 0) + return &mr_dialect; + if (wcscmp(amh_dialect.language_name, language) == 0) + return &amh_dialect; + return 0; +} + From a86f7b308d5f2e2221951206d028fcbefa739528 Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Wed, 8 Jan 2025 18:42:27 +0100 Subject: [PATCH 11/12] merge --- php/src-generated/Parser.php | 4019 ++++++++++++++++++++++++++++++++++ 1 file changed, 4019 insertions(+) create mode 100644 php/src-generated/Parser.php diff --git a/php/src-generated/Parser.php b/php/src-generated/Parser.php new file mode 100644 index 000000000..0886c26d0 --- /dev/null +++ b/php/src-generated/Parser.php @@ -0,0 +1,4019 @@ + + */ + use ParserTrait; + + private function match_EOF(ParserContext $context, Token $token): bool + { + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_EOF($token), + false, + ); + } + + private function match_Empty(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_Empty($token), + false, + ); + } + + private function match_Comment(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_Comment($token), + false, + ); + } + + private function match_TagLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_TagLine($token), + false, + ); + } + + private function match_FeatureLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_FeatureLine($token), + false, + ); + } + + private function match_RuleLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_RuleLine($token), + false, + ); + } + + private function match_BackgroundLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_BackgroundLine($token), + false, + ); + } + + private function match_ScenarioLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_ScenarioLine($token), + false, + ); + } + + private function match_ExamplesLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_ExamplesLine($token), + false, + ); + } + + private function match_StepLine(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_StepLine($token), + false, + ); + } + + private function match_DocStringSeparator(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_DocStringSeparator($token), + false, + ); + } + + private function match_TableRow(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_TableRow($token), + false, + ); + } + + private function match_Language(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_Language($token), + false, + ); + } + + private function match_Other(ParserContext $context, Token $token): bool + { + if ($token->isEOF()) { + return false; + } + + return $this->handleExternalError( + $context, + fn () => $context->tokenMatcher->match_Other($token), + false, + ); + } + + private function matchToken(int $state, Token $token, ParserContext $context): int + { + return match ($state) { + 0 => $this->matchTokenAt_0($token, $context), + 1 => $this->matchTokenAt_1($token, $context), + 2 => $this->matchTokenAt_2($token, $context), + 3 => $this->matchTokenAt_3($token, $context), + 4 => $this->matchTokenAt_4($token, $context), + 5 => $this->matchTokenAt_5($token, $context), + 6 => $this->matchTokenAt_6($token, $context), + 7 => $this->matchTokenAt_7($token, $context), + 8 => $this->matchTokenAt_8($token, $context), + 9 => $this->matchTokenAt_9($token, $context), + 10 => $this->matchTokenAt_10($token, $context), + 11 => $this->matchTokenAt_11($token, $context), + 12 => $this->matchTokenAt_12($token, $context), + 13 => $this->matchTokenAt_13($token, $context), + 14 => $this->matchTokenAt_14($token, $context), + 15 => $this->matchTokenAt_15($token, $context), + 16 => $this->matchTokenAt_16($token, $context), + 17 => $this->matchTokenAt_17($token, $context), + 18 => $this->matchTokenAt_18($token, $context), + 19 => $this->matchTokenAt_19($token, $context), + 20 => $this->matchTokenAt_20($token, $context), + 21 => $this->matchTokenAt_21($token, $context), + 22 => $this->matchTokenAt_22($token, $context), + 23 => $this->matchTokenAt_23($token, $context), + 24 => $this->matchTokenAt_24($token, $context), + 25 => $this->matchTokenAt_25($token, $context), + 26 => $this->matchTokenAt_26($token, $context), + 27 => $this->matchTokenAt_27($token, $context), + 28 => $this->matchTokenAt_28($token, $context), + 29 => $this->matchTokenAt_29($token, $context), + 30 => $this->matchTokenAt_30($token, $context), + 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), + 38 => $this->matchTokenAt_38($token, $context), + 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), + default => throw new \LogicException("Unknown state: $state"), + }; + } + + + // Start + private function matchTokenAt_0(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->build($context, $token); + return 42; + } + if ($this->match_Language($context, $token)) { + $this->startRule($context, RuleType::Feature); + $this->startRule($context, RuleType::FeatureHeader); + $this->build($context, $token); + return 1; + } + if ($this->match_TagLine($context, $token)) { + $this->startRule($context, RuleType::Feature); + $this->startRule($context, RuleType::FeatureHeader); + $this->startRule($context, RuleType::Tags); + $this->build($context, $token); + return 2; + } + if ($this->match_FeatureLine($context, $token)) { + $this->startRule($context, RuleType::Feature); + $this->startRule($context, RuleType::FeatureHeader); + $this->build($context, $token); + return 3; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 0; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 0; + } + + $stateComment = "State: 0 - Start"; + $expectedTokens = ["#EOF", "#Language", "#TagLine", "#FeatureLine", "#Comment", "#Empty"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 0; + } + + // GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0 + private function matchTokenAt_1(Token $token, ParserContext $context): int + { + if ($this->match_TagLine($context, $token)) { + $this->startRule($context, RuleType::Tags); + $this->build($context, $token); + return 2; + } + if ($this->match_FeatureLine($context, $token)) { + $this->build($context, $token); + return 3; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 1; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 1; + } + + $stateComment = "State: 1 - GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0"; + $expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 1; + } + + // GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0 + private function matchTokenAt_2(Token $token, ParserContext $context): int + { + if ($this->match_TagLine($context, $token)) { + $this->build($context, $token); + return 2; + } + if ($this->match_FeatureLine($context, $token)) { + $this->endRule($context, RuleType::Tags); + $this->build($context, $token); + return 3; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 2; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 2; + } + + $stateComment = "State: 2 - GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0"; + $expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 2; + } + + // GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0 + private function matchTokenAt_3(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_Empty($context, $token)) { + $this->build($context, $token); + return 3; + } + 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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 4; + } + + $stateComment = "State: 3 - GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0"; + $expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 3; + } + + // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 + private function matchTokenAt_4(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $this->endRule($context, RuleType::FeatureHeader); + $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 5; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $this->endRule($context, RuleType::FeatureHeader); + $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 4; + } + + $stateComment = "State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + 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 + { + 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_Empty($context, $token)) { + $this->build($context, $token); + return 6; + } + 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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 7; + } + + $stateComment = "State: 6 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 6; + } + + // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 + private function matchTokenAt_7(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; + } + if ($this->match_Comment($context, $token)) { + $this->endRule($context, RuleType::Description); + $this->build($context, $token); + return 8; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $this->endRule($context, RuleType::Background); + $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 7; + } + + $stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description: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 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; + } + + // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 + private function matchTokenAt_9(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; + } + if ($this->match_TableRow($context, $token)) { + $this->startRule($context, RuleType::DataTable); + $this->build($context, $token); + return 10; + } + if ($this->match_DocStringSeparator($context, $token)) { + $this->startRule($context, RuleType::DocString); + $this->build($context, $token); + return 49; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $this->endRule($context, RuleType::Background); + $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; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 9; + } + + $stateComment = "State: 9 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 9; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $this->endRule($context, RuleType::Feature); + $this->build($context, $token); + return 42; + } + if ($this->match_TableRow($context, $token)) { + $this->build($context, $token); + return 10; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $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; + } + + $stateComment = "State: 10 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 10; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + private function matchTokenAt_11(Token $token, ParserContext $context): int + { + if ($this->match_TagLine($context, $token)) { + $this->build($context, $token); + return 11; + } + if ($this->match_ScenarioLine($context, $token)) { + $this->endRule($context, RuleType::Tags); + $this->startRule($context, RuleType::Scenario); + $this->build($context, $token); + return 12; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 11; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 11; + } + + $stateComment = "State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0"; + $expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 11; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + private function matchTokenAt_12(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_Empty($context, $token)) { + $this->build($context, $token); + return 12; + } + 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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 13; + } + + $stateComment = "State: 12 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 12; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 + private function matchTokenAt_13(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $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->endRule($context, RuleType::Description); + $this->build($context, $token); + return 14; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Description); + $this->startRule($context, RuleType::Step); + $this->build($context, $token); + return 15; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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_Other($context, $token)) { + $this->build($context, $token); + return 13; + } + + $stateComment = "State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $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; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + private function matchTokenAt_15(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Step); + $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->startRule($context, RuleType::DataTable); + $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)) { + $this->endRule($context, RuleType::Step); + $this->startRule($context, RuleType::Step); + $this->build($context, $token); + return 15; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $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 15; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 15; + } + + $stateComment = "State: 15 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 15; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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 16; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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 16; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 16; + } + + $stateComment = "State: 16 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 16; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:0>Tags:0>#TagLine:0 + private function matchTokenAt_17(Token $token, ParserContext $context): int + { + if ($this->match_TagLine($context, $token)) { + $this->build($context, $token); + return 17; + } + if ($this->match_ExamplesLine($context, $token)) { + $this->endRule($context, RuleType::Tags); + $this->startRule($context, RuleType::Examples); + $this->build($context, $token); + return 18; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 17; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 17; + } + + $stateComment = "State: 17 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 17; + } + + // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:3>ExamplesDefinition:1>Examples:0>#ExamplesLine:0 + private function matchTokenAt_18(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::Feature); + $this->build($context, $token); + return 42; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 18; + } + if ($this->match_Comment($context, $token)) { + $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)) { + $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::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::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::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::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::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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 19; + } + + $stateComment = "State: 18 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 18; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $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->endRule($context, RuleType::Description); + $this->build($context, $token); + return 20; + } + if ($this->match_TableRow($context, $token)) { + $this->endRule($context, RuleType::Description); + $this->startRule($context, RuleType::ExamplesTable); + $this->build($context, $token); + return 21; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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_Other($context, $token)) { + $this->build($context, $token); + return 19; + } + + $stateComment = "State: 19 - GherkinDocument:0>Feature: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 19; + } + + // 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 + { + 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::Feature); + $this->build($context, $token); + return 42; + } + if ($this->match_Comment($context, $token)) { + $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)) { + $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::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::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::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::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::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_Empty($context, $token)) { + $this->build($context, $token); + return 20; + } + + $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"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 20; + } + + // 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 + { + 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; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 22; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 22; + } + + $stateComment = "State: 22 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 22; + } + + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:1>#RuleLine:0 + private function matchTokenAt_23(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_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, 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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 24; + } + + $stateComment = "State: 23 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 23; + } + + // GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0 + private function matchTokenAt_24(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $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->endRule($context, RuleType::Description); + $this->build($context, $token); + return 25; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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_Other($context, $token)) { + $this->build($context, $token); + return 24; + } + + $stateComment = "State: 24 - GherkinDocument:0>Feature:3>Rule:0>RuleHeader:2>DescriptionHelper:1>Description:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $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; + } + + // GherkinDocument:0>Feature:3>Rule:1>Background:0>#BackgroundLine:0 + private function matchTokenAt_26(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; + } + 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)) { + $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; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::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; + } + 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; + } + 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; + } + if ($this->match_Other($context, $token)) { + $this->build($context, $token); + return 27; + } + + $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"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 27; + } + + // GherkinDocument:0>Feature:3>Rule:1>Background:1>DescriptionHelper:2>#Comment:0 + private function matchTokenAt_28(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; + } + 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_Empty($context, $token)) { + $this->build($context, $token); + return 28; + } + + $stateComment = "State: 28 - GherkinDocument:0>Feature:3>Rule: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 28; + } + + // GherkinDocument:0>Feature:3>Rule:1>Background:2>Step:0>#StepLine:0 + private function matchTokenAt_29(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::Rule); + $this->endRule($context, RuleType::Feature); + $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, RuleType::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 29; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 29; + } + + $stateComment = "State: 29 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $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 function matchTokenAt_30(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $this->endRule($context, RuleType::Rule); + $this->endRule($context, RuleType::Feature); + $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, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 30; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 30; + } + + $stateComment = "State: 30 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 30; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:0>Tags:0>#TagLine:0 + private function matchTokenAt_31(Token $token, ParserContext $context): int + { + if ($this->match_TagLine($context, $token)) { + $this->build($context, $token); + return 31; + } + if ($this->match_ScenarioLine($context, $token)) { + $this->endRule($context, RuleType::Tags); + $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; + } + + $stateComment = "State: 31 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 31; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 + private function matchTokenAt_32(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_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)) { + $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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 33; + } + + $stateComment = "State: 32 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 32; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $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->endRule($context, RuleType::Description); + $this->build($context, $token); + return 34; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Description); + $this->startRule($context, RuleType::Step); + $this->build($context, $token); + return 35; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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_Other($context, $token)) { + $this->build($context, $token); + return 33; + } + + $stateComment = "State: 33 - GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0"; + $expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#RuleLine", "#Other"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $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; + } + + // GherkinDocument:0>Feature:3>Rule:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 + private function matchTokenAt_35(Token $token, ParserContext $context): int + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Step); + $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_TableRow($context, $token)) { + $this->startRule($context, RuleType::DataTable); + $this->build($context, $token); + return 36; + } + if ($this->match_DocStringSeparator($context, $token)) { + $this->startRule($context, RuleType::DocString); + $this->build($context, $token); + return 43; + } + if ($this->match_StepLine($context, $token)) { + $this->endRule($context, RuleType::Step); + $this->startRule($context, RuleType::Step); + $this->build($context, $token); + return 35; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $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::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 35; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 35; + } + + $stateComment = "State: 35 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 35; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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_TableRow($context, $token)) { + $this->build($context, $token); + return 36; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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::DataTable); + $this->endRule($context, RuleType::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 36; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 36; + } + + $stateComment = "State: 36 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 36; + } + + // 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 + { + if ($this->match_TagLine($context, $token)) { + $this->build($context, $token); + return 37; + } + if ($this->match_ExamplesLine($context, $token)) { + $this->endRule($context, RuleType::Tags); + $this->startRule($context, RuleType::Examples); + $this->build($context, $token); + return 38; + } + if ($this->match_Comment($context, $token)) { + $this->build($context, $token); + return 37; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 37; + } + + $stateComment = "State: 37 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 37; + } + + // 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 + { + 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_Empty($context, $token)) { + $this->build($context, $token); + return 38; + } + 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_Other($context, $token)) { + $this->startRule($context, RuleType::Description); + $this->build($context, $token); + return 39; + } + + $stateComment = "State: 38 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 38; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::Description); + $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->endRule($context, RuleType::Description); + $this->build($context, $token); + return 40; + } + if ($this->match_TableRow($context, $token)) { + $this->endRule($context, RuleType::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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::Description); + $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_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"]; + $error = $token->isEOF() + ? new UnexpectedEofException($token, $expectedTokens, $stateComment) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 40; + } + + // 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 + { + 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::Rule); + $this->endRule($context, RuleType::Feature); + $this->build($context, $token); + return 42; + } + if ($this->match_TableRow($context, $token)) { + $this->build($context, $token); + return 41; + } + 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 37; + } + } + 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 31; + } + } + 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->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::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 38; + } + 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 32; + } + 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->endRule($context, RuleType::Rule); + $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 41; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 41; + } + + $stateComment = "State: 41 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 41; + } + + // 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 + { + if ($this->match_DocStringSeparator($context, $token)) { + $this->build($context, $token); + return 44; + } + if ($this->match_Other($context, $token)) { + $this->build($context, $token); + return 43; + } + + $stateComment = "State: 43 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 43; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $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_StepLine($context, $token)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $this->startRule($context, RuleType::Step); + $this->build($context, $token); + return 35; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 44; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 44; + } + + $stateComment = "State: 44 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 44; + } + + // 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 + { + if ($this->match_DocStringSeparator($context, $token)) { + $this->build($context, $token); + return 46; + } + if ($this->match_Other($context, $token)) { + $this->build($context, $token); + return 45; + } + + $stateComment = "State: 45 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 45; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $this->endRule($context, RuleType::Rule); + $this->endRule($context, RuleType::Feature); + $this->build($context, $token); + return 42; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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_Comment($context, $token)) { + $this->build($context, $token); + return 46; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 46; + } + + $stateComment = "State: 46 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 46; + } + + // 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 + { + if ($this->match_DocStringSeparator($context, $token)) { + $this->build($context, $token); + return 48; + } + if ($this->match_Other($context, $token)) { + $this->build($context, $token); + return 47; + } + + $stateComment = "State: 47 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 47; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Scenario); + $this->endRule($context, RuleType::ScenarioDefinition); + $this->endRule($context, RuleType::Feature); + $this->build($context, $token); + return 42; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_1($context)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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 48; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 48; + } + + $stateComment = "State: 48 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 48; + } + + // 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 + { + if ($this->match_DocStringSeparator($context, $token)) { + $this->build($context, $token); + return 50; + } + if ($this->match_Other($context, $token)) { + $this->build($context, $token); + return 49; + } + + $stateComment = "State: 49 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 49; + } + + // 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 + { + if ($this->match_EOF($context, $token)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $this->endRule($context, RuleType::Feature); + $this->build($context, $token); + return 42; + } + 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; + } + if ($this->match_TagLine($context, $token)) { + if ($this->lookahead_0($context)) { + $this->endRule($context, RuleType::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $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::DocString); + $this->endRule($context, RuleType::Step); + $this->endRule($context, RuleType::Background); + $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 50; + } + if ($this->match_Empty($context, $token)) { + $this->build($context, $token); + return 50; + } + + $stateComment = "State: 50 - 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) + : new UnexpectedTokenException($token, $expectedTokens, $stateComment); + + $this->addError($context, $error); + + return 50; + } + + + private function lookahead_0(ParserContext $context): bool + { + $queue = []; + $match = false; + do { + $token = $this->readToken($context); + $queue[] = $token; + + if (false + || $this->match_ScenarioLine($context, $token) + ) { + $match = true; + break; + } + } while (false + || $this->match_Empty($context, $token) + || $this->match_Comment($context, $token) + || $this->match_TagLine($context, $token) + ); + + $context->tokenQueue = [...$context->tokenQueue, ...$queue]; + + return $match; + } + + private function lookahead_1(ParserContext $context): bool + { + $queue = []; + $match = false; + do { + $token = $this->readToken($context); + $queue[] = $token; + + if (false + || $this->match_ExamplesLine($context, $token) + ) { + $match = true; + break; + } + } while (false + || $this->match_Empty($context, $token) + || $this->match_Comment($context, $token) + || $this->match_TagLine($context, $token) + ); + + $context->tokenQueue = [...$context->tokenQueue, ...$queue]; + + return $match; + } +} From eafe41175f470f8c861607438c98a85cb8ebff1b Mon Sep 17 00:00:00 2001 From: "jacob.wieland" Date: Thu, 9 Jan 2025 13:27:24 +0100 Subject: [PATCH 12/12] add re-generated Parser.php --- php/src-generated/Parser.php | 1582 ++++++++++------------------------ 1 file changed, 468 insertions(+), 1114 deletions(-) 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; }