UNPKG

gherkin

Version:
1,242 lines (1,241 loc) 161 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // This file is generated. Do not edit! Edit gherkin-javascript.razor instead. var Errors_1 = require("./Errors"); var TokenScanner_1 = __importDefault(require("./TokenScanner")); var TokenMatcher_1 = __importDefault(require("./TokenMatcher")); var TokenType; (function (TokenType) { TokenType[TokenType["None"] = 0] = "None"; TokenType[TokenType["EOF"] = 1] = "EOF"; TokenType[TokenType["Empty"] = 2] = "Empty"; TokenType[TokenType["Comment"] = 3] = "Comment"; TokenType[TokenType["TagLine"] = 4] = "TagLine"; TokenType[TokenType["FeatureLine"] = 5] = "FeatureLine"; TokenType[TokenType["RuleLine"] = 6] = "RuleLine"; TokenType[TokenType["BackgroundLine"] = 7] = "BackgroundLine"; TokenType[TokenType["ScenarioLine"] = 8] = "ScenarioLine"; TokenType[TokenType["ExamplesLine"] = 9] = "ExamplesLine"; TokenType[TokenType["StepLine"] = 10] = "StepLine"; TokenType[TokenType["DocStringSeparator"] = 11] = "DocStringSeparator"; TokenType[TokenType["TableRow"] = 12] = "TableRow"; TokenType[TokenType["Language"] = 13] = "Language"; TokenType[TokenType["Other"] = 14] = "Other"; })(TokenType = exports.TokenType || (exports.TokenType = {})); var RuleType; (function (RuleType) { RuleType[RuleType["None"] = 0] = "None"; RuleType[RuleType["_EOF"] = 1] = "_EOF"; RuleType[RuleType["_Empty"] = 2] = "_Empty"; RuleType[RuleType["_Comment"] = 3] = "_Comment"; RuleType[RuleType["_TagLine"] = 4] = "_TagLine"; RuleType[RuleType["_FeatureLine"] = 5] = "_FeatureLine"; RuleType[RuleType["_RuleLine"] = 6] = "_RuleLine"; RuleType[RuleType["_BackgroundLine"] = 7] = "_BackgroundLine"; RuleType[RuleType["_ScenarioLine"] = 8] = "_ScenarioLine"; RuleType[RuleType["_ExamplesLine"] = 9] = "_ExamplesLine"; RuleType[RuleType["_StepLine"] = 10] = "_StepLine"; RuleType[RuleType["_DocStringSeparator"] = 11] = "_DocStringSeparator"; RuleType[RuleType["_TableRow"] = 12] = "_TableRow"; RuleType[RuleType["_Language"] = 13] = "_Language"; RuleType[RuleType["_Other"] = 14] = "_Other"; RuleType[RuleType["GherkinDocument"] = 15] = "GherkinDocument"; RuleType[RuleType["Feature"] = 16] = "Feature"; RuleType[RuleType["FeatureHeader"] = 17] = "FeatureHeader"; RuleType[RuleType["Rule"] = 18] = "Rule"; RuleType[RuleType["RuleHeader"] = 19] = "RuleHeader"; RuleType[RuleType["Background"] = 20] = "Background"; RuleType[RuleType["ScenarioDefinition"] = 21] = "ScenarioDefinition"; RuleType[RuleType["Scenario"] = 22] = "Scenario"; RuleType[RuleType["ExamplesDefinition"] = 23] = "ExamplesDefinition"; RuleType[RuleType["Examples"] = 24] = "Examples"; RuleType[RuleType["ExamplesTable"] = 25] = "ExamplesTable"; RuleType[RuleType["Step"] = 26] = "Step"; RuleType[RuleType["StepArg"] = 27] = "StepArg"; RuleType[RuleType["DataTable"] = 28] = "DataTable"; RuleType[RuleType["DocString"] = 29] = "DocString"; RuleType[RuleType["Tags"] = 30] = "Tags"; RuleType[RuleType["DescriptionHelper"] = 31] = "DescriptionHelper"; RuleType[RuleType["Description"] = 32] = "Description"; })(RuleType = exports.RuleType || (exports.RuleType = {})); var Parser = /** @class */ (function () { function Parser(builder) { this.builder = builder; this.stopAtFirstError = false; } Parser.prototype.parse = function (tokenScanner, tokenMatcher) { if (tokenMatcher === void 0) { tokenMatcher = new TokenMatcher_1.default(); } if (typeof tokenScanner === 'string') { tokenScanner = new TokenScanner_1.default(tokenScanner); } this.builder.reset(); tokenMatcher.reset(); this.context = { tokenScanner: tokenScanner, tokenMatcher: tokenMatcher, tokenQueue: [], errors: [], }; this.startRule(this.context, RuleType.GherkinDocument); var state = 0; var token = null; while (true) { token = this.readToken(this.context); state = this.matchToken(state, token, this.context); if (token.isEof) { break; } } this.endRule(this.context, RuleType.GherkinDocument); if (this.context.errors.length > 0) { throw Errors_1.CompositeParserException.create(this.context.errors); } return this.getResult(); }; Parser.prototype.addError = function (context, error) { context.errors.push(error); if (context.errors.length > 10) { throw Errors_1.CompositeParserException.create(context.errors); } }; Parser.prototype.startRule = function (context, ruleType) { var _this = this; this.handleAstError(context, function () { return _this.builder.startRule(ruleType); }); }; Parser.prototype.endRule = function (context, ruleType) { var _this = this; this.handleAstError(context, function () { return _this.builder.endRule(ruleType); }); }; Parser.prototype.build = function (context, token) { var _this = this; this.handleAstError(context, function () { return _this.builder.build(token); }); }; Parser.prototype.getResult = function () { return this.builder.getResult(); }; Parser.prototype.handleAstError = function (context, action) { this.handleExternalError(context, true, action); }; Parser.prototype.handleExternalError = function (context, defaultValue, action) { var _this = this; if (this.stopAtFirstError) { return action(); } try { return action(); } catch (e) { if (e instanceof Errors_1.CompositeParserException) { e.errors.forEach(function (error) { return _this.addError(context, error); }); } else if (e instanceof Errors_1.ParserException || e instanceof Errors_1.AstBuilderException || e instanceof Errors_1.UnexpectedTokenException || e instanceof Errors_1.NoSuchLanguageException) { this.addError(context, e); } else { throw e; } } return defaultValue; }; Parser.prototype.readToken = function (context) { return context.tokenQueue.length > 0 ? context.tokenQueue.shift() : context.tokenScanner.read(); }; Parser.prototype.matchToken = function (state, token, context) { switch (state) { case 0: return this.matchTokenAt_0(token, context); case 1: return this.matchTokenAt_1(token, context); case 2: return this.matchTokenAt_2(token, context); case 3: return this.matchTokenAt_3(token, context); case 4: return this.matchTokenAt_4(token, context); case 5: return this.matchTokenAt_5(token, context); case 6: return this.matchTokenAt_6(token, context); case 7: return this.matchTokenAt_7(token, context); case 8: return this.matchTokenAt_8(token, context); case 9: return this.matchTokenAt_9(token, context); case 10: return this.matchTokenAt_10(token, context); case 11: return this.matchTokenAt_11(token, context); case 12: return this.matchTokenAt_12(token, context); case 13: return this.matchTokenAt_13(token, context); case 14: return this.matchTokenAt_14(token, context); case 15: return this.matchTokenAt_15(token, context); case 16: return this.matchTokenAt_16(token, context); case 17: return this.matchTokenAt_17(token, context); case 18: return this.matchTokenAt_18(token, context); case 19: return this.matchTokenAt_19(token, context); case 20: return this.matchTokenAt_20(token, context); case 21: return this.matchTokenAt_21(token, context); case 22: return this.matchTokenAt_22(token, context); case 23: return this.matchTokenAt_23(token, context); case 24: return this.matchTokenAt_24(token, context); case 25: return this.matchTokenAt_25(token, context); case 26: return this.matchTokenAt_26(token, context); case 27: return this.matchTokenAt_27(token, context); case 28: return this.matchTokenAt_28(token, context); case 29: return this.matchTokenAt_29(token, context); case 30: return this.matchTokenAt_30(token, context); case 31: return this.matchTokenAt_31(token, context); case 32: 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: return this.matchTokenAt_36(token, context); case 37: return this.matchTokenAt_37(token, context); case 38: return this.matchTokenAt_38(token, context); case 39: return this.matchTokenAt_39(token, context); case 40: return this.matchTokenAt_40(token, context); case 42: return this.matchTokenAt_42(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); default: throw new Error('Unknown state: ' + state); } }; // Start Parser.prototype.matchTokenAt_0 = function (token, context) { if (this.match_EOF(context, token)) { this.build(context, token); return 41; } 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; } var stateComment = 'State: 0 - Start'; token.detach(); var expectedTokens = [ '#EOF', '#Language', '#TagLine', '#FeatureLine', '#Comment', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 0; }; // GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0 Parser.prototype.matchTokenAt_1 = function (token, context) { 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; } var stateComment = 'State: 1 - GherkinDocument:0>Feature:0>FeatureHeader:0>#Language:0'; token.detach(); var expectedTokens = ['#TagLine', '#FeatureLine', '#Comment', '#Empty']; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 1; }; // GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0 Parser.prototype.matchTokenAt_2 = function (token, context) { 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; } var stateComment = 'State: 2 - GherkinDocument:0>Feature:0>FeatureHeader:1>Tags:0>#TagLine:0'; token.detach(); var expectedTokens = ['#TagLine', '#FeatureLine', '#Comment', '#Empty']; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 2; }; // GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0 Parser.prototype.matchTokenAt_3 = function (token, context) { if (this.match_EOF(context, token)) { this.endRule(context, RuleType.FeatureHeader); this.endRule(context, RuleType.Feature); this.build(context, token); return 41; } 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)) { this.endRule(context, RuleType.FeatureHeader); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 11; } 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 22; } if (this.match_Other(context, token)) { this.startRule(context, RuleType.Description); this.build(context, token); return 4; } var stateComment = 'State: 3 - GherkinDocument:0>Feature:0>FeatureHeader:2>#FeatureLine:0'; token.detach(); var expectedTokens = [ '#EOF', '#Empty', '#Comment', '#BackgroundLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 3; }; // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0 Parser.prototype.matchTokenAt_4 = function (token, context) { 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 41; } 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)) { 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_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 22; } if (this.match_Other(context, token)) { this.build(context, token); return 4; } var stateComment = 'State: 4 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:1>Description:0>#Other:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#BackgroundLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 4; }; // GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0 Parser.prototype.matchTokenAt_5 = function (token, context) { if (this.match_EOF(context, token)) { this.endRule(context, RuleType.FeatureHeader); this.endRule(context, RuleType.Feature); this.build(context, token); return 41; } 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)) { this.endRule(context, RuleType.FeatureHeader); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 11; } 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 22; } if (this.match_Empty(context, token)) { this.build(context, token); return 5; } var stateComment = 'State: 5 - GherkinDocument:0>Feature:0>FeatureHeader:3>DescriptionHelper:2>#Comment:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#BackgroundLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 5; }; // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0 Parser.prototype.matchTokenAt_6 = function (token, context) { if (this.match_EOF(context, token)) { this.endRule(context, RuleType.Background); this.endRule(context, RuleType.Feature); this.build(context, token); return 41; } 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)) { this.endRule(context, RuleType.Background); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 11; } 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 22; } if (this.match_Other(context, token)) { this.startRule(context, RuleType.Description); this.build(context, token); return 7; } var stateComment = 'State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0'; token.detach(); var expectedTokens = [ '#EOF', '#Empty', '#Comment', '#StepLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 6; }; // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0 Parser.prototype.matchTokenAt_7 = function (token, context) { 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 41; } 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)) { 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_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 22; } if (this.match_Other(context, token)) { this.build(context, token); return 7; } var stateComment = 'State: 7 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:1>Description:0>#Other:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#StepLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 7; }; // GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0 Parser.prototype.matchTokenAt_8 = function (token, context) { if (this.match_EOF(context, token)) { this.endRule(context, RuleType.Background); this.endRule(context, RuleType.Feature); this.build(context, token); return 41; } 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)) { this.endRule(context, RuleType.Background); this.startRule(context, RuleType.ScenarioDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 11; } 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 22; } if (this.match_Empty(context, token)) { this.build(context, token); return 8; } var stateComment = 'State: 8 - GherkinDocument:0>Feature:1>Background:1>DescriptionHelper:2>#Comment:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#StepLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 8; }; // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0 Parser.prototype.matchTokenAt_9 = function (token, context) { 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 41; } 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 48; } 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)) { 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_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 22; } if (this.match_Comment(context, token)) { this.build(context, token); return 9; } if (this.match_Empty(context, token)) { this.build(context, token); return 9; } var stateComment = 'State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0'; token.detach(); var expectedTokens = [ '#EOF', '#TableRow', '#DocStringSeparator', '#StepLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Comment', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 9; }; // GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0 Parser.prototype.matchTokenAt_10 = function (token, context) { 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 41; } 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)) { 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_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 22; } if (this.match_Comment(context, token)) { this.build(context, token); return 10; } if (this.match_Empty(context, token)) { this.build(context, token); return 10; } var stateComment = 'State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>StepArg:0>__alt0:0>DataTable:0>#TableRow:0'; token.detach(); var expectedTokens = [ '#EOF', '#TableRow', '#StepLine', '#TagLine', '#ScenarioLine', '#RuleLine', '#Comment', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 10; }; // GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0 Parser.prototype.matchTokenAt_11 = function (token, context) { 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; } var stateComment = 'State: 11 - GherkinDocument:0>Feature:2>ScenarioDefinition:0>Tags:0>#TagLine:0'; token.detach(); var expectedTokens = ['#TagLine', '#ScenarioLine', '#Comment', '#Empty']; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 11; }; // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0 Parser.prototype.matchTokenAt_12 = function (token, context) { 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 41; } 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_0(context, token)) { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 17; } } if (this.match_TagLine(context, token)) { 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_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 22; } if (this.match_Other(context, token)) { this.startRule(context, RuleType.Description); this.build(context, token); return 13; } var stateComment = 'State: 12 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:0>#ScenarioLine:0'; token.detach(); var expectedTokens = [ '#EOF', '#Empty', '#Comment', '#StepLine', '#TagLine', '#ExamplesLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 12; }; // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0 Parser.prototype.matchTokenAt_13 = function (token, context) { 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 41; } 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_0(context, token)) { 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)) { 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_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 22; } if (this.match_Other(context, token)) { this.build(context, token); return 13; } var stateComment = 'State: 13 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:1>Description:0>#Other:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#StepLine', '#TagLine', '#ExamplesLine', '#ScenarioLine', '#RuleLine', '#Other', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 13; }; // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0 Parser.prototype.matchTokenAt_14 = function (token, context) { 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 41; } 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_0(context, token)) { this.startRule(context, RuleType.ExamplesDefinition); this.startRule(context, RuleType.Tags); this.build(context, token); return 17; } } if (this.match_TagLine(context, token)) { 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_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 22; } if (this.match_Empty(context, token)) { this.build(context, token); return 14; } var stateComment = 'State: 14 - GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:1>DescriptionHelper:2>#Comment:0'; token.detach(); var expectedTokens = [ '#EOF', '#Comment', '#StepLine', '#TagLine', '#ExamplesLine', '#ScenarioLine', '#RuleLine', '#Empty', ]; var error = token.isEof ? Errors_1.UnexpectedEOFException.create(token, expectedTokens, stateComment) : Errors_1.UnexpectedTokenException.create(token, expectedTokens, stateComment); if (this.stopAtFirstError) { throw error; } this.addError(context, error); return 14; }; // GherkinDocument:0>Feature:2>ScenarioDefinition:1>Scenario:2>Step:0>#StepLine:0 Parser.prototype.matchTokenAt_15 = function (token, context) { 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 41; } 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 46; } 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_0(context, token)) { this.endRule(context, RuleType.Step);