How to use AstBuilderException method in Cucumber-gherkin

Best JavaScript code snippet using cucumber-gherkin

gherkin.js

Source:gherkin.js Github

copy

Full Screen

1/*2The MIT License (MIT)3Copyright (c) Cucumber Ltd, Gaspar Nagy, Björn Rasmusson, Peter Sergeant4Permission is hereby granted, free of charge, to any person obtaining a copy5of this software and associated documentation files (the "Software"), to deal6in the Software without restriction, including without limitation the rights7to use, copy, modify, merge, publish, distribute, sublicense, and/or sell8copies of the Software, and to permit persons to whom the Software is9furnished to do so, subject to the following conditions:10The above copyright notice and this permission notice shall be included in11all copies or substantial portions of the Software.12THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR13IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,14FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE15AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER16LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,17OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN18THE SOFTWARE.19*/20(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){21(function (factory) {22 if (typeof define === 'function' && define.amd) {23 // AMD. Register as an anonymous module24 define([], factory)25 }26 if (typeof module !== 'undefined' && module.exports) {27 // Node.js/RequireJS28 module.exports = factory();29 }30 if (typeof window === 'object'){31 // Browser globals32 window.Gherkin = factory();33 }34}(function () {35 return {36 Parser: require('./lib/gherkin/parser'),37 TokenScanner: require('./lib/gherkin/token_scanner'),38 TokenMatcher: require('./lib/gherkin/token_matcher'),39 AstBuilder: require('./lib/gherkin/ast_builder'),40 Compiler: require('./lib/gherkin/pickles/compiler'),41 DIALECTS: require('./lib/gherkin/dialects'),42 generateEvents: require('./lib/gherkin/generate_events')43 };44}));45},{"./lib/gherkin/ast_builder":2,"./lib/gherkin/dialects":5,"./lib/gherkin/generate_events":7,"./lib/gherkin/parser":10,"./lib/gherkin/pickles/compiler":11,"./lib/gherkin/token_matcher":13,"./lib/gherkin/token_scanner":14}],2:[function(require,module,exports){46var AstNode = require('./ast_node');47var Errors = require('./errors');48module.exports = function AstBuilder () {49 var stack = [new AstNode('None')];50 var comments = [];51 this.reset = function () {52 stack = [new AstNode('None')];53 comments = [];54 };55 this.startRule = function (ruleType) {56 stack.push(new AstNode(ruleType));57 };58 this.endRule = function (ruleType) {59 var node = stack.pop();60 var transformedNode = transformNode(node);61 currentNode().add(node.ruleType, transformedNode);62 };63 this.build = function (token) {64 if(token.matchedType === 'Comment') {65 comments.push({66 type: 'Comment',67 location: getLocation(token),68 text: token.matchedText69 });70 } else {71 currentNode().add(token.matchedType, token);72 }73 };74 this.getResult = function () {75 return currentNode().getSingle('GherkinDocument');76 };77 function currentNode () {78 return stack[stack.length - 1];79 }80 function getLocation (token, column) {81 return !column ? token.location : {line: token.location.line, column: column};82 }83 function getTags (node) {84 var tags = [];85 var tagsNode = node.getSingle('Tags');86 if (!tagsNode) return tags;87 tagsNode.getTokens('TagLine').forEach(function (token) {88 token.matchedItems.forEach(function (tagItem) {89 tags.push({90 type: 'Tag',91 location: getLocation(token, tagItem.column),92 name: tagItem.text93 });94 });95 });96 return tags;97 }98 function getCells(tableRowToken) {99 return tableRowToken.matchedItems.map(function (cellItem) {100 return {101 type: 'TableCell',102 location: getLocation(tableRowToken, cellItem.column),103 value: cellItem.text104 }105 });106 }107 function getDescription (node) {108 return node.getSingle('Description');109 }110 function getSteps (node) {111 return node.getItems('Step');112 }113 function getTableRows(node) {114 var rows = node.getTokens('TableRow').map(function (token) {115 return {116 type: 'TableRow',117 location: getLocation(token),118 cells: getCells(token)119 };120 });121 ensureCellCount(rows);122 return rows;123 }124 function ensureCellCount(rows) {125 if(rows.length == 0) return;126 var cellCount = rows[0].cells.length;127 rows.forEach(function (row) {128 if (row.cells.length != cellCount) {129 throw Errors.AstBuilderException.create("inconsistent cell count within the table", row.location);130 }131 });132 }133 function transformNode(node) {134 switch(node.ruleType) {135 case 'Step':136 var stepLine = node.getToken('StepLine');137 var stepArgument = node.getSingle('DataTable') || node.getSingle('DocString') || undefined;138 return {139 type: node.ruleType,140 location: getLocation(stepLine),141 keyword: stepLine.matchedKeyword,142 text: stepLine.matchedText,143 argument: stepArgument144 }145 case 'DocString':146 var separatorToken = node.getTokens('DocStringSeparator')[0];147 var contentType = separatorToken.matchedText.length > 0 ? separatorToken.matchedText : undefined;148 var lineTokens = node.getTokens('Other');149 var content = lineTokens.map(function (t) {return t.matchedText}).join("\n");150 var result = {151 type: node.ruleType,152 location: getLocation(separatorToken),153 content: content154 };155 // conditionally add this like this (needed to make tests pass on node 0.10 as well as 4.0)156 if(contentType) {157 result.contentType = contentType;158 }159 return result;160 case 'DataTable':161 var rows = getTableRows(node);162 return {163 type: node.ruleType,164 location: rows[0].location,165 rows: rows,166 }167 case 'Background':168 var backgroundLine = node.getToken('BackgroundLine');169 var description = getDescription(node);170 var steps = getSteps(node);171 return {172 type: node.ruleType,173 location: getLocation(backgroundLine),174 keyword: backgroundLine.matchedKeyword,175 name: backgroundLine.matchedText,176 description: description,177 steps: steps178 };179 case 'Scenario_Definition':180 var tags = getTags(node);181 var scenarioNode = node.getSingle('Scenario');182 if(scenarioNode) {183 var scenarioLine = scenarioNode.getToken('ScenarioLine');184 var description = getDescription(scenarioNode);185 var steps = getSteps(scenarioNode);186 return {187 type: scenarioNode.ruleType,188 tags: tags,189 location: getLocation(scenarioLine),190 keyword: scenarioLine.matchedKeyword,191 name: scenarioLine.matchedText,192 description: description,193 steps: steps194 };195 } else {196 var scenarioOutlineNode = node.getSingle('ScenarioOutline');197 if(!scenarioOutlineNode) throw new Error('Internal grammar error');198 var scenarioOutlineLine = scenarioOutlineNode.getToken('ScenarioOutlineLine');199 var description = getDescription(scenarioOutlineNode);200 var steps = getSteps(scenarioOutlineNode);201 var examples = scenarioOutlineNode.getItems('Examples_Definition');202 return {203 type: scenarioOutlineNode.ruleType,204 tags: tags,205 location: getLocation(scenarioOutlineLine),206 keyword: scenarioOutlineLine.matchedKeyword,207 name: scenarioOutlineLine.matchedText,208 description: description,209 steps: steps,210 examples: examples211 };212 }213 case 'Examples_Definition':214 var tags = getTags(node);215 var examplesNode = node.getSingle('Examples');216 var examplesLine = examplesNode.getToken('ExamplesLine');217 var description = getDescription(examplesNode);218 var exampleTable = examplesNode.getSingle('Examples_Table')219 return {220 type: examplesNode.ruleType,221 tags: tags,222 location: getLocation(examplesLine),223 keyword: examplesLine.matchedKeyword,224 name: examplesLine.matchedText,225 description: description,226 tableHeader: exampleTable != undefined ? exampleTable.tableHeader : undefined,227 tableBody: exampleTable != undefined ? exampleTable.tableBody : undefined228 };229 case 'Examples_Table':230 var rows = getTableRows(node)231 return {232 tableHeader: rows != undefined ? rows[0] : undefined,233 tableBody: rows != undefined ? rows.slice(1) : undefined234 };235 case 'Description':236 var lineTokens = node.getTokens('Other');237 // Trim trailing empty lines238 var end = lineTokens.length;239 while (end > 0 && lineTokens[end-1].line.trimmedLineText === '') {240 end--;241 }242 lineTokens = lineTokens.slice(0, end);243 var description = lineTokens.map(function (token) { return token.matchedText}).join("\n");244 return description;245 case 'Feature':246 var header = node.getSingle('Feature_Header');247 if(!header) return null;248 var tags = getTags(header);249 var featureLine = header.getToken('FeatureLine');250 if(!featureLine) return null;251 var children = []252 var background = node.getSingle('Background');253 if(background) children.push(background);254 children = children.concat(node.getItems('Scenario_Definition'));255 var description = getDescription(header);256 var language = featureLine.matchedGherkinDialect;257 return {258 type: node.ruleType,259 tags: tags,260 location: getLocation(featureLine),261 language: language,262 keyword: featureLine.matchedKeyword,263 name: featureLine.matchedText,264 description: description,265 children: children,266 };267 case 'GherkinDocument':268 var feature = node.getSingle('Feature');269 return {270 type: node.ruleType,271 feature: feature,272 comments: comments273 };274 default:275 return node;276 }277 }278};279},{"./ast_node":3,"./errors":6}],3:[function(require,module,exports){280function AstNode (ruleType) {281 this.ruleType = ruleType;282 this._subItems = {};283}284AstNode.prototype.add = function (ruleType, obj) {285 var items = this._subItems[ruleType];286 if(items === undefined) this._subItems[ruleType] = items = [];287 items.push(obj);288}289AstNode.prototype.getSingle = function (ruleType) {290 return (this._subItems[ruleType] || [])[0];291}292AstNode.prototype.getItems = function (ruleType) {293 return this._subItems[ruleType] || [];294}295AstNode.prototype.getToken = function (tokenType) {296 return this.getSingle(tokenType);297}298AstNode.prototype.getTokens = function (tokenType) {299 return this._subItems[tokenType] || [];300}301module.exports = AstNode;302},{}],4:[function(require,module,exports){303// https://mathiasbynens.be/notes/javascript-unicode304var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;305module.exports = function countSymbols(string) {306 return string.replace(regexAstralSymbols, '_').length;307}308},{}],5:[function(require,module,exports){309module.exports = require('./gherkin-languages.json');310},{"./gherkin-languages.json":8}],6:[function(require,module,exports){311var Errors = {};312[313 'ParserException',314 'CompositeParserException',315 'UnexpectedTokenException',316 'UnexpectedEOFException',317 'AstBuilderException',318 'NoSuchLanguageException'319].forEach(function (name) {320 function ErrorProto (message) {321 this.message = message || ('Unspecified ' + name);322 if (Error.captureStackTrace) {323 Error.captureStackTrace(this, arguments.callee);324 }325 }326 ErrorProto.prototype = Object.create(Error.prototype);327 ErrorProto.prototype.name = name;328 ErrorProto.prototype.constructor = ErrorProto;329 Errors[name] = ErrorProto;330});331Errors.CompositeParserException.create = function(errors) {332 var message = "Parser errors:\n" + errors.map(function (e) { return e.message; }).join("\n");333 var err = new Errors.CompositeParserException(message);334 err.errors = errors;335 return err;336};337Errors.UnexpectedTokenException.create = function(token, expectedTokenTypes, stateComment) {338 var message = "expected: " + expectedTokenTypes.join(', ') + ", got '" + token.getTokenValue().trim() + "'";339 var location = !token.location.column340 ? {line: token.location.line, column: token.line.indent + 1 }341 : token.location;342 return createError(Errors.UnexpectedEOFException, message, location);343};344Errors.UnexpectedEOFException.create = function(token, expectedTokenTypes, stateComment) {345 var message = "unexpected end of file, expected: " + expectedTokenTypes.join(', ');346 return createError(Errors.UnexpectedTokenException, message, token.location);347};348Errors.AstBuilderException.create = function(message, location) {349 return createError(Errors.AstBuilderException, message, location);350};351Errors.NoSuchLanguageException.create = function(language, location) {352 var message = "Language not supported: " + language;353 return createError(Errors.NoSuchLanguageException, message, location);354};355function createError(Ctor, message, location) {356 var fullMessage = "(" + location.line + ":" + location.column + "): " + message;357 var error = new Ctor(fullMessage);358 error.location = location;359 return error;360}361module.exports = Errors;362},{}],7:[function(require,module,exports){363var Parser = require('./parser')364var Compiler = require('./pickles/compiler')365var compiler = new Compiler()366var parser = new Parser()367parser.stopAtFirstError = false368function generateEvents(data, uri, types, language) {369 types = Object.assign({370 'source': true,371 'gherkin-document': true,372 'pickle': true373 }, types || {})374 result = []375 try {376 if (types['source']) {377 result.push({378 type: 'source',379 uri: uri,380 data: data,381 media: {382 encoding: 'utf-8',383 type: 'text/x.cucumber.gherkin+plain'384 }385 })386 }387 if (!types['gherkin-document'] && !types['pickle'])388 return result389 var gherkinDocument = parser.parse(data, language)390 if (types['gherkin-document']) {391 result.push({392 type: 'gherkin-document',393 uri: uri,394 document: gherkinDocument395 })396 }397 if (types['pickle']) {398 var pickles = compiler.compile(gherkinDocument)399 for (var p in pickles) {400 result.push({401 type: 'pickle',402 uri: uri,403 pickle: pickles[p]404 })405 }406 }407 } catch (err) {408 var errors = err.errors || [err]409 for (var e in errors) {410 result.push({411 type: "attachment",412 source: {413 uri: uri,414 start: {415 line: errors[e].location.line,416 column: errors[e].location.column417 }418 },419 data: errors[e].message,420 media: {421 encoding: "utf-8",422 type: "text/x.cucumber.stacktrace+plain"423 }424 })425 }426 }427 return result428}429module.exports = generateEvents430},{"./parser":10,"./pickles/compiler":11}],8:[function(require,module,exports){431module.exports={432 "af": {433 "and": [434 "* ",435 "En "436 ],437 "background": [438 "Agtergrond"439 ],440 "but": [441 "* ",442 "Maar "443 ],444 "examples": [445 "Voorbeelde"446 ],447 "feature": [448 "Funksie",449 "Besigheid Behoefte",450 "Vermoë"451 ],452 "given": [453 "* ",454 "Gegewe "455 ],456 "name": "Afrikaans",457 "native": "Afrikaans",458 "scenario": [459 "Situasie"460 ],461 "scenarioOutline": [462 "Situasie Uiteensetting"463 ],464 "then": [465 "* ",466 "Dan "467 ],468 "when": [469 "* ",470 "Wanneer "471 ]472 },473 "am": {474 "and": [475 "* ",476 "Եվ "477 ],478 "background": [479 "Կոնտեքստ"480 ],481 "but": [482 "* ",483 "Բայց "484 ],485 "examples": [486 "Օրինակներ"487 ],488 "feature": [489 "Ֆունկցիոնալություն",490 "Հատկություն"491 ],492 "given": [493 "* ",494 "Դիցուք "495 ],496 "name": "Armenian",497 "native": "հայերեն",498 "scenario": [499 "Սցենար"500 ],501 "scenarioOutline": [502 "Սցենարի կառուցվացքը"503 ],504 "then": [505 "* ",506 "Ապա "507 ],508 "when": [509 "* ",510 "Եթե ",511 "Երբ "512 ]513 },514 "an": {515 "and": [516 "* ",517 "Y ",518 "E "519 ],520 "background": [521 "Antecedents"522 ],523 "but": [524 "* ",525 "Pero "526 ],527 "examples": [528 "Eixemplos"529 ],530 "feature": [531 "Caracteristica"532 ],533 "given": [534 "* ",535 "Dau ",536 "Dada ",537 "Daus ",538 "Dadas "539 ],540 "name": "Aragonese",541 "native": "Aragonés",542 "scenario": [543 "Caso"544 ],545 "scenarioOutline": [546 "Esquema del caso"547 ],548 "then": [549 "* ",550 "Alavez ",551 "Allora ",552 "Antonces "553 ],554 "when": [555 "* ",556 "Cuan "557 ]558 },559 "ar": {560 "and": [561 "* ",562 "و "563 ],564 "background": [565 "الخلفية"566 ],567 "but": [568 "* ",569 "لكن "570 ],571 "examples": [572 "امثلة"573 ],574 "feature": [575 "خاصية"576 ],577 "given": [578 "* ",579 "بفرض "580 ],581 "name": "Arabic",582 "native": "العربية",583 "scenario": [584 "سيناريو"585 ],586 "scenarioOutline": [587 "سيناريو مخطط"588 ],589 "then": [590 "* ",591 "اذاً ",592 "ثم "593 ],594 "when": [595 "* ",596 "متى ",597 "عندما "598 ]599 },600 "ast": {601 "and": [602 "* ",603 "Y ",604 "Ya "605 ],606 "background": [607 "Antecedentes"608 ],609 "but": [610 "* ",611 "Peru "612 ],613 "examples": [614 "Exemplos"615 ],616 "feature": [617 "Carauterística"618 ],619 "given": [620 "* ",621 "Dáu ",622 "Dada ",623 "Daos ",624 "Daes "625 ],626 "name": "Asturian",627 "native": "asturianu",628 "scenario": [629 "Casu"630 ],631 "scenarioOutline": [632 "Esbozu del casu"633 ],634 "then": [635 "* ",636 "Entós "637 ],638 "when": [639 "* ",640 "Cuando "641 ]642 },643 "az": {644 "and": [645 "* ",646 "Və ",647 "Həm "648 ],649 "background": [650 "Keçmiş",651 "Kontekst"652 ],653 "but": [654 "* ",655 "Amma ",656 "Ancaq "657 ],658 "examples": [659 "Nümunələr"660 ],661 "feature": [662 "Özəllik"663 ],664 "given": [665 "* ",666 "Tutaq ki ",667 "Verilir "668 ],669 "name": "Azerbaijani",670 "native": "Azərbaycanca",671 "scenario": [672 "Ssenari"673 ],674 "scenarioOutline": [675 "Ssenarinin strukturu"676 ],677 "then": [678 "* ",679 "O halda "680 ],681 "when": [682 "* ",683 "Əgər ",684 "Nə vaxt ki "685 ]686 },687 "bg": {688 "and": [689 "* ",690 "И "691 ],692 "background": [693 "Предистория"694 ],695 "but": [696 "* ",697 "Но "698 ],699 "examples": [700 "Примери"701 ],702 "feature": [703 "Функционалност"704 ],705 "given": [706 "* ",707 "Дадено "708 ],709 "name": "Bulgarian",710 "native": "български",711 "scenario": [712 "Сценарий"713 ],714 "scenarioOutline": [715 "Рамка на сценарий"716 ],717 "then": [718 "* ",719 "То "720 ],721 "when": [722 "* ",723 "Когато "724 ]725 },726 "bm": {727 "and": [728 "* ",729 "Dan "730 ],731 "background": [732 "Latar Belakang"733 ],734 "but": [735 "* ",736 "Tetapi ",737 "Tapi "738 ],739 "examples": [740 "Contoh"741 ],742 "feature": [743 "Fungsi"744 ],745 "given": [746 "* ",747 "Diberi ",748 "Bagi "749 ],750 "name": "Malay",751 "native": "Bahasa Melayu",752 "scenario": [753 "Senario",754 "Situasi",755 "Keadaan"756 ],757 "scenarioOutline": [758 "Kerangka Senario",759 "Kerangka Situasi",760 "Kerangka Keadaan",761 "Garis Panduan Senario"762 ],763 "then": [764 "* ",765 "Maka ",766 "Kemudian "767 ],768 "when": [769 "* ",770 "Apabila "771 ]772 },773 "bs": {774 "and": [775 "* ",776 "I ",777 "A "778 ],779 "background": [780 "Pozadina"781 ],782 "but": [783 "* ",784 "Ali "785 ],786 "examples": [787 "Primjeri"788 ],789 "feature": [790 "Karakteristika"791 ],792 "given": [793 "* ",794 "Dato "795 ],796 "name": "Bosnian",797 "native": "Bosanski",798 "scenario": [799 "Scenariju",800 "Scenario"801 ],802 "scenarioOutline": [803 "Scenariju-obris",804 "Scenario-outline"805 ],806 "then": [807 "* ",808 "Zatim "809 ],810 "when": [811 "* ",812 "Kada "813 ]814 },815 "ca": {816 "and": [817 "* ",818 "I "819 ],820 "background": [821 "Rerefons",822 "Antecedents"823 ],824 "but": [825 "* ",826 "Però "827 ],828 "examples": [829 "Exemples"830 ],831 "feature": [832 "Característica",833 "Funcionalitat"834 ],835 "given": [836 "* ",837 "Donat ",838 "Donada ",839 "Atès ",840 "Atesa "841 ],842 "name": "Catalan",843 "native": "català",844 "scenario": [845 "Escenari"846 ],847 "scenarioOutline": [848 "Esquema de l'escenari"849 ],850 "then": [851 "* ",852 "Aleshores ",853 "Cal "854 ],855 "when": [856 "* ",857 "Quan "858 ]859 },860 "cs": {861 "and": [862 "* ",863 "A také ",864 "A "865 ],866 "background": [867 "Pozadí",868 "Kontext"869 ],870 "but": [871 "* ",872 "Ale "873 ],874 "examples": [875 "Příklady"876 ],877 "feature": [878 "Požadavek"879 ],880 "given": [881 "* ",882 "Pokud ",883 "Za předpokladu "884 ],885 "name": "Czech",886 "native": "Česky",887 "scenario": [888 "Scénář"889 ],890 "scenarioOutline": [891 "Náčrt Scénáře",892 "Osnova scénáře"893 ],894 "then": [895 "* ",896 "Pak "897 ],898 "when": [899 "* ",900 "Když "901 ]902 },903 "cy-GB": {904 "and": [905 "* ",906 "A "907 ],908 "background": [909 "Cefndir"910 ],911 "but": [912 "* ",913 "Ond "914 ],915 "examples": [916 "Enghreifftiau"917 ],918 "feature": [919 "Arwedd"920 ],921 "given": [922 "* ",923 "Anrhegedig a "924 ],925 "name": "Welsh",926 "native": "Cymraeg",927 "scenario": [928 "Scenario"929 ],930 "scenarioOutline": [931 "Scenario Amlinellol"932 ],933 "then": [934 "* ",935 "Yna "936 ],937 "when": [938 "* ",939 "Pryd "940 ]941 },942 "da": {943 "and": [944 "* ",945 "Og "946 ],947 "background": [948 "Baggrund"949 ],950 "but": [951 "* ",952 "Men "953 ],954 "examples": [955 "Eksempler"956 ],957 "feature": [958 "Egenskab"959 ],960 "given": [961 "* ",962 "Givet "963 ],964 "name": "Danish",965 "native": "dansk",966 "scenario": [967 "Scenarie"968 ],969 "scenarioOutline": [970 "Abstrakt Scenario"971 ],972 "then": [973 "* ",974 "Så "975 ],976 "when": [977 "* ",978 "Når "979 ]980 },981 "de": {982 "and": [983 "* ",984 "Und "985 ],986 "background": [987 "Grundlage"988 ],989 "but": [990 "* ",991 "Aber "992 ],993 "examples": [994 "Beispiele"995 ],996 "feature": [997 "Funktionalität"998 ],999 "given": [1000 "* ",1001 "Angenommen ",1002 "Gegeben sei ",1003 "Gegeben seien "1004 ],1005 "name": "German",1006 "native": "Deutsch",1007 "scenario": [1008 "Szenario"1009 ],1010 "scenarioOutline": [1011 "Szenariogrundriss"1012 ],1013 "then": [1014 "* ",1015 "Dann "1016 ],1017 "when": [1018 "* ",1019 "Wenn "1020 ]1021 },1022 "el": {1023 "and": [1024 "* ",1025 "Και "1026 ],1027 "background": [1028 "Υπόβαθρο"1029 ],1030 "but": [1031 "* ",1032 "Αλλά "1033 ],1034 "examples": [1035 "Παραδείγματα",1036 "Σενάρια"1037 ],1038 "feature": [1039 "Δυνατότητα",1040 "Λειτουργία"1041 ],1042 "given": [1043 "* ",1044 "Δεδομένου "1045 ],1046 "name": "Greek",1047 "native": "Ελληνικά",1048 "scenario": [1049 "Σενάριο"1050 ],1051 "scenarioOutline": [1052 "Περιγραφή Σεναρίου",1053 "Περίγραμμα Σεναρίου"1054 ],1055 "then": [1056 "* ",1057 "Τότε "1058 ],1059 "when": [1060 "* ",1061 "Όταν "1062 ]1063 },1064 "em": {1065 "and": [1066 "* ",1067 "😂"1068 ],1069 "background": [1070 "💤"1071 ],1072 "but": [1073 "* ",1074 "😔"1075 ],1076 "examples": [1077 "📓"1078 ],1079 "feature": [1080 "📚"1081 ],1082 "given": [1083 "* ",1084 "😐"1085 ],1086 "name": "Emoji",1087 "native": "😀",1088 "scenario": [1089 "📕"1090 ],1091 "scenarioOutline": [1092 "📖"1093 ],1094 "then": [1095 "* ",1096 "🙏"1097 ],1098 "when": [1099 "* ",1100 "🎬"1101 ]1102 },1103 "en": {1104 "and": [1105 "* ",1106 "And "1107 ],1108 "background": [1109 "Background"1110 ],1111 "but": [1112 "* ",1113 "But "1114 ],1115 "examples": [1116 "Examples",1117 "Scenarios"1118 ],1119 "feature": [1120 "Feature",1121 "Business Need",1122 "Ability"1123 ],1124 "given": [1125 "* ",1126 "Given "1127 ],1128 "name": "English",1129 "native": "English",1130 "scenario": [1131 "Scenario"1132 ],1133 "scenarioOutline": [1134 "Scenario Outline",1135 "Scenario Template"1136 ],1137 "then": [1138 "* ",1139 "Then "1140 ],1141 "when": [1142 "* ",1143 "When "1144 ]1145 },1146 "en-Scouse": {1147 "and": [1148 "* ",1149 "An "1150 ],1151 "background": [1152 "Dis is what went down"1153 ],1154 "but": [1155 "* ",1156 "Buh "1157 ],1158 "examples": [1159 "Examples"1160 ],1161 "feature": [1162 "Feature"1163 ],1164 "given": [1165 "* ",1166 "Givun ",1167 "Youse know when youse got "1168 ],1169 "name": "Scouse",1170 "native": "Scouse",1171 "scenario": [1172 "The thing of it is"1173 ],1174 "scenarioOutline": [1175 "Wharrimean is"1176 ],1177 "then": [1178 "* ",1179 "Dun ",1180 "Den youse gotta "1181 ],1182 "when": [1183 "* ",1184 "Wun ",1185 "Youse know like when "1186 ]1187 },1188 "en-au": {1189 "and": [1190 "* ",1191 "Too right "1192 ],1193 "background": [1194 "First off"1195 ],1196 "but": [1197 "* ",1198 "Yeah nah "1199 ],1200 "examples": [1201 "You'll wanna"1202 ],1203 "feature": [1204 "Pretty much"1205 ],1206 "given": [1207 "* ",1208 "Y'know "1209 ],1210 "name": "Australian",1211 "native": "Australian",1212 "scenario": [1213 "Awww, look mate"1214 ],1215 "scenarioOutline": [1216 "Reckon it's like"1217 ],1218 "then": [1219 "* ",1220 "But at the end of the day I reckon "1221 ],1222 "when": [1223 "* ",1224 "It's just unbelievable "1225 ]1226 },1227 "en-lol": {1228 "and": [1229 "* ",1230 "AN "1231 ],1232 "background": [1233 "B4"1234 ],1235 "but": [1236 "* ",1237 "BUT "1238 ],1239 "examples": [1240 "EXAMPLZ"1241 ],1242 "feature": [1243 "OH HAI"1244 ],1245 "given": [1246 "* ",1247 "I CAN HAZ "1248 ],1249 "name": "LOLCAT",1250 "native": "LOLCAT",1251 "scenario": [1252 "MISHUN"1253 ],1254 "scenarioOutline": [1255 "MISHUN SRSLY"1256 ],1257 "then": [1258 "* ",1259 "DEN "1260 ],1261 "when": [1262 "* ",1263 "WEN "1264 ]1265 },1266 "en-old": {1267 "and": [1268 "* ",1269 "Ond ",1270 "7 "1271 ],1272 "background": [1273 "Aer",1274 "Ær"1275 ],1276 "but": [1277 "* ",1278 "Ac "1279 ],1280 "examples": [1281 "Se the",1282 "Se þe",1283 "Se ðe"1284 ],1285 "feature": [1286 "Hwaet",1287 "Hwæt"1288 ],1289 "given": [1290 "* ",1291 "Thurh ",1292 "Þurh ",1293 "Ðurh "1294 ],1295 "name": "Old English",1296 "native": "Englisc",1297 "scenario": [1298 "Swa"1299 ],1300 "scenarioOutline": [1301 "Swa hwaer swa",1302 "Swa hwær swa"1303 ],1304 "then": [1305 "* ",1306 "Tha ",1307 "Þa ",1308 "Ða ",1309 "Tha the ",1310 "Þa þe ",1311 "Ða ðe "1312 ],1313 "when": [1314 "* ",1315 "Tha ",1316 "Þa ",1317 "Ða "1318 ]1319 },1320 "en-pirate": {1321 "and": [1322 "* ",1323 "Aye "1324 ],1325 "background": [1326 "Yo-ho-ho"1327 ],1328 "but": [1329 "* ",1330 "Avast! "1331 ],1332 "examples": [1333 "Dead men tell no tales"1334 ],1335 "feature": [1336 "Ahoy matey!"1337 ],1338 "given": [1339 "* ",1340 "Gangway! "1341 ],1342 "name": "Pirate",1343 "native": "Pirate",1344 "scenario": [1345 "Heave to"1346 ],1347 "scenarioOutline": [1348 "Shiver me timbers"1349 ],1350 "then": [1351 "* ",1352 "Let go and haul "1353 ],1354 "when": [1355 "* ",1356 "Blimey! "1357 ]1358 },1359 "eo": {1360 "and": [1361 "* ",1362 "Kaj "1363 ],1364 "background": [1365 "Fono"1366 ],1367 "but": [1368 "* ",1369 "Sed "1370 ],1371 "examples": [1372 "Ekzemploj"1373 ],1374 "feature": [1375 "Trajto"1376 ],1377 "given": [1378 "* ",1379 "Donitaĵo ",1380 "Komence "1381 ],1382 "name": "Esperanto",1383 "native": "Esperanto",1384 "scenario": [1385 "Scenaro",1386 "Kazo"1387 ],1388 "scenarioOutline": [1389 "Konturo de la scenaro",1390 "Skizo",1391 "Kazo-skizo"1392 ],1393 "then": [1394 "* ",1395 "Do "1396 ],1397 "when": [1398 "* ",1399 "Se "1400 ]1401 },1402 "es": {1403 "and": [1404 "* ",1405 "Y ",1406 "E "1407 ],1408 "background": [1409 "Antecedentes"1410 ],1411 "but": [1412 "* ",1413 "Pero "1414 ],1415 "examples": [1416 "Ejemplos"1417 ],1418 "feature": [1419 "Característica"1420 ],1421 "given": [1422 "* ",1423 "Dado ",1424 "Dada ",1425 "Dados ",1426 "Dadas "1427 ],1428 "name": "Spanish",1429 "native": "español",1430 "scenario": [1431 "Escenario"1432 ],1433 "scenarioOutline": [1434 "Esquema del escenario"1435 ],1436 "then": [1437 "* ",1438 "Entonces "1439 ],1440 "when": [1441 "* ",1442 "Cuando "1443 ]1444 },1445 "et": {1446 "and": [1447 "* ",1448 "Ja "1449 ],1450 "background": [1451 "Taust"1452 ],1453 "but": [1454 "* ",1455 "Kuid "1456 ],1457 "examples": [1458 "Juhtumid"1459 ],1460 "feature": [1461 "Omadus"1462 ],1463 "given": [1464 "* ",1465 "Eeldades "1466 ],1467 "name": "Estonian",1468 "native": "eesti keel",1469 "scenario": [1470 "Stsenaarium"1471 ],1472 "scenarioOutline": [1473 "Raamstsenaarium"1474 ],1475 "then": [1476 "* ",1477 "Siis "1478 ],1479 "when": [1480 "* ",1481 "Kui "1482 ]1483 },1484 "fa": {1485 "and": [1486 "* ",1487 "و "1488 ],1489 "background": [1490 "زمینه"1491 ],1492 "but": [1493 "* ",1494 "اما "1495 ],1496 "examples": [1497 "نمونه ها"1498 ],1499 "feature": [1500 "وِیژگی"1501 ],1502 "given": [1503 "* ",1504 "با فرض "1505 ],1506 "name": "Persian",1507 "native": "فارسی",1508 "scenario": [1509 "سناریو"1510 ],1511 "scenarioOutline": [1512 "الگوی سناریو"1513 ],1514 "then": [1515 "* ",1516 "آنگاه "1517 ],1518 "when": [1519 "* ",1520 "هنگامی "1521 ]1522 },1523 "fi": {1524 "and": [1525 "* ",1526 "Ja "1527 ],1528 "background": [1529 "Tausta"1530 ],1531 "but": [1532 "* ",1533 "Mutta "1534 ],1535 "examples": [1536 "Tapaukset"1537 ],1538 "feature": [1539 "Ominaisuus"1540 ],1541 "given": [1542 "* ",1543 "Oletetaan "1544 ],1545 "name": "Finnish",1546 "native": "suomi",1547 "scenario": [1548 "Tapaus"1549 ],1550 "scenarioOutline": [1551 "Tapausaihio"1552 ],1553 "then": [1554 "* ",1555 "Niin "1556 ],1557 "when": [1558 "* ",1559 "Kun "1560 ]1561 },1562 "fr": {1563 "and": [1564 "* ",1565 "Et que ",1566 "Et qu'",1567 "Et "1568 ],1569 "background": [1570 "Contexte"1571 ],1572 "but": [1573 "* ",1574 "Mais que ",1575 "Mais qu'",1576 "Mais "1577 ],1578 "examples": [1579 "Exemples"1580 ],1581 "feature": [1582 "Fonctionnalité"1583 ],1584 "given": [1585 "* ",1586 "Soit ",1587 "Etant donné que ",1588 "Etant donné qu'",1589 "Etant donné ",1590 "Etant donnée ",1591 "Etant donnés ",1592 "Etant données ",1593 "Étant donné que ",1594 "Étant donné qu'",1595 "Étant donné ",1596 "Étant donnée ",1597 "Étant donnés ",1598 "Étant données "1599 ],1600 "name": "French",1601 "native": "français",1602 "scenario": [1603 "Scénario"1604 ],1605 "scenarioOutline": [1606 "Plan du scénario",1607 "Plan du Scénario"1608 ],1609 "then": [1610 "* ",1611 "Alors "1612 ],1613 "when": [1614 "* ",1615 "Quand ",1616 "Lorsque ",1617 "Lorsqu'"1618 ]1619 },1620 "ga": {1621 "and": [1622 "* ",1623 "Agus"1624 ],1625 "background": [1626 "Cúlra"1627 ],1628 "but": [1629 "* ",1630 "Ach"1631 ],1632 "examples": [1633 "Samplaí"1634 ],1635 "feature": [1636 "Gné"1637 ],1638 "given": [1639 "* ",1640 "Cuir i gcás go",1641 "Cuir i gcás nach",1642 "Cuir i gcás gur",1643 "Cuir i gcás nár"1644 ],1645 "name": "Irish",1646 "native": "Gaeilge",1647 "scenario": [1648 "Cás"1649 ],1650 "scenarioOutline": [1651 "Cás Achomair"1652 ],1653 "then": [1654 "* ",1655 "Ansin"1656 ],1657 "when": [1658 "* ",1659 "Nuair a",1660 "Nuair nach",1661 "Nuair ba",1662 "Nuair nár"1663 ]1664 },1665 "gj": {1666 "and": [1667 "* ",1668 "અને "1669 ],1670 "background": [1671 "બેકગ્રાઉન્ડ"1672 ],1673 "but": [1674 "* ",1675 "પણ "1676 ],1677 "examples": [1678 "ઉદાહરણો"1679 ],1680 "feature": [1681 "લક્ષણ",1682 "વ્યાપાર જરૂર",1683 "ક્ષમતા"1684 ],1685 "given": [1686 "* ",1687 "આપેલ છે "1688 ],1689 "name": "Gujarati",1690 "native": "ગુજરાતી",1691 "scenario": [1692 "સ્થિતિ"1693 ],1694 "scenarioOutline": [1695 "પરિદ્દશ્ય રૂપરેખા",1696 "પરિદ્દશ્ય ઢાંચો"1697 ],1698 "then": [1699 "* ",1700 "પછી "1701 ],1702 "when": [1703 "* ",1704 "ક્યારે "1705 ]1706 },1707 "gl": {1708 "and": [1709 "* ",1710 "E "1711 ],1712 "background": [1713 "Contexto"1714 ],1715 "but": [1716 "* ",1717 "Mais ",1718 "Pero "1719 ],1720 "examples": [1721 "Exemplos"1722 ],1723 "feature": [1724 "Característica"1725 ],1726 "given": [1727 "* ",1728 "Dado ",1729 "Dada ",1730 "Dados ",1731 "Dadas "1732 ],1733 "name": "Galician",1734 "native": "galego",1735 "scenario": [1736 "Escenario"1737 ],1738 "scenarioOutline": [1739 "Esbozo do escenario"1740 ],1741 "then": [1742 "* ",1743 "Entón ",1744 "Logo "1745 ],1746 "when": [1747 "* ",1748 "Cando "1749 ]1750 },1751 "he": {1752 "and": [1753 "* ",1754 "וגם "1755 ],1756 "background": [1757 "רקע"1758 ],1759 "but": [1760 "* ",1761 "אבל "1762 ],1763 "examples": [1764 "דוגמאות"1765 ],1766 "feature": [1767 "תכונה"1768 ],1769 "given": [1770 "* ",1771 "בהינתן "1772 ],1773 "name": "Hebrew",1774 "native": "עברית",1775 "scenario": [1776 "תרחיש"1777 ],1778 "scenarioOutline": [1779 "תבנית תרחיש"1780 ],1781 "then": [1782 "* ",1783 "אז ",1784 "אזי "1785 ],1786 "when": [1787 "* ",1788 "כאשר "1789 ]1790 },1791 "hi": {1792 "and": [1793 "* ",1794 "और ",1795 "तथा "1796 ],1797 "background": [1798 "पृष्ठभूमि"1799 ],1800 "but": [1801 "* ",1802 "पर ",1803 "परन्तु ",1804 "किन्तु "1805 ],1806 "examples": [1807 "उदाहरण"1808 ],1809 "feature": [1810 "रूप लेख"1811 ],1812 "given": [1813 "* ",1814 "अगर ",1815 "यदि ",1816 "चूंकि "1817 ],1818 "name": "Hindi",1819 "native": "हिंदी",1820 "scenario": [1821 "परिदृश्य"1822 ],1823 "scenarioOutline": [1824 "परिदृश्य रूपरेखा"1825 ],1826 "then": [1827 "* ",1828 "तब ",1829 "तदा "1830 ],1831 "when": [1832 "* ",1833 "जब ",1834 "कदा "1835 ]1836 },1837 "hr": {1838 "and": [1839 "* ",1840 "I "1841 ],1842 "background": [1843 "Pozadina"1844 ],1845 "but": [1846 "* ",1847 "Ali "1848 ],1849 "examples": [1850 "Primjeri",1851 "Scenariji"1852 ],1853 "feature": [1854 "Osobina",1855 "Mogućnost",1856 "Mogucnost"1857 ],1858 "given": [1859 "* ",1860 "Zadan ",1861 "Zadani ",1862 "Zadano "1863 ],1864 "name": "Croatian",1865 "native": "hrvatski",1866 "scenario": [1867 "Scenarij"1868 ],1869 "scenarioOutline": [1870 "Skica",1871 "Koncept"1872 ],1873 "then": [1874 "* ",1875 "Onda "1876 ],1877 "when": [1878 "* ",1879 "Kada ",1880 "Kad "1881 ]1882 },1883 "ht": {1884 "and": [1885 "* ",1886 "Ak ",1887 "Epi ",1888 "E "1889 ],1890 "background": [1891 "Kontèks",1892 "Istorik"1893 ],1894 "but": [1895 "* ",1896 "Men "1897 ],1898 "examples": [1899 "Egzanp"1900 ],1901 "feature": [1902 "Karakteristik",1903 "Mak",1904 "Fonksyonalite"1905 ],1906 "given": [1907 "* ",1908 "Sipoze ",1909 "Sipoze ke ",1910 "Sipoze Ke "1911 ],1912 "name": "Creole",1913 "native": "kreyòl",1914 "scenario": [1915 "Senaryo"1916 ],1917 "scenarioOutline": [1918 "Plan senaryo",1919 "Plan Senaryo",1920 "Senaryo deskripsyon",1921 "Senaryo Deskripsyon",1922 "Dyagram senaryo",1923 "Dyagram Senaryo"1924 ],1925 "then": [1926 "* ",1927 "Lè sa a ",1928 "Le sa a "1929 ],1930 "when": [1931 "* ",1932 "Lè ",1933 "Le "1934 ]1935 },1936 "hu": {1937 "and": [1938 "* ",1939 "És "1940 ],1941 "background": [1942 "Háttér"1943 ],1944 "but": [1945 "* ",1946 "De "1947 ],1948 "examples": [1949 "Példák"1950 ],1951 "feature": [1952 "Jellemző"1953 ],1954 "given": [1955 "* ",1956 "Amennyiben ",1957 "Adott "1958 ],1959 "name": "Hungarian",1960 "native": "magyar",1961 "scenario": [1962 "Forgatókönyv"1963 ],1964 "scenarioOutline": [1965 "Forgatókönyv vázlat"1966 ],1967 "then": [1968 "* ",1969 "Akkor "1970 ],1971 "when": [1972 "* ",1973 "Majd ",1974 "Ha ",1975 "Amikor "1976 ]1977 },1978 "id": {1979 "and": [1980 "* ",1981 "Dan "1982 ],1983 "background": [1984 "Dasar"1985 ],1986 "but": [1987 "* ",1988 "Tapi "1989 ],1990 "examples": [1991 "Contoh"1992 ],1993 "feature": [1994 "Fitur"1995 ],1996 "given": [1997 "* ",1998 "Dengan "1999 ],2000 "name": "Indonesian",2001 "native": "Bahasa Indonesia",2002 "scenario": [2003 "Skenario"2004 ],2005 "scenarioOutline": [2006 "Skenario konsep"2007 ],2008 "then": [2009 "* ",2010 "Maka "2011 ],2012 "when": [2013 "* ",2014 "Ketika "2015 ]2016 },2017 "is": {2018 "and": [2019 "* ",2020 "Og "2021 ],2022 "background": [2023 "Bakgrunnur"2024 ],2025 "but": [2026 "* ",2027 "En "2028 ],2029 "examples": [2030 "Dæmi",2031 "Atburðarásir"2032 ],2033 "feature": [2034 "Eiginleiki"2035 ],2036 "given": [2037 "* ",2038 "Ef "2039 ],2040 "name": "Icelandic",2041 "native": "Íslenska",2042 "scenario": [2043 "Atburðarás"2044 ],2045 "scenarioOutline": [2046 "Lýsing Atburðarásar",2047 "Lýsing Dæma"2048 ],2049 "then": [2050 "* ",2051 "Þá "2052 ],2053 "when": [2054 "* ",2055 "Þegar "2056 ]2057 },2058 "it": {2059 "and": [2060 "* ",2061 "E "2062 ],2063 "background": [2064 "Contesto"2065 ],2066 "but": [2067 "* ",2068 "Ma "2069 ],2070 "examples": [2071 "Esempi"2072 ],2073 "feature": [2074 "Funzionalità"2075 ],2076 "given": [2077 "* ",2078 "Dato ",2079 "Data ",2080 "Dati ",2081 "Date "2082 ],2083 "name": "Italian",2084 "native": "italiano",2085 "scenario": [2086 "Scenario"2087 ],2088 "scenarioOutline": [2089 "Schema dello scenario"2090 ],2091 "then": [2092 "* ",2093 "Allora "2094 ],2095 "when": [2096 "* ",2097 "Quando "2098 ]2099 },2100 "ja": {2101 "and": [2102 "* ",2103 "かつ"2104 ],2105 "background": [2106 "背景"2107 ],2108 "but": [2109 "* ",2110 "しかし",2111 "但し",2112 "ただし"2113 ],2114 "examples": [2115 "例",2116 "サンプル"2117 ],2118 "feature": [2119 "フィーチャ",2120 "機能"2121 ],2122 "given": [2123 "* ",2124 "前提"2125 ],2126 "name": "Japanese",2127 "native": "日本語",2128 "scenario": [2129 "シナリオ"2130 ],2131 "scenarioOutline": [2132 "シナリオアウトライン",2133 "シナリオテンプレート",2134 "テンプレ",2135 "シナリオテンプレ"2136 ],2137 "then": [2138 "* ",2139 "ならば"2140 ],2141 "when": [2142 "* ",2143 "もし"2144 ]2145 },2146 "jv": {2147 "and": [2148 "* ",2149 "Lan "2150 ],2151 "background": [2152 "Dasar"2153 ],2154 "but": [2155 "* ",2156 "Tapi ",2157 "Nanging ",2158 "Ananging "2159 ],2160 "examples": [2161 "Conto",2162 "Contone"2163 ],2164 "feature": [2165 "Fitur"2166 ],2167 "given": [2168 "* ",2169 "Nalika ",2170 "Nalikaning "2171 ],2172 "name": "Javanese",2173 "native": "Basa Jawa",2174 "scenario": [2175 "Skenario"2176 ],2177 "scenarioOutline": [2178 "Konsep skenario"2179 ],2180 "then": [2181 "* ",2182 "Njuk ",2183 "Banjur "2184 ],2185 "when": [2186 "* ",2187 "Manawa ",2188 "Menawa "2189 ]2190 },2191 "ka": {2192 "and": [2193 "* ",2194 "და"2195 ],2196 "background": [2197 "კონტექსტი"2198 ],2199 "but": [2200 "* ",2201 "მაგ­რამ"2202 ],2203 "examples": [2204 "მაგალითები"2205 ],2206 "feature": [2207 "თვისება"2208 ],2209 "given": [2210 "* ",2211 "მოცემული"2212 ],2213 "name": "Georgian",2214 "native": "ქართველი",2215 "scenario": [2216 "სცენარის"2217 ],2218 "scenarioOutline": [2219 "სცენარის ნიმუში"2220 ],2221 "then": [2222 "* ",2223 "მაშინ"2224 ],2225 "when": [2226 "* ",2227 "როდესაც"2228 ]2229 },2230 "kn": {2231 "and": [2232 "* ",2233 "ಮತ್ತು "2234 ],2235 "background": [2236 "ಹಿನ್ನೆಲೆ"2237 ],2238 "but": [2239 "* ",2240 "ಆದರೆ "2241 ],2242 "examples": [2243 "ಉದಾಹರಣೆಗಳು"2244 ],2245 "feature": [2246 "ಹೆಚ್ಚಳ"2247 ],2248 "given": [2249 "* ",2250 "ನೀಡಿದ "2251 ],2252 "name": "Kannada",2253 "native": "ಕನ್ನಡ",2254 "scenario": [2255 "ಕಥಾಸಾರಾಂಶ"2256 ],2257 "scenarioOutline": [2258 "ವಿವರಣೆ"2259 ],2260 "then": [2261 "* ",2262 "ನಂತರ "2263 ],2264 "when": [2265 "* ",2266 "ಸ್ಥಿತಿಯನ್ನು "2267 ]2268 },2269 "ko": {2270 "and": [2271 "* ",2272 "그리고"2273 ],2274 "background": [2275 "배경"2276 ],2277 "but": [2278 "* ",2279 "하지만",2280 "단"2281 ],2282 "examples": [2283 "예"2284 ],2285 "feature": [2286 "기능"2287 ],2288 "given": [2289 "* ",2290 "조건",2291 "먼저"2292 ],2293 "name": "Korean",2294 "native": "한국어",2295 "scenario": [2296 "시나리오"2297 ],2298 "scenarioOutline": [2299 "시나리오 개요"2300 ],2301 "then": [2302 "* ",2303 "그러면"2304 ],2305 "when": [2306 "* ",2307 "만일",2308 "만약"2309 ]2310 },2311 "lt": {2312 "and": [2313 "* ",2314 "Ir "2315 ],2316 "background": [2317 "Kontekstas"2318 ],2319 "but": [2320 "* ",2321 "Bet "2322 ],2323 "examples": [2324 "Pavyzdžiai",2325 "Scenarijai",2326 "Variantai"2327 ],2328 "feature": [2329 "Savybė"2330 ],2331 "given": [2332 "* ",2333 "Duota "2334 ],2335 "name": "Lithuanian",2336 "native": "lietuvių kalba",2337 "scenario": [2338 "Scenarijus"2339 ],2340 "scenarioOutline": [2341 "Scenarijaus šablonas"2342 ],2343 "then": [2344 "* ",2345 "Tada "2346 ],2347 "when": [2348 "* ",2349 "Kai "2350 ]2351 },2352 "lu": {2353 "and": [2354 "* ",2355 "an ",2356 "a "2357 ],2358 "background": [2359 "Hannergrond"2360 ],2361 "but": [2362 "* ",2363 "awer ",2364 "mä "2365 ],2366 "examples": [2367 "Beispiller"2368 ],2369 "feature": [2370 "Funktionalitéit"2371 ],2372 "given": [2373 "* ",2374 "ugeholl "2375 ],2376 "name": "Luxemburgish",2377 "native": "Lëtzebuergesch",2378 "scenario": [2379 "Szenario"2380 ],2381 "scenarioOutline": [2382 "Plang vum Szenario"2383 ],2384 "then": [2385 "* ",2386 "dann "2387 ],2388 "when": [2389 "* ",2390 "wann "2391 ]2392 },2393 "lv": {2394 "and": [2395 "* ",2396 "Un "2397 ],2398 "background": [2399 "Konteksts",2400 "Situācija"2401 ],2402 "but": [2403 "* ",2404 "Bet "2405 ],2406 "examples": [2407 "Piemēri",2408 "Paraugs"2409 ],2410 "feature": [2411 "Funkcionalitāte",2412 "Fīča"2413 ],2414 "given": [2415 "* ",2416 "Kad "2417 ],2418 "name": "Latvian",2419 "native": "latviešu",2420 "scenario": [2421 "Scenārijs"2422 ],2423 "scenarioOutline": [2424 "Scenārijs pēc parauga"2425 ],2426 "then": [2427 "* ",2428 "Tad "2429 ],2430 "when": [2431 "* ",2432 "Ja "2433 ]2434 },2435 "mk-Cyrl": {2436 "and": [2437 "* ",2438 "И "2439 ],2440 "background": [2441 "Контекст",2442 "Содржина"2443 ],2444 "but": [2445 "* ",2446 "Но "2447 ],2448 "examples": [2449 "Примери",2450 "Сценарија"2451 ],2452 "feature": [2453 "Функционалност",2454 "Бизнис потреба",2455 "Можност"2456 ],2457 "given": [2458 "* ",2459 "Дадено ",2460 "Дадена "2461 ],2462 "name": "Macedonian",2463 "native": "Македонски",2464 "scenario": [2465 "Сценарио",2466 "На пример"2467 ],2468 "scenarioOutline": [2469 "Преглед на сценарија",2470 "Скица",2471 "Концепт"2472 ],2473 "then": [2474 "* ",2475 "Тогаш "2476 ],2477 "when": [2478 "* ",2479 "Кога "2480 ]2481 },2482 "mk-Latn": {2483 "and": [2484 "* ",2485 "I "2486 ],2487 "background": [2488 "Kontekst",2489 "Sodrzhina"2490 ],2491 "but": [2492 "* ",2493 "No "2494 ],2495 "examples": [2496 "Primeri",2497 "Scenaria"2498 ],2499 "feature": [2500 "Funkcionalnost",2501 "Biznis potreba",2502 "Mozhnost"2503 ],2504 "given": [2505 "* ",2506 "Dadeno ",2507 "Dadena "2508 ],2509 "name": "Macedonian (Latin)",2510 "native": "Makedonski (Latinica)",2511 "scenario": [2512 "Scenario",2513 "Na primer"2514 ],2515 "scenarioOutline": [2516 "Pregled na scenarija",2517 "Skica",2518 "Koncept"2519 ],2520 "then": [2521 "* ",2522 "Togash "2523 ],2524 "when": [2525 "* ",2526 "Koga "2527 ]2528 },2529 "mn": {2530 "and": [2531 "* ",2532 "Мөн ",2533 "Тэгээд "2534 ],2535 "background": [2536 "Агуулга"2537 ],2538 "but": [2539 "* ",2540 "Гэхдээ ",2541 "Харин "2542 ],2543 "examples": [2544 "Тухайлбал"2545 ],2546 "feature": [2547 "Функц",2548 "Функционал"2549 ],2550 "given": [2551 "* ",2552 "Өгөгдсөн нь ",2553 "Анх "2554 ],2555 "name": "Mongolian",2556 "native": "монгол",2557 "scenario": [2558 "Сценар"2559 ],2560 "scenarioOutline": [2561 "Сценарын төлөвлөгөө"2562 ],2563 "then": [2564 "* ",2565 "Тэгэхэд ",2566 "Үүний дараа "2567 ],2568 "when": [2569 "* ",2570 "Хэрэв "2571 ]2572 },2573 "nl": {2574 "and": [2575 "* ",2576 "En "2577 ],2578 "background": [2579 "Achtergrond"2580 ],2581 "but": [2582 "* ",2583 "Maar "2584 ],2585 "examples": [2586 "Voorbeelden"2587 ],2588 "feature": [2589 "Functionaliteit"2590 ],2591 "given": [2592 "* ",2593 "Gegeven ",2594 "Stel "2595 ],2596 "name": "Dutch",2597 "native": "Nederlands",2598 "scenario": [2599 "Scenario"2600 ],2601 "scenarioOutline": [2602 "Abstract Scenario"2603 ],2604 "then": [2605 "* ",2606 "Dan "2607 ],2608 "when": [2609 "* ",2610 "Als ",2611 "Wanneer "2612 ]2613 },2614 "no": {2615 "and": [2616 "* ",2617 "Og "2618 ],2619 "background": [2620 "Bakgrunn"2621 ],2622 "but": [2623 "* ",2624 "Men "2625 ],2626 "examples": [2627 "Eksempler"2628 ],2629 "feature": [2630 "Egenskap"2631 ],2632 "given": [2633 "* ",2634 "Gitt "2635 ],2636 "name": "Norwegian",2637 "native": "norsk",2638 "scenario": [2639 "Scenario"2640 ],2641 "scenarioOutline": [2642 "Scenariomal",2643 "Abstrakt Scenario"2644 ],2645 "then": [2646 "* ",2647 "Så "2648 ],2649 "when": [2650 "* ",2651 "Når "2652 ]2653 },2654 "pa": {2655 "and": [2656 "* ",2657 "ਅਤੇ "2658 ],2659 "background": [2660 "ਪਿਛੋਕੜ"2661 ],2662 "but": [2663 "* ",2664 "ਪਰ "2665 ],2666 "examples": [2667 "ਉਦਾਹਰਨਾਂ"2668 ],2669 "feature": [2670 "ਖਾਸੀਅਤ",2671 "ਮੁਹਾਂਦਰਾ",2672 "ਨਕਸ਼ ਨੁਹਾਰ"2673 ],2674 "given": [2675 "* ",2676 "ਜੇਕਰ ",2677 "ਜਿਵੇਂ ਕਿ "2678 ],2679 "name": "Panjabi",2680 "native": "ਪੰਜਾਬੀ",2681 "scenario": [2682 "ਪਟਕਥਾ"2683 ],2684 "scenarioOutline": [2685 "ਪਟਕਥਾ ਢਾਂਚਾ",2686 "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ"2687 ],2688 "then": [2689 "* ",2690 "ਤਦ "2691 ],2692 "when": [2693 "* ",2694 "ਜਦੋਂ "2695 ]2696 },2697 "pl": {2698 "and": [2699 "* ",2700 "Oraz ",2701 "I "2702 ],2703 "background": [2704 "Założenia"2705 ],2706 "but": [2707 "* ",2708 "Ale "2709 ],2710 "examples": [2711 "Przykłady"2712 ],2713 "feature": [2714 "Właściwość",2715 "Funkcja",2716 "Aspekt",2717 "Potrzeba biznesowa"2718 ],2719 "given": [2720 "* ",2721 "Zakładając ",2722 "Mając ",2723 "Zakładając, że "2724 ],2725 "name": "Polish",2726 "native": "polski",2727 "scenario": [2728 "Scenariusz"2729 ],2730 "scenarioOutline": [2731 "Szablon scenariusza"2732 ],2733 "then": [2734 "* ",2735 "Wtedy "2736 ],2737 "when": [2738 "* ",2739 "Jeżeli ",2740 "Jeśli ",2741 "Gdy ",2742 "Kiedy "2743 ]2744 },2745 "pt": {2746 "and": [2747 "* ",2748 "E "2749 ],2750 "background": [2751 "Contexto",2752 "Cenário de Fundo",2753 "Cenario de Fundo",2754 "Fundo"2755 ],2756 "but": [2757 "* ",2758 "Mas "2759 ],2760 "examples": [2761 "Exemplos",2762 "Cenários",2763 "Cenarios"2764 ],2765 "feature": [2766 "Funcionalidade",2767 "Característica",2768 "Caracteristica"2769 ],2770 "given": [2771 "* ",2772 "Dado ",2773 "Dada ",2774 "Dados ",2775 "Dadas "2776 ],2777 "name": "Portuguese",2778 "native": "português",2779 "scenario": [2780 "Cenário",2781 "Cenario"2782 ],2783 "scenarioOutline": [2784 "Esquema do Cenário",2785 "Esquema do Cenario",2786 "Delineação do Cenário",2787 "Delineacao do Cenario"2788 ],2789 "then": [2790 "* ",2791 "Então ",2792 "Entao "2793 ],2794 "when": [2795 "* ",2796 "Quando "2797 ]2798 },2799 "ro": {2800 "and": [2801 "* ",2802 "Si ",2803 "Și ",2804 "Şi "2805 ],2806 "background": [2807 "Context"2808 ],2809 "but": [2810 "* ",2811 "Dar "2812 ],2813 "examples": [2814 "Exemple"2815 ],2816 "feature": [2817 "Functionalitate",2818 "Funcționalitate",2819 "Funcţionalitate"2820 ],2821 "given": [2822 "* ",2823 "Date fiind ",2824 "Dat fiind ",2825 "Dată fiind",2826 "Dati fiind ",2827 "Dați fiind ",2828 "Daţi fiind "2829 ],2830 "name": "Romanian",2831 "native": "română",2832 "scenario": [2833 "Scenariu"2834 ],2835 "scenarioOutline": [2836 "Structura scenariu",2837 "Structură scenariu"2838 ],2839 "then": [2840 "* ",2841 "Atunci "2842 ],2843 "when": [2844 "* ",2845 "Cand ",2846 "Când "2847 ]2848 },2849 "ru": {2850 "and": [2851 "* ",2852 "И ",2853 "К тому же ",2854 "Также "2855 ],2856 "background": [2857 "Предыстория",2858 "Контекст"2859 ],2860 "but": [2861 "* ",2862 "Но ",2863 "А ",2864 "Иначе "2865 ],2866 "examples": [2867 "Примеры"2868 ],2869 "feature": [2870 "Функция",2871 "Функциональность",2872 "Функционал",2873 "Свойство"2874 ],2875 "given": [2876 "* ",2877 "Допустим ",2878 "Дано ",2879 "Пусть "2880 ],2881 "name": "Russian",2882 "native": "русский",2883 "scenario": [2884 "Сценарий"2885 ],2886 "scenarioOutline": [2887 "Структура сценария"2888 ],2889 "then": [2890 "* ",2891 "То ",2892 "Затем ",2893 "Тогда "2894 ],2895 "when": [2896 "* ",2897 "Когда ",2898 "Если "2899 ]2900 },2901 "sk": {2902 "and": [2903 "* ",2904 "A ",2905 "A tiež ",2906 "A taktiež ",2907 "A zároveň "2908 ],2909 "background": [2910 "Pozadie"2911 ],2912 "but": [2913 "* ",2914 "Ale "2915 ],2916 "examples": [2917 "Príklady"2918 ],2919 "feature": [2920 "Požiadavka",2921 "Funkcia",2922 "Vlastnosť"2923 ],2924 "given": [2925 "* ",2926 "Pokiaľ ",2927 "Za predpokladu "2928 ],2929 "name": "Slovak",2930 "native": "Slovensky",2931 "scenario": [2932 "Scenár"2933 ],2934 "scenarioOutline": [2935 "Náčrt Scenáru",2936 "Náčrt Scenára",2937 "Osnova Scenára"2938 ],2939 "then": [2940 "* ",2941 "Tak ",2942 "Potom "2943 ],2944 "when": [2945 "* ",2946 "Keď ",2947 "Ak "2948 ]2949 },2950 "sl": {2951 "and": [2952 "In ",2953 "Ter "2954 ],2955 "background": [2956 "Kontekst",2957 "Osnova",2958 "Ozadje"2959 ],2960 "but": [2961 "Toda ",2962 "Ampak ",2963 "Vendar "2964 ],2965 "examples": [2966 "Primeri",2967 "Scenariji"2968 ],2969 "feature": [2970 "Funkcionalnost",2971 "Funkcija",2972 "Možnosti",2973 "Moznosti",2974 "Lastnost",2975 "Značilnost"2976 ],2977 "given": [2978 "Dano ",2979 "Podano ",2980 "Zaradi ",2981 "Privzeto "2982 ],2983 "name": "Slovenian",2984 "native": "Slovenski",2985 "scenario": [2986 "Scenarij",2987 "Primer"2988 ],2989 "scenarioOutline": [2990 "Struktura scenarija",2991 "Skica",2992 "Koncept",2993 "Oris scenarija",2994 "Osnutek"2995 ],2996 "then": [2997 "Nato ",2998 "Potem ",2999 "Takrat "3000 ],3001 "when": [3002 "Ko ",3003 "Ce ",3004 "Če ",3005 "Kadar "3006 ]3007 },3008 "sr-Cyrl": {3009 "and": [3010 "* ",3011 "И "3012 ],3013 "background": [3014 "Контекст",3015 "Основа",3016 "Позадина"3017 ],3018 "but": [3019 "* ",3020 "Али "3021 ],3022 "examples": [3023 "Примери",3024 "Сценарији"3025 ],3026 "feature": [3027 "Функционалност",3028 "Могућност",3029 "Особина"3030 ],3031 "given": [3032 "* ",3033 "За дато ",3034 "За дате ",3035 "За дати "3036 ],3037 "name": "Serbian",3038 "native": "Српски",3039 "scenario": [3040 "Сценарио",3041 "Пример"3042 ],3043 "scenarioOutline": [3044 "Структура сценарија",3045 "Скица",3046 "Концепт"3047 ],3048 "then": [3049 "* ",3050 "Онда "3051 ],3052 "when": [3053 "* ",3054 "Када ",3055 "Кад "3056 ]3057 },3058 "sr-Latn": {3059 "and": [3060 "* ",3061 "I "3062 ],3063 "background": [3064 "Kontekst",3065 "Osnova",3066 "Pozadina"3067 ],3068 "but": [3069 "* ",3070 "Ali "3071 ],3072 "examples": [3073 "Primeri",3074 "Scenariji"3075 ],3076 "feature": [3077 "Funkcionalnost",3078 "Mogućnost",3079 "Mogucnost",3080 "Osobina"3081 ],3082 "given": [3083 "* ",3084 "Za dato ",3085 "Za date ",3086 "Za dati "3087 ],3088 "name": "Serbian (Latin)",3089 "native": "Srpski (Latinica)",3090 "scenario": [3091 "Scenario",3092 "Primer"3093 ],3094 "scenarioOutline": [3095 "Struktura scenarija",3096 "Skica",3097 "Koncept"3098 ],3099 "then": [3100 "* ",3101 "Onda "3102 ],3103 "when": [3104 "* ",3105 "Kada ",3106 "Kad "3107 ]3108 },3109 "sv": {3110 "and": [3111 "* ",3112 "Och "3113 ],3114 "background": [3115 "Bakgrund"3116 ],3117 "but": [3118 "* ",3119 "Men "3120 ],3121 "examples": [3122 "Exempel"3123 ],3124 "feature": [3125 "Egenskap"3126 ],3127 "given": [3128 "* ",3129 "Givet "3130 ],3131 "name": "Swedish",3132 "native": "Svenska",3133 "scenario": [3134 "Scenario"3135 ],3136 "scenarioOutline": [3137 "Abstrakt Scenario",3138 "Scenariomall"3139 ],3140 "then": [3141 "* ",3142 "Så "3143 ],3144 "when": [3145 "* ",3146 "När "3147 ]3148 },3149 "ta": {3150 "and": [3151 "* ",3152 "மேலும் ",3153 "மற்றும் "3154 ],3155 "background": [3156 "பின்னணி"3157 ],3158 "but": [3159 "* ",3160 "ஆனால் "3161 ],3162 "examples": [3163 "எடுத்துக்காட்டுகள்",3164 "காட்சிகள்",3165 " நிலைமைகளில்"3166 ],3167 "feature": [3168 "அம்சம்",3169 "வணிக தேவை",3170 "திறன்"3171 ],3172 "given": [3173 "* ",3174 "கொடுக்கப்பட்ட "3175 ],3176 "name": "Tamil",3177 "native": "தமிழ்",3178 "scenario": [3179 "காட்சி"3180 ],3181 "scenarioOutline": [3182 "காட்சி சுருக்கம்",3183 "காட்சி வார்ப்புரு"3184 ],3185 "then": [3186 "* ",3187 "அப்பொழுது "3188 ],3189 "when": [3190 "* ",3191 "எப்போது "3192 ]3193 },3194 "th": {3195 "and": [3196 "* ",3197 "และ "3198 ],3199 "background": [3200 "แนวคิด"3201 ],3202 "but": [3203 "* ",3204 "แต่ "3205 ],3206 "examples": [3207 "ชุดของตัวอย่าง",3208 "ชุดของเหตุการณ์"3209 ],3210 "feature": [3211 "โครงหลัก",3212 "ความต้องการทางธุรกิจ",3213 "ความสามารถ"3214 ],3215 "given": [3216 "* ",3217 "กำหนดให้ "3218 ],3219 "name": "Thai",3220 "native": "ไทย",3221 "scenario": [3222 "เหตุการณ์"3223 ],3224 "scenarioOutline": [3225 "สรุปเหตุการณ์",3226 "โครงสร้างของเหตุการณ์"3227 ],3228 "then": [3229 "* ",3230 "ดังนั้น "3231 ],3232 "when": [3233 "* ",3234 "เมื่อ "3235 ]3236 },3237 "tl": {3238 "and": [3239 "* ",3240 "మరియు "3241 ],3242 "background": [3243 "నేపథ్యం"3244 ],3245 "but": [3246 "* ",3247 "కాని "3248 ],3249 "examples": [3250 "ఉదాహరణలు"3251 ],3252 "feature": [3253 "గుణము"3254 ],3255 "given": [3256 "* ",3257 "చెప్పబడినది "3258 ],3259 "name": "Telugu",3260 "native": "తెలుగు",3261 "scenario": [3262 "సన్నివేశం"3263 ],3264 "scenarioOutline": [3265 "కథనం"3266 ],3267 "then": [3268 "* ",3269 "అప్పుడు "3270 ],3271 "when": [3272 "* ",3273 "ఈ పరిస్థితిలో "3274 ]3275 },3276 "tlh": {3277 "and": [3278 "* ",3279 "'ej ",3280 "latlh "3281 ],3282 "background": [3283 "mo'"3284 ],3285 "but": [3286 "* ",3287 "'ach ",3288 "'a "3289 ],3290 "examples": [3291 "ghantoH",3292 "lutmey"3293 ],3294 "feature": [3295 "Qap",3296 "Qu'meH 'ut",3297 "perbogh",3298 "poQbogh malja'",3299 "laH"3300 ],3301 "given": [3302 "* ",3303 "ghu' noblu' ",3304 "DaH ghu' bejlu' "3305 ],3306 "name": "Klingon",3307 "native": "tlhIngan",3308 "scenario": [3309 "lut"3310 ],3311 "scenarioOutline": [3312 "lut chovnatlh"3313 ],3314 "then": [3315 "* ",3316 "vaj "3317 ],3318 "when": [3319 "* ",3320 "qaSDI' "3321 ]3322 },3323 "tr": {3324 "and": [3325 "* ",3326 "Ve "3327 ],3328 "background": [3329 "Geçmiş"3330 ],3331 "but": [3332 "* ",3333 "Fakat ",3334 "Ama "3335 ],3336 "examples": [3337 "Örnekler"3338 ],3339 "feature": [3340 "Özellik"3341 ],3342 "given": [3343 "* ",3344 "Diyelim ki "3345 ],3346 "name": "Turkish",3347 "native": "Türkçe",3348 "scenario": [3349 "Senaryo"3350 ],3351 "scenarioOutline": [3352 "Senaryo taslağı"3353 ],3354 "then": [3355 "* ",3356 "O zaman "3357 ],3358 "when": [3359 "* ",3360 "Eğer ki "3361 ]3362 },3363 "tt": {3364 "and": [3365 "* ",3366 "Һәм ",3367 "Вә "3368 ],3369 "background": [3370 "Кереш"3371 ],3372 "but": [3373 "* ",3374 "Ләкин ",3375 "Әмма "3376 ],3377 "examples": [3378 "Үрнәкләр",3379 "Мисаллар"3380 ],3381 "feature": [3382 "Мөмкинлек",3383 "Үзенчәлеклелек"3384 ],3385 "given": [3386 "* ",3387 "Әйтик "3388 ],3389 "name": "Tatar",3390 "native": "Татарча",3391 "scenario": [3392 "Сценарий"3393 ],3394 "scenarioOutline": [3395 "Сценарийның төзелеше"3396 ],3397 "then": [3398 "* ",3399 "Нәтиҗәдә "3400 ],3401 "when": [3402 "* ",3403 "Әгәр "3404 ]3405 },3406 "uk": {3407 "and": [3408 "* ",3409 "І ",3410 "А також ",3411 "Та "3412 ],3413 "background": [3414 "Передумова"3415 ],3416 "but": [3417 "* ",3418 "Але "3419 ],3420 "examples": [3421 "Приклади"3422 ],3423 "feature": [3424 "Функціонал"3425 ],3426 "given": [3427 "* ",3428 "Припустимо ",3429 "Припустимо, що ",3430 "Нехай ",3431 "Дано "3432 ],3433 "name": "Ukrainian",3434 "native": "Українська",3435 "scenario": [3436 "Сценарій"3437 ],3438 "scenarioOutline": [3439 "Структура сценарію"3440 ],3441 "then": [3442 "* ",3443 "То ",3444 "Тоді "3445 ],3446 "when": [3447 "* ",3448 "Якщо ",3449 "Коли "3450 ]3451 },3452 "ur": {3453 "and": [3454 "* ",3455 "اور "3456 ],3457 "background": [3458 "پس منظر"3459 ],3460 "but": [3461 "* ",3462 "لیکن "3463 ],3464 "examples": [3465 "مثالیں"3466 ],3467 "feature": [3468 "صلاحیت",3469 "کاروبار کی ضرورت",3470 "خصوصیت"3471 ],3472 "given": [3473 "* ",3474 "اگر ",3475 "بالفرض ",3476 "فرض کیا "3477 ],3478 "name": "Urdu",3479 "native": "اردو",3480 "scenario": [3481 "منظرنامہ"3482 ],3483 "scenarioOutline": [3484 "منظر نامے کا خاکہ"3485 ],3486 "then": [3487 "* ",3488 "پھر ",3489 "تب "3490 ],3491 "when": [3492 "* ",3493 "جب "3494 ]3495 },3496 "uz": {3497 "and": [3498 "* ",3499 "Ва "3500 ],3501 "background": [3502 "Тарих"3503 ],3504 "but": [3505 "* ",3506 "Лекин ",3507 "Бирок ",3508 "Аммо "3509 ],3510 "examples": [3511 "Мисоллар"3512 ],3513 "feature": [3514 "Функционал"3515 ],3516 "given": [3517 "* ",3518 "Агар "3519 ],3520 "name": "Uzbek",3521 "native": "Узбекча",3522 "scenario": [3523 "Сценарий"3524 ],3525 "scenarioOutline": [3526 "Сценарий структураси"3527 ],3528 "then": [3529 "* ",3530 "Унда "3531 ],3532 "when": [3533 "* ",3534 "Агар "3535 ]3536 },3537 "vi": {3538 "and": [3539 "* ",3540 "Và "3541 ],3542 "background": [3543 "Bối cảnh"3544 ],3545 "but": [3546 "* ",3547 "Nhưng "3548 ],3549 "examples": [3550 "Dữ liệu"3551 ],3552 "feature": [3553 "Tính năng"3554 ],3555 "given": [3556 "* ",3557 "Biết ",3558 "Cho "3559 ],3560 "name": "Vietnamese",3561 "native": "Tiếng Việt",3562 "scenario": [3563 "Tình huống",3564 "Kịch bản"3565 ],3566 "scenarioOutline": [3567 "Khung tình huống",3568 "Khung kịch bản"3569 ],3570 "then": [3571 "* ",3572 "Thì "3573 ],3574 "when": [3575 "* ",3576 "Khi "3577 ]3578 },3579 "zh-CN": {3580 "and": [3581 "* ",3582 "而且",3583 "并且",3584 "同时"3585 ],3586 "background": [3587 "背景"3588 ],3589 "but": [3590 "* ",3591 "但是"3592 ],3593 "examples": [3594 "例子"3595 ],3596 "feature": [3597 "功能"3598 ],3599 "given": [3600 "* ",3601 "假如",3602 "假设",3603 "假定"3604 ],3605 "name": "Chinese simplified",3606 "native": "简体中文",3607 "scenario": [3608 "场景",3609 "剧本"3610 ],3611 "scenarioOutline": [3612 "场景大纲",3613 "剧本大纲"3614 ],3615 "then": [3616 "* ",3617 "那么"3618 ],3619 "when": [3620 "* ",3621 "当"3622 ]3623 },3624 "zh-TW": {3625 "and": [3626 "* ",3627 "而且",3628 "並且",3629 "同時"3630 ],3631 "background": [3632 "背景"3633 ],3634 "but": [3635 "* ",3636 "但是"3637 ],3638 "examples": [3639 "例子"3640 ],3641 "feature": [3642 "功能"3643 ],3644 "given": [3645 "* ",3646 "假如",3647 "假設",3648 "假定"3649 ],3650 "name": "Chinese traditional",3651 "native": "繁體中文",3652 "scenario": [3653 "場景",3654 "劇本"3655 ],3656 "scenarioOutline": [3657 "場景大綱",3658 "劇本大綱"3659 ],3660 "then": [3661 "* ",3662 "那麼"3663 ],3664 "when": [3665 "* ",3666 "當"3667 ]3668 }3669}3670},{}],9:[function(require,module,exports){3671var countSymbols = require('./count_symbols')3672function GherkinLine(lineText, lineNumber) {3673 this.lineText = lineText;3674 this.lineNumber = lineNumber;3675 this.trimmedLineText = lineText.replace(/^\s+/g, ''); // ltrim3676 this.isEmpty = this.trimmedLineText.length == 0;3677 this.indent = countSymbols(lineText) - countSymbols(this.trimmedLineText);3678};3679GherkinLine.prototype.startsWith = function startsWith(prefix) {3680 return this.trimmedLineText.indexOf(prefix) == 0;3681};3682GherkinLine.prototype.startsWithTitleKeyword = function startsWithTitleKeyword(keyword) {3683 return this.startsWith(keyword+':'); // The C# impl is more complicated. Find out why.3684};3685GherkinLine.prototype.getLineText = function getLineText(indentToRemove) {3686 if (indentToRemove < 0 || indentToRemove > this.indent) {3687 return this.trimmedLineText;3688 } else {3689 return this.lineText.substring(indentToRemove);3690 }3691};3692GherkinLine.prototype.getRestTrimmed = function getRestTrimmed(length) {3693 return this.trimmedLineText.substring(length).trim();3694};3695GherkinLine.prototype.getTableCells = function getTableCells() {3696 var cells = [];3697 var col = 0;3698 var startCol = col + 1;3699 var cell = '';3700 var firstCell = true;3701 while (col < this.trimmedLineText.length) {3702 var chr = this.trimmedLineText[col];3703 col++;3704 if (chr == '|') {3705 if (firstCell) {3706 // First cell (content before the first |) is skipped3707 firstCell = false;3708 } else {3709 var cellIndent = cell.length - cell.replace(/^\s+/g, '').length;3710 var span = {column: this.indent + startCol + cellIndent, text: cell.trim()};3711 cells.push(span);3712 }3713 cell = '';3714 startCol = col + 1;3715 } else if (chr == '\\') {3716 chr = this.trimmedLineText[col];3717 col += 1;3718 if (chr == 'n') {3719 cell += '\n';3720 } else {3721 if (chr != '|' && chr != '\\') {3722 cell += '\\';3723 }3724 cell += chr;3725 }3726 } else {3727 cell += chr;3728 }3729 }3730 return cells;3731};3732GherkinLine.prototype.getTags = function getTags() {3733 var column = this.indent + 1;3734 var items = this.trimmedLineText.trim().split('@');3735 items.shift();3736 return items.map(function (item) {3737 var length = item.length;3738 var span = {column: column, text: '@' + item.trim()};3739 column += length + 1;3740 return span;3741 });3742};3743module.exports = GherkinLine;3744},{"./count_symbols":4}],10:[function(require,module,exports){3745// This file is generated. Do not edit! Edit gherkin-javascript.razor instead.3746var Errors = require('./errors');3747var AstBuilder = require('./ast_builder');3748var TokenScanner = require('./token_scanner');3749var TokenMatcher = require('./token_matcher');3750var RULE_TYPES = [3751 'None',3752 '_EOF', // #EOF3753 '_Empty', // #Empty3754 '_Comment', // #Comment3755 '_TagLine', // #TagLine3756 '_FeatureLine', // #FeatureLine3757 '_BackgroundLine', // #BackgroundLine3758 '_ScenarioLine', // #ScenarioLine3759 '_ScenarioOutlineLine', // #ScenarioOutlineLine3760 '_ExamplesLine', // #ExamplesLine3761 '_StepLine', // #StepLine3762 '_DocStringSeparator', // #DocStringSeparator3763 '_TableRow', // #TableRow3764 '_Language', // #Language3765 '_Other', // #Other3766 'GherkinDocument', // GherkinDocument! := Feature?3767 'Feature', // Feature! := Feature_Header Background? Scenario_Definition*3768 'Feature_Header', // Feature_Header! := #Language? Tags? #FeatureLine Description_Helper3769 'Background', // Background! := #BackgroundLine Description_Helper Step*3770 'Scenario_Definition', // Scenario_Definition! := Tags? (Scenario | ScenarioOutline)3771 'Scenario', // Scenario! := #ScenarioLine Description_Helper Step*3772 'ScenarioOutline', // ScenarioOutline! := #ScenarioOutlineLine Description_Helper Step* Examples_Definition*3773 'Examples_Definition', // Examples_Definition! [#Empty|#Comment|#TagLine-&gt;#ExamplesLine] := Tags? Examples3774 'Examples', // Examples! := #ExamplesLine Description_Helper Examples_Table?3775 'Examples_Table', // Examples_Table! := #TableRow #TableRow*3776 'Step', // Step! := #StepLine Step_Arg?3777 'Step_Arg', // Step_Arg := (DataTable | DocString)3778 'DataTable', // DataTable! := #TableRow+3779 'DocString', // DocString! := #DocStringSeparator #Other* #DocStringSeparator3780 'Tags', // Tags! := #TagLine+3781 'Description_Helper', // Description_Helper := #Empty* Description? #Comment*3782 'Description', // Description! := #Other+3783];3784module.exports = function Parser(builder) {3785 builder = builder || new AstBuilder();3786 var self = this;3787 var context;3788 this.parse = function(tokenScanner, tokenMatcher) {3789 if(typeof tokenScanner == 'string') {3790 tokenScanner = new TokenScanner(tokenScanner);3791 }3792 tokenMatcher = tokenMatcher || new TokenMatcher();3793 builder.reset();3794 tokenMatcher.reset();3795 context = {3796 tokenScanner: tokenScanner,3797 tokenMatcher: tokenMatcher,3798 tokenQueue: [],3799 errors: []3800 };3801 startRule(context, "GherkinDocument");3802 var state = 0;3803 var token = null;3804 while(true) {3805 token = readToken(context);3806 state = matchToken(state, token, context);3807 if(token.isEof) break;3808 }3809 endRule(context, "GherkinDocument");3810 if(context.errors.length > 0) {3811 throw Errors.CompositeParserException.create(context.errors);3812 }3813 return getResult();3814 };3815 function addError(context, error) {3816 context.errors.push(error);3817 if (context.errors.length > 10)3818 throw Errors.CompositeParserException.create(context.errors);3819 }3820 function startRule(context, ruleType) {3821 handleAstError(context, function () {3822 builder.startRule(ruleType);3823 });3824 }3825 function endRule(context, ruleType) {3826 handleAstError(context, function () {3827 builder.endRule(ruleType);3828 });3829 }3830 function build(context, token) {3831 handleAstError(context, function () {3832 builder.build(token);3833 });3834 }3835 function getResult() {3836 return builder.getResult();3837 }3838 function handleAstError(context, action) {3839 handleExternalError(context, true, action)3840 }3841 function handleExternalError(context, defaultValue, action) {3842 if(self.stopAtFirstError) return action();3843 try {3844 return action();3845 } catch (e) {3846 if(e instanceof Errors.CompositeParserException) {3847 e.errors.forEach(function (error) {3848 addError(context, error);3849 });3850 } else if(3851 e instanceof Errors.ParserException ||3852 e instanceof Errors.AstBuilderException ||3853 e instanceof Errors.UnexpectedTokenException ||3854 e instanceof Errors.NoSuchLanguageException3855 ) {3856 addError(context, e);3857 } else {3858 throw e;3859 }3860 }3861 return defaultValue;3862 }3863 function readToken(context) {3864 return context.tokenQueue.length > 0 ?3865 context.tokenQueue.shift() :3866 context.tokenScanner.read();3867 }3868 function matchToken(state, token, context) {3869 switch(state) {3870 case 0:3871 return matchTokenAt_0(token, context);3872 case 1:3873 return matchTokenAt_1(token, context);3874 case 2:3875 return matchTokenAt_2(token, context);3876 case 3:3877 return matchTokenAt_3(token, context);3878 case 4:3879 return matchTokenAt_4(token, context);3880 case 5:3881 return matchTokenAt_5(token, context);3882 case 6:3883 return matchTokenAt_6(token, context);3884 case 7:3885 return matchTokenAt_7(token, context);3886 case 8:3887 return matchTokenAt_8(token, context);3888 case 9:3889 return matchTokenAt_9(token, context);3890 case 10:3891 return matchTokenAt_10(token, context);3892 case 11:3893 return matchTokenAt_11(token, context);3894 case 12:3895 return matchTokenAt_12(token, context);3896 case 13:3897 return matchTokenAt_13(token, context);3898 case 14:3899 return matchTokenAt_14(token, context);3900 case 15:3901 return matchTokenAt_15(token, context);3902 case 16:3903 return matchTokenAt_16(token, context);3904 case 17:3905 return matchTokenAt_17(token, context);3906 case 18:3907 return matchTokenAt_18(token, context);3908 case 19:3909 return matchTokenAt_19(token, context);3910 case 20:3911 return matchTokenAt_20(token, context);3912 case 21:3913 return matchTokenAt_21(token, context);3914 case 22:3915 return matchTokenAt_22(token, context);3916 case 23:3917 return matchTokenAt_23(token, context);3918 case 24:3919 return matchTokenAt_24(token, context);3920 case 25:3921 return matchTokenAt_25(token, context);3922 case 26:3923 return matchTokenAt_26(token, context);3924 case 28:3925 return matchTokenAt_28(token, context);3926 case 29:3927 return matchTokenAt_29(token, context);3928 case 30:3929 return matchTokenAt_30(token, context);3930 case 31:3931 return matchTokenAt_31(token, context);3932 case 32:3933 return matchTokenAt_32(token, context);3934 case 33:3935 return matchTokenAt_33(token, context);3936 default:3937 throw new Error("Unknown state: " + state);3938 }3939 }3940 // Start3941 function matchTokenAt_0(token, context) {3942 if(match_EOF(context, token)) {3943 build(context, token);3944 return 27;3945 }3946 if(match_Language(context, token)) {3947 startRule(context, 'Feature');3948 startRule(context, 'Feature_Header');3949 build(context, token);3950 return 1;3951 }3952 if(match_TagLine(context, token)) {3953 startRule(context, 'Feature');3954 startRule(context, 'Feature_Header');3955 startRule(context, 'Tags');3956 build(context, token);3957 return 2;3958 }3959 if(match_FeatureLine(context, token)) {3960 startRule(context, 'Feature');3961 startRule(context, 'Feature_Header');3962 build(context, token);3963 return 3;3964 }3965 if(match_Comment(context, token)) {3966 build(context, token);3967 return 0;3968 }3969 if(match_Empty(context, token)) {3970 build(context, token);3971 return 0;3972 }3973 3974 var stateComment = "State: 0 - Start";3975 token.detach();3976 var expectedTokens = ["#EOF", "#Language", "#TagLine", "#FeatureLine", "#Comment", "#Empty"];3977 var error = token.isEof ?3978 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :3979 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);3980 if (self.stopAtFirstError) throw error;3981 addError(context, error);3982 return 0;3983 }3984 // GherkinDocument:0>Feature:0>Feature_Header:0>#Language:03985 function matchTokenAt_1(token, context) {3986 if(match_TagLine(context, token)) {3987 startRule(context, 'Tags');3988 build(context, token);3989 return 2;3990 }3991 if(match_FeatureLine(context, token)) {3992 build(context, token);3993 return 3;3994 }3995 if(match_Comment(context, token)) {3996 build(context, token);3997 return 1;3998 }3999 if(match_Empty(context, token)) {4000 build(context, token);4001 return 1;4002 }4003 4004 var stateComment = "State: 1 - GherkinDocument:0>Feature:0>Feature_Header:0>#Language:0";4005 token.detach();4006 var expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"];4007 var error = token.isEof ?4008 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4009 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4010 if (self.stopAtFirstError) throw error;4011 addError(context, error);4012 return 1;4013 }4014 // GherkinDocument:0>Feature:0>Feature_Header:1>Tags:0>#TagLine:04015 function matchTokenAt_2(token, context) {4016 if(match_TagLine(context, token)) {4017 build(context, token);4018 return 2;4019 }4020 if(match_FeatureLine(context, token)) {4021 endRule(context, 'Tags');4022 build(context, token);4023 return 3;4024 }4025 if(match_Comment(context, token)) {4026 build(context, token);4027 return 2;4028 }4029 if(match_Empty(context, token)) {4030 build(context, token);4031 return 2;4032 }4033 4034 var stateComment = "State: 2 - GherkinDocument:0>Feature:0>Feature_Header:1>Tags:0>#TagLine:0";4035 token.detach();4036 var expectedTokens = ["#TagLine", "#FeatureLine", "#Comment", "#Empty"];4037 var error = token.isEof ?4038 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4039 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4040 if (self.stopAtFirstError) throw error;4041 addError(context, error);4042 return 2;4043 }4044 // GherkinDocument:0>Feature:0>Feature_Header:2>#FeatureLine:04045 function matchTokenAt_3(token, context) {4046 if(match_EOF(context, token)) {4047 endRule(context, 'Feature_Header');4048 endRule(context, 'Feature');4049 build(context, token);4050 return 27;4051 }4052 if(match_Empty(context, token)) {4053 build(context, token);4054 return 3;4055 }4056 if(match_Comment(context, token)) {4057 build(context, token);4058 return 5;4059 }4060 if(match_BackgroundLine(context, token)) {4061 endRule(context, 'Feature_Header');4062 startRule(context, 'Background');4063 build(context, token);4064 return 6;4065 }4066 if(match_TagLine(context, token)) {4067 endRule(context, 'Feature_Header');4068 startRule(context, 'Scenario_Definition');4069 startRule(context, 'Tags');4070 build(context, token);4071 return 11;4072 }4073 if(match_ScenarioLine(context, token)) {4074 endRule(context, 'Feature_Header');4075 startRule(context, 'Scenario_Definition');4076 startRule(context, 'Scenario');4077 build(context, token);4078 return 12;4079 }4080 if(match_ScenarioOutlineLine(context, token)) {4081 endRule(context, 'Feature_Header');4082 startRule(context, 'Scenario_Definition');4083 startRule(context, 'ScenarioOutline');4084 build(context, token);4085 return 17;4086 }4087 if(match_Other(context, token)) {4088 startRule(context, 'Description');4089 build(context, token);4090 return 4;4091 }4092 4093 var stateComment = "State: 3 - GherkinDocument:0>Feature:0>Feature_Header:2>#FeatureLine:0";4094 token.detach();4095 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4096 var error = token.isEof ?4097 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4098 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4099 if (self.stopAtFirstError) throw error;4100 addError(context, error);4101 return 3;4102 }4103 // GherkinDocument:0>Feature:0>Feature_Header:3>Description_Helper:1>Description:0>#Other:04104 function matchTokenAt_4(token, context) {4105 if(match_EOF(context, token)) {4106 endRule(context, 'Description');4107 endRule(context, 'Feature_Header');4108 endRule(context, 'Feature');4109 build(context, token);4110 return 27;4111 }4112 if(match_Comment(context, token)) {4113 endRule(context, 'Description');4114 build(context, token);4115 return 5;4116 }4117 if(match_BackgroundLine(context, token)) {4118 endRule(context, 'Description');4119 endRule(context, 'Feature_Header');4120 startRule(context, 'Background');4121 build(context, token);4122 return 6;4123 }4124 if(match_TagLine(context, token)) {4125 endRule(context, 'Description');4126 endRule(context, 'Feature_Header');4127 startRule(context, 'Scenario_Definition');4128 startRule(context, 'Tags');4129 build(context, token);4130 return 11;4131 }4132 if(match_ScenarioLine(context, token)) {4133 endRule(context, 'Description');4134 endRule(context, 'Feature_Header');4135 startRule(context, 'Scenario_Definition');4136 startRule(context, 'Scenario');4137 build(context, token);4138 return 12;4139 }4140 if(match_ScenarioOutlineLine(context, token)) {4141 endRule(context, 'Description');4142 endRule(context, 'Feature_Header');4143 startRule(context, 'Scenario_Definition');4144 startRule(context, 'ScenarioOutline');4145 build(context, token);4146 return 17;4147 }4148 if(match_Other(context, token)) {4149 build(context, token);4150 return 4;4151 }4152 4153 var stateComment = "State: 4 - GherkinDocument:0>Feature:0>Feature_Header:3>Description_Helper:1>Description:0>#Other:0";4154 token.detach();4155 var expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4156 var error = token.isEof ?4157 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4158 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4159 if (self.stopAtFirstError) throw error;4160 addError(context, error);4161 return 4;4162 }4163 // GherkinDocument:0>Feature:0>Feature_Header:3>Description_Helper:2>#Comment:04164 function matchTokenAt_5(token, context) {4165 if(match_EOF(context, token)) {4166 endRule(context, 'Feature_Header');4167 endRule(context, 'Feature');4168 build(context, token);4169 return 27;4170 }4171 if(match_Comment(context, token)) {4172 build(context, token);4173 return 5;4174 }4175 if(match_BackgroundLine(context, token)) {4176 endRule(context, 'Feature_Header');4177 startRule(context, 'Background');4178 build(context, token);4179 return 6;4180 }4181 if(match_TagLine(context, token)) {4182 endRule(context, 'Feature_Header');4183 startRule(context, 'Scenario_Definition');4184 startRule(context, 'Tags');4185 build(context, token);4186 return 11;4187 }4188 if(match_ScenarioLine(context, token)) {4189 endRule(context, 'Feature_Header');4190 startRule(context, 'Scenario_Definition');4191 startRule(context, 'Scenario');4192 build(context, token);4193 return 12;4194 }4195 if(match_ScenarioOutlineLine(context, token)) {4196 endRule(context, 'Feature_Header');4197 startRule(context, 'Scenario_Definition');4198 startRule(context, 'ScenarioOutline');4199 build(context, token);4200 return 17;4201 }4202 if(match_Empty(context, token)) {4203 build(context, token);4204 return 5;4205 }4206 4207 var stateComment = "State: 5 - GherkinDocument:0>Feature:0>Feature_Header:3>Description_Helper:2>#Comment:0";4208 token.detach();4209 var expectedTokens = ["#EOF", "#Comment", "#BackgroundLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Empty"];4210 var error = token.isEof ?4211 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4212 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4213 if (self.stopAtFirstError) throw error;4214 addError(context, error);4215 return 5;4216 }4217 // GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:04218 function matchTokenAt_6(token, context) {4219 if(match_EOF(context, token)) {4220 endRule(context, 'Background');4221 endRule(context, 'Feature');4222 build(context, token);4223 return 27;4224 }4225 if(match_Empty(context, token)) {4226 build(context, token);4227 return 6;4228 }4229 if(match_Comment(context, token)) {4230 build(context, token);4231 return 8;4232 }4233 if(match_StepLine(context, token)) {4234 startRule(context, 'Step');4235 build(context, token);4236 return 9;4237 }4238 if(match_TagLine(context, token)) {4239 endRule(context, 'Background');4240 startRule(context, 'Scenario_Definition');4241 startRule(context, 'Tags');4242 build(context, token);4243 return 11;4244 }4245 if(match_ScenarioLine(context, token)) {4246 endRule(context, 'Background');4247 startRule(context, 'Scenario_Definition');4248 startRule(context, 'Scenario');4249 build(context, token);4250 return 12;4251 }4252 if(match_ScenarioOutlineLine(context, token)) {4253 endRule(context, 'Background');4254 startRule(context, 'Scenario_Definition');4255 startRule(context, 'ScenarioOutline');4256 build(context, token);4257 return 17;4258 }4259 if(match_Other(context, token)) {4260 startRule(context, 'Description');4261 build(context, token);4262 return 7;4263 }4264 4265 var stateComment = "State: 6 - GherkinDocument:0>Feature:1>Background:0>#BackgroundLine:0";4266 token.detach();4267 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4268 var error = token.isEof ?4269 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4270 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4271 if (self.stopAtFirstError) throw error;4272 addError(context, error);4273 return 6;4274 }4275 // GherkinDocument:0>Feature:1>Background:1>Description_Helper:1>Description:0>#Other:04276 function matchTokenAt_7(token, context) {4277 if(match_EOF(context, token)) {4278 endRule(context, 'Description');4279 endRule(context, 'Background');4280 endRule(context, 'Feature');4281 build(context, token);4282 return 27;4283 }4284 if(match_Comment(context, token)) {4285 endRule(context, 'Description');4286 build(context, token);4287 return 8;4288 }4289 if(match_StepLine(context, token)) {4290 endRule(context, 'Description');4291 startRule(context, 'Step');4292 build(context, token);4293 return 9;4294 }4295 if(match_TagLine(context, token)) {4296 endRule(context, 'Description');4297 endRule(context, 'Background');4298 startRule(context, 'Scenario_Definition');4299 startRule(context, 'Tags');4300 build(context, token);4301 return 11;4302 }4303 if(match_ScenarioLine(context, token)) {4304 endRule(context, 'Description');4305 endRule(context, 'Background');4306 startRule(context, 'Scenario_Definition');4307 startRule(context, 'Scenario');4308 build(context, token);4309 return 12;4310 }4311 if(match_ScenarioOutlineLine(context, token)) {4312 endRule(context, 'Description');4313 endRule(context, 'Background');4314 startRule(context, 'Scenario_Definition');4315 startRule(context, 'ScenarioOutline');4316 build(context, token);4317 return 17;4318 }4319 if(match_Other(context, token)) {4320 build(context, token);4321 return 7;4322 }4323 4324 var stateComment = "State: 7 - GherkinDocument:0>Feature:1>Background:1>Description_Helper:1>Description:0>#Other:0";4325 token.detach();4326 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4327 var error = token.isEof ?4328 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4329 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4330 if (self.stopAtFirstError) throw error;4331 addError(context, error);4332 return 7;4333 }4334 // GherkinDocument:0>Feature:1>Background:1>Description_Helper:2>#Comment:04335 function matchTokenAt_8(token, context) {4336 if(match_EOF(context, token)) {4337 endRule(context, 'Background');4338 endRule(context, 'Feature');4339 build(context, token);4340 return 27;4341 }4342 if(match_Comment(context, token)) {4343 build(context, token);4344 return 8;4345 }4346 if(match_StepLine(context, token)) {4347 startRule(context, 'Step');4348 build(context, token);4349 return 9;4350 }4351 if(match_TagLine(context, token)) {4352 endRule(context, 'Background');4353 startRule(context, 'Scenario_Definition');4354 startRule(context, 'Tags');4355 build(context, token);4356 return 11;4357 }4358 if(match_ScenarioLine(context, token)) {4359 endRule(context, 'Background');4360 startRule(context, 'Scenario_Definition');4361 startRule(context, 'Scenario');4362 build(context, token);4363 return 12;4364 }4365 if(match_ScenarioOutlineLine(context, token)) {4366 endRule(context, 'Background');4367 startRule(context, 'Scenario_Definition');4368 startRule(context, 'ScenarioOutline');4369 build(context, token);4370 return 17;4371 }4372 if(match_Empty(context, token)) {4373 build(context, token);4374 return 8;4375 }4376 4377 var stateComment = "State: 8 - GherkinDocument:0>Feature:1>Background:1>Description_Helper:2>#Comment:0";4378 token.detach();4379 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Empty"];4380 var error = token.isEof ?4381 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4382 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4383 if (self.stopAtFirstError) throw error;4384 addError(context, error);4385 return 8;4386 }4387 // GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:04388 function matchTokenAt_9(token, context) {4389 if(match_EOF(context, token)) {4390 endRule(context, 'Step');4391 endRule(context, 'Background');4392 endRule(context, 'Feature');4393 build(context, token);4394 return 27;4395 }4396 if(match_TableRow(context, token)) {4397 startRule(context, 'DataTable');4398 build(context, token);4399 return 10;4400 }4401 if(match_DocStringSeparator(context, token)) {4402 startRule(context, 'DocString');4403 build(context, token);4404 return 32;4405 }4406 if(match_StepLine(context, token)) {4407 endRule(context, 'Step');4408 startRule(context, 'Step');4409 build(context, token);4410 return 9;4411 }4412 if(match_TagLine(context, token)) {4413 endRule(context, 'Step');4414 endRule(context, 'Background');4415 startRule(context, 'Scenario_Definition');4416 startRule(context, 'Tags');4417 build(context, token);4418 return 11;4419 }4420 if(match_ScenarioLine(context, token)) {4421 endRule(context, 'Step');4422 endRule(context, 'Background');4423 startRule(context, 'Scenario_Definition');4424 startRule(context, 'Scenario');4425 build(context, token);4426 return 12;4427 }4428 if(match_ScenarioOutlineLine(context, token)) {4429 endRule(context, 'Step');4430 endRule(context, 'Background');4431 startRule(context, 'Scenario_Definition');4432 startRule(context, 'ScenarioOutline');4433 build(context, token);4434 return 17;4435 }4436 if(match_Comment(context, token)) {4437 build(context, token);4438 return 9;4439 }4440 if(match_Empty(context, token)) {4441 build(context, token);4442 return 9;4443 }4444 4445 var stateComment = "State: 9 - GherkinDocument:0>Feature:1>Background:2>Step:0>#StepLine:0";4446 token.detach();4447 var expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];4448 var error = token.isEof ?4449 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4450 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4451 if (self.stopAtFirstError) throw error;4452 addError(context, error);4453 return 9;4454 }4455 // GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:04456 function matchTokenAt_10(token, context) {4457 if(match_EOF(context, token)) {4458 endRule(context, 'DataTable');4459 endRule(context, 'Step');4460 endRule(context, 'Background');4461 endRule(context, 'Feature');4462 build(context, token);4463 return 27;4464 }4465 if(match_TableRow(context, token)) {4466 build(context, token);4467 return 10;4468 }4469 if(match_StepLine(context, token)) {4470 endRule(context, 'DataTable');4471 endRule(context, 'Step');4472 startRule(context, 'Step');4473 build(context, token);4474 return 9;4475 }4476 if(match_TagLine(context, token)) {4477 endRule(context, 'DataTable');4478 endRule(context, 'Step');4479 endRule(context, 'Background');4480 startRule(context, 'Scenario_Definition');4481 startRule(context, 'Tags');4482 build(context, token);4483 return 11;4484 }4485 if(match_ScenarioLine(context, token)) {4486 endRule(context, 'DataTable');4487 endRule(context, 'Step');4488 endRule(context, 'Background');4489 startRule(context, 'Scenario_Definition');4490 startRule(context, 'Scenario');4491 build(context, token);4492 return 12;4493 }4494 if(match_ScenarioOutlineLine(context, token)) {4495 endRule(context, 'DataTable');4496 endRule(context, 'Step');4497 endRule(context, 'Background');4498 startRule(context, 'Scenario_Definition');4499 startRule(context, 'ScenarioOutline');4500 build(context, token);4501 return 17;4502 }4503 if(match_Comment(context, token)) {4504 build(context, token);4505 return 10;4506 }4507 if(match_Empty(context, token)) {4508 build(context, token);4509 return 10;4510 }4511 4512 var stateComment = "State: 10 - GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";4513 token.detach();4514 var expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];4515 var error = token.isEof ?4516 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4517 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4518 if (self.stopAtFirstError) throw error;4519 addError(context, error);4520 return 10;4521 }4522 // GherkinDocument:0>Feature:2>Scenario_Definition:0>Tags:0>#TagLine:04523 function matchTokenAt_11(token, context) {4524 if(match_TagLine(context, token)) {4525 build(context, token);4526 return 11;4527 }4528 if(match_ScenarioLine(context, token)) {4529 endRule(context, 'Tags');4530 startRule(context, 'Scenario');4531 build(context, token);4532 return 12;4533 }4534 if(match_ScenarioOutlineLine(context, token)) {4535 endRule(context, 'Tags');4536 startRule(context, 'ScenarioOutline');4537 build(context, token);4538 return 17;4539 }4540 if(match_Comment(context, token)) {4541 build(context, token);4542 return 11;4543 }4544 if(match_Empty(context, token)) {4545 build(context, token);4546 return 11;4547 }4548 4549 var stateComment = "State: 11 - GherkinDocument:0>Feature:2>Scenario_Definition:0>Tags:0>#TagLine:0";4550 token.detach();4551 var expectedTokens = ["#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];4552 var error = token.isEof ?4553 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4554 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4555 if (self.stopAtFirstError) throw error;4556 addError(context, error);4557 return 11;4558 }4559 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:0>#ScenarioLine:04560 function matchTokenAt_12(token, context) {4561 if(match_EOF(context, token)) {4562 endRule(context, 'Scenario');4563 endRule(context, 'Scenario_Definition');4564 endRule(context, 'Feature');4565 build(context, token);4566 return 27;4567 }4568 if(match_Empty(context, token)) {4569 build(context, token);4570 return 12;4571 }4572 if(match_Comment(context, token)) {4573 build(context, token);4574 return 14;4575 }4576 if(match_StepLine(context, token)) {4577 startRule(context, 'Step');4578 build(context, token);4579 return 15;4580 }4581 if(match_TagLine(context, token)) {4582 endRule(context, 'Scenario');4583 endRule(context, 'Scenario_Definition');4584 startRule(context, 'Scenario_Definition');4585 startRule(context, 'Tags');4586 build(context, token);4587 return 11;4588 }4589 if(match_ScenarioLine(context, token)) {4590 endRule(context, 'Scenario');4591 endRule(context, 'Scenario_Definition');4592 startRule(context, 'Scenario_Definition');4593 startRule(context, 'Scenario');4594 build(context, token);4595 return 12;4596 }4597 if(match_ScenarioOutlineLine(context, token)) {4598 endRule(context, 'Scenario');4599 endRule(context, 'Scenario_Definition');4600 startRule(context, 'Scenario_Definition');4601 startRule(context, 'ScenarioOutline');4602 build(context, token);4603 return 17;4604 }4605 if(match_Other(context, token)) {4606 startRule(context, 'Description');4607 build(context, token);4608 return 13;4609 }4610 4611 var stateComment = "State: 12 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:0>#ScenarioLine:0";4612 token.detach();4613 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4614 var error = token.isEof ?4615 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4616 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4617 if (self.stopAtFirstError) throw error;4618 addError(context, error);4619 return 12;4620 }4621 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Description_Helper:1>Description:0>#Other:04622 function matchTokenAt_13(token, context) {4623 if(match_EOF(context, token)) {4624 endRule(context, 'Description');4625 endRule(context, 'Scenario');4626 endRule(context, 'Scenario_Definition');4627 endRule(context, 'Feature');4628 build(context, token);4629 return 27;4630 }4631 if(match_Comment(context, token)) {4632 endRule(context, 'Description');4633 build(context, token);4634 return 14;4635 }4636 if(match_StepLine(context, token)) {4637 endRule(context, 'Description');4638 startRule(context, 'Step');4639 build(context, token);4640 return 15;4641 }4642 if(match_TagLine(context, token)) {4643 endRule(context, 'Description');4644 endRule(context, 'Scenario');4645 endRule(context, 'Scenario_Definition');4646 startRule(context, 'Scenario_Definition');4647 startRule(context, 'Tags');4648 build(context, token);4649 return 11;4650 }4651 if(match_ScenarioLine(context, token)) {4652 endRule(context, 'Description');4653 endRule(context, 'Scenario');4654 endRule(context, 'Scenario_Definition');4655 startRule(context, 'Scenario_Definition');4656 startRule(context, 'Scenario');4657 build(context, token);4658 return 12;4659 }4660 if(match_ScenarioOutlineLine(context, token)) {4661 endRule(context, 'Description');4662 endRule(context, 'Scenario');4663 endRule(context, 'Scenario_Definition');4664 startRule(context, 'Scenario_Definition');4665 startRule(context, 'ScenarioOutline');4666 build(context, token);4667 return 17;4668 }4669 if(match_Other(context, token)) {4670 build(context, token);4671 return 13;4672 }4673 4674 var stateComment = "State: 13 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Description_Helper:1>Description:0>#Other:0";4675 token.detach();4676 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4677 var error = token.isEof ?4678 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4679 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4680 if (self.stopAtFirstError) throw error;4681 addError(context, error);4682 return 13;4683 }4684 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Description_Helper:2>#Comment:04685 function matchTokenAt_14(token, context) {4686 if(match_EOF(context, token)) {4687 endRule(context, 'Scenario');4688 endRule(context, 'Scenario_Definition');4689 endRule(context, 'Feature');4690 build(context, token);4691 return 27;4692 }4693 if(match_Comment(context, token)) {4694 build(context, token);4695 return 14;4696 }4697 if(match_StepLine(context, token)) {4698 startRule(context, 'Step');4699 build(context, token);4700 return 15;4701 }4702 if(match_TagLine(context, token)) {4703 endRule(context, 'Scenario');4704 endRule(context, 'Scenario_Definition');4705 startRule(context, 'Scenario_Definition');4706 startRule(context, 'Tags');4707 build(context, token);4708 return 11;4709 }4710 if(match_ScenarioLine(context, token)) {4711 endRule(context, 'Scenario');4712 endRule(context, 'Scenario_Definition');4713 startRule(context, 'Scenario_Definition');4714 startRule(context, 'Scenario');4715 build(context, token);4716 return 12;4717 }4718 if(match_ScenarioOutlineLine(context, token)) {4719 endRule(context, 'Scenario');4720 endRule(context, 'Scenario_Definition');4721 startRule(context, 'Scenario_Definition');4722 startRule(context, 'ScenarioOutline');4723 build(context, token);4724 return 17;4725 }4726 if(match_Empty(context, token)) {4727 build(context, token);4728 return 14;4729 }4730 4731 var stateComment = "State: 14 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:1>Description_Helper:2>#Comment:0";4732 token.detach();4733 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Empty"];4734 var error = token.isEof ?4735 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4736 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4737 if (self.stopAtFirstError) throw error;4738 addError(context, error);4739 return 14;4740 }4741 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:0>#StepLine:04742 function matchTokenAt_15(token, context) {4743 if(match_EOF(context, token)) {4744 endRule(context, 'Step');4745 endRule(context, 'Scenario');4746 endRule(context, 'Scenario_Definition');4747 endRule(context, 'Feature');4748 build(context, token);4749 return 27;4750 }4751 if(match_TableRow(context, token)) {4752 startRule(context, 'DataTable');4753 build(context, token);4754 return 16;4755 }4756 if(match_DocStringSeparator(context, token)) {4757 startRule(context, 'DocString');4758 build(context, token);4759 return 30;4760 }4761 if(match_StepLine(context, token)) {4762 endRule(context, 'Step');4763 startRule(context, 'Step');4764 build(context, token);4765 return 15;4766 }4767 if(match_TagLine(context, token)) {4768 endRule(context, 'Step');4769 endRule(context, 'Scenario');4770 endRule(context, 'Scenario_Definition');4771 startRule(context, 'Scenario_Definition');4772 startRule(context, 'Tags');4773 build(context, token);4774 return 11;4775 }4776 if(match_ScenarioLine(context, token)) {4777 endRule(context, 'Step');4778 endRule(context, 'Scenario');4779 endRule(context, 'Scenario_Definition');4780 startRule(context, 'Scenario_Definition');4781 startRule(context, 'Scenario');4782 build(context, token);4783 return 12;4784 }4785 if(match_ScenarioOutlineLine(context, token)) {4786 endRule(context, 'Step');4787 endRule(context, 'Scenario');4788 endRule(context, 'Scenario_Definition');4789 startRule(context, 'Scenario_Definition');4790 startRule(context, 'ScenarioOutline');4791 build(context, token);4792 return 17;4793 }4794 if(match_Comment(context, token)) {4795 build(context, token);4796 return 15;4797 }4798 if(match_Empty(context, token)) {4799 build(context, token);4800 return 15;4801 }4802 4803 var stateComment = "State: 15 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:0>#StepLine:0";4804 token.detach();4805 var expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];4806 var error = token.isEof ?4807 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4808 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4809 if (self.stopAtFirstError) throw error;4810 addError(context, error);4811 return 15;4812 }4813 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:04814 function matchTokenAt_16(token, context) {4815 if(match_EOF(context, token)) {4816 endRule(context, 'DataTable');4817 endRule(context, 'Step');4818 endRule(context, 'Scenario');4819 endRule(context, 'Scenario_Definition');4820 endRule(context, 'Feature');4821 build(context, token);4822 return 27;4823 }4824 if(match_TableRow(context, token)) {4825 build(context, token);4826 return 16;4827 }4828 if(match_StepLine(context, token)) {4829 endRule(context, 'DataTable');4830 endRule(context, 'Step');4831 startRule(context, 'Step');4832 build(context, token);4833 return 15;4834 }4835 if(match_TagLine(context, token)) {4836 endRule(context, 'DataTable');4837 endRule(context, 'Step');4838 endRule(context, 'Scenario');4839 endRule(context, 'Scenario_Definition');4840 startRule(context, 'Scenario_Definition');4841 startRule(context, 'Tags');4842 build(context, token);4843 return 11;4844 }4845 if(match_ScenarioLine(context, token)) {4846 endRule(context, 'DataTable');4847 endRule(context, 'Step');4848 endRule(context, 'Scenario');4849 endRule(context, 'Scenario_Definition');4850 startRule(context, 'Scenario_Definition');4851 startRule(context, 'Scenario');4852 build(context, token);4853 return 12;4854 }4855 if(match_ScenarioOutlineLine(context, token)) {4856 endRule(context, 'DataTable');4857 endRule(context, 'Step');4858 endRule(context, 'Scenario');4859 endRule(context, 'Scenario_Definition');4860 startRule(context, 'Scenario_Definition');4861 startRule(context, 'ScenarioOutline');4862 build(context, token);4863 return 17;4864 }4865 if(match_Comment(context, token)) {4866 build(context, token);4867 return 16;4868 }4869 if(match_Empty(context, token)) {4870 build(context, token);4871 return 16;4872 }4873 4874 var stateComment = "State: 16 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";4875 token.detach();4876 var expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];4877 var error = token.isEof ?4878 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4879 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4880 if (self.stopAtFirstError) throw error;4881 addError(context, error);4882 return 16;4883 }4884 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:0>#ScenarioOutlineLine:04885 function matchTokenAt_17(token, context) {4886 if(match_EOF(context, token)) {4887 endRule(context, 'ScenarioOutline');4888 endRule(context, 'Scenario_Definition');4889 endRule(context, 'Feature');4890 build(context, token);4891 return 27;4892 }4893 if(match_Empty(context, token)) {4894 build(context, token);4895 return 17;4896 }4897 if(match_Comment(context, token)) {4898 build(context, token);4899 return 19;4900 }4901 if(match_StepLine(context, token)) {4902 startRule(context, 'Step');4903 build(context, token);4904 return 20;4905 }4906 if(match_TagLine(context, token)) {4907 if(lookahead_0(context, token)) {4908 startRule(context, 'Examples_Definition');4909 startRule(context, 'Tags');4910 build(context, token);4911 return 22;4912 }4913 }4914 if(match_TagLine(context, token)) {4915 endRule(context, 'ScenarioOutline');4916 endRule(context, 'Scenario_Definition');4917 startRule(context, 'Scenario_Definition');4918 startRule(context, 'Tags');4919 build(context, token);4920 return 11;4921 }4922 if(match_ExamplesLine(context, token)) {4923 startRule(context, 'Examples_Definition');4924 startRule(context, 'Examples');4925 build(context, token);4926 return 23;4927 }4928 if(match_ScenarioLine(context, token)) {4929 endRule(context, 'ScenarioOutline');4930 endRule(context, 'Scenario_Definition');4931 startRule(context, 'Scenario_Definition');4932 startRule(context, 'Scenario');4933 build(context, token);4934 return 12;4935 }4936 if(match_ScenarioOutlineLine(context, token)) {4937 endRule(context, 'ScenarioOutline');4938 endRule(context, 'Scenario_Definition');4939 startRule(context, 'Scenario_Definition');4940 startRule(context, 'ScenarioOutline');4941 build(context, token);4942 return 17;4943 }4944 if(match_Other(context, token)) {4945 startRule(context, 'Description');4946 build(context, token);4947 return 18;4948 }4949 4950 var stateComment = "State: 17 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:0>#ScenarioOutlineLine:0";4951 token.detach();4952 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];4953 var error = token.isEof ?4954 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :4955 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);4956 if (self.stopAtFirstError) throw error;4957 addError(context, error);4958 return 17;4959 }4960 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>Description_Helper:1>Description:0>#Other:04961 function matchTokenAt_18(token, context) {4962 if(match_EOF(context, token)) {4963 endRule(context, 'Description');4964 endRule(context, 'ScenarioOutline');4965 endRule(context, 'Scenario_Definition');4966 endRule(context, 'Feature');4967 build(context, token);4968 return 27;4969 }4970 if(match_Comment(context, token)) {4971 endRule(context, 'Description');4972 build(context, token);4973 return 19;4974 }4975 if(match_StepLine(context, token)) {4976 endRule(context, 'Description');4977 startRule(context, 'Step');4978 build(context, token);4979 return 20;4980 }4981 if(match_TagLine(context, token)) {4982 if(lookahead_0(context, token)) {4983 endRule(context, 'Description');4984 startRule(context, 'Examples_Definition');4985 startRule(context, 'Tags');4986 build(context, token);4987 return 22;4988 }4989 }4990 if(match_TagLine(context, token)) {4991 endRule(context, 'Description');4992 endRule(context, 'ScenarioOutline');4993 endRule(context, 'Scenario_Definition');4994 startRule(context, 'Scenario_Definition');4995 startRule(context, 'Tags');4996 build(context, token);4997 return 11;4998 }4999 if(match_ExamplesLine(context, token)) {5000 endRule(context, 'Description');5001 startRule(context, 'Examples_Definition');5002 startRule(context, 'Examples');5003 build(context, token);5004 return 23;5005 }5006 if(match_ScenarioLine(context, token)) {5007 endRule(context, 'Description');5008 endRule(context, 'ScenarioOutline');5009 endRule(context, 'Scenario_Definition');5010 startRule(context, 'Scenario_Definition');5011 startRule(context, 'Scenario');5012 build(context, token);5013 return 12;5014 }5015 if(match_ScenarioOutlineLine(context, token)) {5016 endRule(context, 'Description');5017 endRule(context, 'ScenarioOutline');5018 endRule(context, 'Scenario_Definition');5019 startRule(context, 'Scenario_Definition');5020 startRule(context, 'ScenarioOutline');5021 build(context, token);5022 return 17;5023 }5024 if(match_Other(context, token)) {5025 build(context, token);5026 return 18;5027 }5028 5029 var stateComment = "State: 18 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>Description_Helper:1>Description:0>#Other:0";5030 token.detach();5031 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];5032 var error = token.isEof ?5033 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5034 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5035 if (self.stopAtFirstError) throw error;5036 addError(context, error);5037 return 18;5038 }5039 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>Description_Helper:2>#Comment:05040 function matchTokenAt_19(token, context) {5041 if(match_EOF(context, token)) {5042 endRule(context, 'ScenarioOutline');5043 endRule(context, 'Scenario_Definition');5044 endRule(context, 'Feature');5045 build(context, token);5046 return 27;5047 }5048 if(match_Comment(context, token)) {5049 build(context, token);5050 return 19;5051 }5052 if(match_StepLine(context, token)) {5053 startRule(context, 'Step');5054 build(context, token);5055 return 20;5056 }5057 if(match_TagLine(context, token)) {5058 if(lookahead_0(context, token)) {5059 startRule(context, 'Examples_Definition');5060 startRule(context, 'Tags');5061 build(context, token);5062 return 22;5063 }5064 }5065 if(match_TagLine(context, token)) {5066 endRule(context, 'ScenarioOutline');5067 endRule(context, 'Scenario_Definition');5068 startRule(context, 'Scenario_Definition');5069 startRule(context, 'Tags');5070 build(context, token);5071 return 11;5072 }5073 if(match_ExamplesLine(context, token)) {5074 startRule(context, 'Examples_Definition');5075 startRule(context, 'Examples');5076 build(context, token);5077 return 23;5078 }5079 if(match_ScenarioLine(context, token)) {5080 endRule(context, 'ScenarioOutline');5081 endRule(context, 'Scenario_Definition');5082 startRule(context, 'Scenario_Definition');5083 startRule(context, 'Scenario');5084 build(context, token);5085 return 12;5086 }5087 if(match_ScenarioOutlineLine(context, token)) {5088 endRule(context, 'ScenarioOutline');5089 endRule(context, 'Scenario_Definition');5090 startRule(context, 'Scenario_Definition');5091 startRule(context, 'ScenarioOutline');5092 build(context, token);5093 return 17;5094 }5095 if(match_Empty(context, token)) {5096 build(context, token);5097 return 19;5098 }5099 5100 var stateComment = "State: 19 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:1>Description_Helper:2>#Comment:0";5101 token.detach();5102 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Empty"];5103 var error = token.isEof ?5104 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5105 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5106 if (self.stopAtFirstError) throw error;5107 addError(context, error);5108 return 19;5109 }5110 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:0>#StepLine:05111 function matchTokenAt_20(token, context) {5112 if(match_EOF(context, token)) {5113 endRule(context, 'Step');5114 endRule(context, 'ScenarioOutline');5115 endRule(context, 'Scenario_Definition');5116 endRule(context, 'Feature');5117 build(context, token);5118 return 27;5119 }5120 if(match_TableRow(context, token)) {5121 startRule(context, 'DataTable');5122 build(context, token);5123 return 21;5124 }5125 if(match_DocStringSeparator(context, token)) {5126 startRule(context, 'DocString');5127 build(context, token);5128 return 28;5129 }5130 if(match_StepLine(context, token)) {5131 endRule(context, 'Step');5132 startRule(context, 'Step');5133 build(context, token);5134 return 20;5135 }5136 if(match_TagLine(context, token)) {5137 if(lookahead_0(context, token)) {5138 endRule(context, 'Step');5139 startRule(context, 'Examples_Definition');5140 startRule(context, 'Tags');5141 build(context, token);5142 return 22;5143 }5144 }5145 if(match_TagLine(context, token)) {5146 endRule(context, 'Step');5147 endRule(context, 'ScenarioOutline');5148 endRule(context, 'Scenario_Definition');5149 startRule(context, 'Scenario_Definition');5150 startRule(context, 'Tags');5151 build(context, token);5152 return 11;5153 }5154 if(match_ExamplesLine(context, token)) {5155 endRule(context, 'Step');5156 startRule(context, 'Examples_Definition');5157 startRule(context, 'Examples');5158 build(context, token);5159 return 23;5160 }5161 if(match_ScenarioLine(context, token)) {5162 endRule(context, 'Step');5163 endRule(context, 'ScenarioOutline');5164 endRule(context, 'Scenario_Definition');5165 startRule(context, 'Scenario_Definition');5166 startRule(context, 'Scenario');5167 build(context, token);5168 return 12;5169 }5170 if(match_ScenarioOutlineLine(context, token)) {5171 endRule(context, 'Step');5172 endRule(context, 'ScenarioOutline');5173 endRule(context, 'Scenario_Definition');5174 startRule(context, 'Scenario_Definition');5175 startRule(context, 'ScenarioOutline');5176 build(context, token);5177 return 17;5178 }5179 if(match_Comment(context, token)) {5180 build(context, token);5181 return 20;5182 }5183 if(match_Empty(context, token)) {5184 build(context, token);5185 return 20;5186 }5187 5188 var stateComment = "State: 20 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:0>#StepLine:0";5189 token.detach();5190 var expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5191 var error = token.isEof ?5192 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5193 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5194 if (self.stopAtFirstError) throw error;5195 addError(context, error);5196 return 20;5197 }5198 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:05199 function matchTokenAt_21(token, context) {5200 if(match_EOF(context, token)) {5201 endRule(context, 'DataTable');5202 endRule(context, 'Step');5203 endRule(context, 'ScenarioOutline');5204 endRule(context, 'Scenario_Definition');5205 endRule(context, 'Feature');5206 build(context, token);5207 return 27;5208 }5209 if(match_TableRow(context, token)) {5210 build(context, token);5211 return 21;5212 }5213 if(match_StepLine(context, token)) {5214 endRule(context, 'DataTable');5215 endRule(context, 'Step');5216 startRule(context, 'Step');5217 build(context, token);5218 return 20;5219 }5220 if(match_TagLine(context, token)) {5221 if(lookahead_0(context, token)) {5222 endRule(context, 'DataTable');5223 endRule(context, 'Step');5224 startRule(context, 'Examples_Definition');5225 startRule(context, 'Tags');5226 build(context, token);5227 return 22;5228 }5229 }5230 if(match_TagLine(context, token)) {5231 endRule(context, 'DataTable');5232 endRule(context, 'Step');5233 endRule(context, 'ScenarioOutline');5234 endRule(context, 'Scenario_Definition');5235 startRule(context, 'Scenario_Definition');5236 startRule(context, 'Tags');5237 build(context, token);5238 return 11;5239 }5240 if(match_ExamplesLine(context, token)) {5241 endRule(context, 'DataTable');5242 endRule(context, 'Step');5243 startRule(context, 'Examples_Definition');5244 startRule(context, 'Examples');5245 build(context, token);5246 return 23;5247 }5248 if(match_ScenarioLine(context, token)) {5249 endRule(context, 'DataTable');5250 endRule(context, 'Step');5251 endRule(context, 'ScenarioOutline');5252 endRule(context, 'Scenario_Definition');5253 startRule(context, 'Scenario_Definition');5254 startRule(context, 'Scenario');5255 build(context, token);5256 return 12;5257 }5258 if(match_ScenarioOutlineLine(context, token)) {5259 endRule(context, 'DataTable');5260 endRule(context, 'Step');5261 endRule(context, 'ScenarioOutline');5262 endRule(context, 'Scenario_Definition');5263 startRule(context, 'Scenario_Definition');5264 startRule(context, 'ScenarioOutline');5265 build(context, token);5266 return 17;5267 }5268 if(match_Comment(context, token)) {5269 build(context, token);5270 return 21;5271 }5272 if(match_Empty(context, token)) {5273 build(context, token);5274 return 21;5275 }5276 5277 var stateComment = "State: 21 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:0>DataTable:0>#TableRow:0";5278 token.detach();5279 var expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5280 var error = token.isEof ?5281 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5282 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5283 if (self.stopAtFirstError) throw error;5284 addError(context, error);5285 return 21;5286 }5287 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:0>Tags:0>#TagLine:05288 function matchTokenAt_22(token, context) {5289 if(match_TagLine(context, token)) {5290 build(context, token);5291 return 22;5292 }5293 if(match_ExamplesLine(context, token)) {5294 endRule(context, 'Tags');5295 startRule(context, 'Examples');5296 build(context, token);5297 return 23;5298 }5299 if(match_Comment(context, token)) {5300 build(context, token);5301 return 22;5302 }5303 if(match_Empty(context, token)) {5304 build(context, token);5305 return 22;5306 }5307 5308 var stateComment = "State: 22 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:0>Tags:0>#TagLine:0";5309 token.detach();5310 var expectedTokens = ["#TagLine", "#ExamplesLine", "#Comment", "#Empty"];5311 var error = token.isEof ?5312 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5313 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5314 if (self.stopAtFirstError) throw error;5315 addError(context, error);5316 return 22;5317 }5318 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:0>#ExamplesLine:05319 function matchTokenAt_23(token, context) {5320 if(match_EOF(context, token)) {5321 endRule(context, 'Examples');5322 endRule(context, 'Examples_Definition');5323 endRule(context, 'ScenarioOutline');5324 endRule(context, 'Scenario_Definition');5325 endRule(context, 'Feature');5326 build(context, token);5327 return 27;5328 }5329 if(match_Empty(context, token)) {5330 build(context, token);5331 return 23;5332 }5333 if(match_Comment(context, token)) {5334 build(context, token);5335 return 25;5336 }5337 if(match_TableRow(context, token)) {5338 startRule(context, 'Examples_Table');5339 build(context, token);5340 return 26;5341 }5342 if(match_TagLine(context, token)) {5343 if(lookahead_0(context, token)) {5344 endRule(context, 'Examples');5345 endRule(context, 'Examples_Definition');5346 startRule(context, 'Examples_Definition');5347 startRule(context, 'Tags');5348 build(context, token);5349 return 22;5350 }5351 }5352 if(match_TagLine(context, token)) {5353 endRule(context, 'Examples');5354 endRule(context, 'Examples_Definition');5355 endRule(context, 'ScenarioOutline');5356 endRule(context, 'Scenario_Definition');5357 startRule(context, 'Scenario_Definition');5358 startRule(context, 'Tags');5359 build(context, token);5360 return 11;5361 }5362 if(match_ExamplesLine(context, token)) {5363 endRule(context, 'Examples');5364 endRule(context, 'Examples_Definition');5365 startRule(context, 'Examples_Definition');5366 startRule(context, 'Examples');5367 build(context, token);5368 return 23;5369 }5370 if(match_ScenarioLine(context, token)) {5371 endRule(context, 'Examples');5372 endRule(context, 'Examples_Definition');5373 endRule(context, 'ScenarioOutline');5374 endRule(context, 'Scenario_Definition');5375 startRule(context, 'Scenario_Definition');5376 startRule(context, 'Scenario');5377 build(context, token);5378 return 12;5379 }5380 if(match_ScenarioOutlineLine(context, token)) {5381 endRule(context, 'Examples');5382 endRule(context, 'Examples_Definition');5383 endRule(context, 'ScenarioOutline');5384 endRule(context, 'Scenario_Definition');5385 startRule(context, 'Scenario_Definition');5386 startRule(context, 'ScenarioOutline');5387 build(context, token);5388 return 17;5389 }5390 if(match_Other(context, token)) {5391 startRule(context, 'Description');5392 build(context, token);5393 return 24;5394 }5395 5396 var stateComment = "State: 23 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:0>#ExamplesLine:0";5397 token.detach();5398 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];5399 var error = token.isEof ?5400 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5401 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5402 if (self.stopAtFirstError) throw error;5403 addError(context, error);5404 return 23;5405 }5406 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Description_Helper:1>Description:0>#Other:05407 function matchTokenAt_24(token, context) {5408 if(match_EOF(context, token)) {5409 endRule(context, 'Description');5410 endRule(context, 'Examples');5411 endRule(context, 'Examples_Definition');5412 endRule(context, 'ScenarioOutline');5413 endRule(context, 'Scenario_Definition');5414 endRule(context, 'Feature');5415 build(context, token);5416 return 27;5417 }5418 if(match_Comment(context, token)) {5419 endRule(context, 'Description');5420 build(context, token);5421 return 25;5422 }5423 if(match_TableRow(context, token)) {5424 endRule(context, 'Description');5425 startRule(context, 'Examples_Table');5426 build(context, token);5427 return 26;5428 }5429 if(match_TagLine(context, token)) {5430 if(lookahead_0(context, token)) {5431 endRule(context, 'Description');5432 endRule(context, 'Examples');5433 endRule(context, 'Examples_Definition');5434 startRule(context, 'Examples_Definition');5435 startRule(context, 'Tags');5436 build(context, token);5437 return 22;5438 }5439 }5440 if(match_TagLine(context, token)) {5441 endRule(context, 'Description');5442 endRule(context, 'Examples');5443 endRule(context, 'Examples_Definition');5444 endRule(context, 'ScenarioOutline');5445 endRule(context, 'Scenario_Definition');5446 startRule(context, 'Scenario_Definition');5447 startRule(context, 'Tags');5448 build(context, token);5449 return 11;5450 }5451 if(match_ExamplesLine(context, token)) {5452 endRule(context, 'Description');5453 endRule(context, 'Examples');5454 endRule(context, 'Examples_Definition');5455 startRule(context, 'Examples_Definition');5456 startRule(context, 'Examples');5457 build(context, token);5458 return 23;5459 }5460 if(match_ScenarioLine(context, token)) {5461 endRule(context, 'Description');5462 endRule(context, 'Examples');5463 endRule(context, 'Examples_Definition');5464 endRule(context, 'ScenarioOutline');5465 endRule(context, 'Scenario_Definition');5466 startRule(context, 'Scenario_Definition');5467 startRule(context, 'Scenario');5468 build(context, token);5469 return 12;5470 }5471 if(match_ScenarioOutlineLine(context, token)) {5472 endRule(context, 'Description');5473 endRule(context, 'Examples');5474 endRule(context, 'Examples_Definition');5475 endRule(context, 'ScenarioOutline');5476 endRule(context, 'Scenario_Definition');5477 startRule(context, 'Scenario_Definition');5478 startRule(context, 'ScenarioOutline');5479 build(context, token);5480 return 17;5481 }5482 if(match_Other(context, token)) {5483 build(context, token);5484 return 24;5485 }5486 5487 var stateComment = "State: 24 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Description_Helper:1>Description:0>#Other:0";5488 token.detach();5489 var expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Other"];5490 var error = token.isEof ?5491 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5492 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5493 if (self.stopAtFirstError) throw error;5494 addError(context, error);5495 return 24;5496 }5497 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Description_Helper:2>#Comment:05498 function matchTokenAt_25(token, context) {5499 if(match_EOF(context, token)) {5500 endRule(context, 'Examples');5501 endRule(context, 'Examples_Definition');5502 endRule(context, 'ScenarioOutline');5503 endRule(context, 'Scenario_Definition');5504 endRule(context, 'Feature');5505 build(context, token);5506 return 27;5507 }5508 if(match_Comment(context, token)) {5509 build(context, token);5510 return 25;5511 }5512 if(match_TableRow(context, token)) {5513 startRule(context, 'Examples_Table');5514 build(context, token);5515 return 26;5516 }5517 if(match_TagLine(context, token)) {5518 if(lookahead_0(context, token)) {5519 endRule(context, 'Examples');5520 endRule(context, 'Examples_Definition');5521 startRule(context, 'Examples_Definition');5522 startRule(context, 'Tags');5523 build(context, token);5524 return 22;5525 }5526 }5527 if(match_TagLine(context, token)) {5528 endRule(context, 'Examples');5529 endRule(context, 'Examples_Definition');5530 endRule(context, 'ScenarioOutline');5531 endRule(context, 'Scenario_Definition');5532 startRule(context, 'Scenario_Definition');5533 startRule(context, 'Tags');5534 build(context, token);5535 return 11;5536 }5537 if(match_ExamplesLine(context, token)) {5538 endRule(context, 'Examples');5539 endRule(context, 'Examples_Definition');5540 startRule(context, 'Examples_Definition');5541 startRule(context, 'Examples');5542 build(context, token);5543 return 23;5544 }5545 if(match_ScenarioLine(context, token)) {5546 endRule(context, 'Examples');5547 endRule(context, 'Examples_Definition');5548 endRule(context, 'ScenarioOutline');5549 endRule(context, 'Scenario_Definition');5550 startRule(context, 'Scenario_Definition');5551 startRule(context, 'Scenario');5552 build(context, token);5553 return 12;5554 }5555 if(match_ScenarioOutlineLine(context, token)) {5556 endRule(context, 'Examples');5557 endRule(context, 'Examples_Definition');5558 endRule(context, 'ScenarioOutline');5559 endRule(context, 'Scenario_Definition');5560 startRule(context, 'Scenario_Definition');5561 startRule(context, 'ScenarioOutline');5562 build(context, token);5563 return 17;5564 }5565 if(match_Empty(context, token)) {5566 build(context, token);5567 return 25;5568 }5569 5570 var stateComment = "State: 25 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:1>Description_Helper:2>#Comment:0";5571 token.detach();5572 var expectedTokens = ["#EOF", "#Comment", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Empty"];5573 var error = token.isEof ?5574 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5575 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5576 if (self.stopAtFirstError) throw error;5577 addError(context, error);5578 return 25;5579 }5580 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:2>Examples_Table:0>#TableRow:05581 function matchTokenAt_26(token, context) {5582 if(match_EOF(context, token)) {5583 endRule(context, 'Examples_Table');5584 endRule(context, 'Examples');5585 endRule(context, 'Examples_Definition');5586 endRule(context, 'ScenarioOutline');5587 endRule(context, 'Scenario_Definition');5588 endRule(context, 'Feature');5589 build(context, token);5590 return 27;5591 }5592 if(match_TableRow(context, token)) {5593 build(context, token);5594 return 26;5595 }5596 if(match_TagLine(context, token)) {5597 if(lookahead_0(context, token)) {5598 endRule(context, 'Examples_Table');5599 endRule(context, 'Examples');5600 endRule(context, 'Examples_Definition');5601 startRule(context, 'Examples_Definition');5602 startRule(context, 'Tags');5603 build(context, token);5604 return 22;5605 }5606 }5607 if(match_TagLine(context, token)) {5608 endRule(context, 'Examples_Table');5609 endRule(context, 'Examples');5610 endRule(context, 'Examples_Definition');5611 endRule(context, 'ScenarioOutline');5612 endRule(context, 'Scenario_Definition');5613 startRule(context, 'Scenario_Definition');5614 startRule(context, 'Tags');5615 build(context, token);5616 return 11;5617 }5618 if(match_ExamplesLine(context, token)) {5619 endRule(context, 'Examples_Table');5620 endRule(context, 'Examples');5621 endRule(context, 'Examples_Definition');5622 startRule(context, 'Examples_Definition');5623 startRule(context, 'Examples');5624 build(context, token);5625 return 23;5626 }5627 if(match_ScenarioLine(context, token)) {5628 endRule(context, 'Examples_Table');5629 endRule(context, 'Examples');5630 endRule(context, 'Examples_Definition');5631 endRule(context, 'ScenarioOutline');5632 endRule(context, 'Scenario_Definition');5633 startRule(context, 'Scenario_Definition');5634 startRule(context, 'Scenario');5635 build(context, token);5636 return 12;5637 }5638 if(match_ScenarioOutlineLine(context, token)) {5639 endRule(context, 'Examples_Table');5640 endRule(context, 'Examples');5641 endRule(context, 'Examples_Definition');5642 endRule(context, 'ScenarioOutline');5643 endRule(context, 'Scenario_Definition');5644 startRule(context, 'Scenario_Definition');5645 startRule(context, 'ScenarioOutline');5646 build(context, token);5647 return 17;5648 }5649 if(match_Comment(context, token)) {5650 build(context, token);5651 return 26;5652 }5653 if(match_Empty(context, token)) {5654 build(context, token);5655 return 26;5656 }5657 5658 var stateComment = "State: 26 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:3>Examples_Definition:1>Examples:2>Examples_Table:0>#TableRow:0";5659 token.detach();5660 var expectedTokens = ["#EOF", "#TableRow", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5661 var error = token.isEof ?5662 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5663 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5664 if (self.stopAtFirstError) throw error;5665 addError(context, error);5666 return 26;5667 }5668 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:05669 function matchTokenAt_28(token, context) {5670 if(match_DocStringSeparator(context, token)) {5671 build(context, token);5672 return 29;5673 }5674 if(match_Other(context, token)) {5675 build(context, token);5676 return 28;5677 }5678 5679 var stateComment = "State: 28 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";5680 token.detach();5681 var expectedTokens = ["#DocStringSeparator", "#Other"];5682 var error = token.isEof ?5683 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5684 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5685 if (self.stopAtFirstError) throw error;5686 addError(context, error);5687 return 28;5688 }5689 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:05690 function matchTokenAt_29(token, context) {5691 if(match_EOF(context, token)) {5692 endRule(context, 'DocString');5693 endRule(context, 'Step');5694 endRule(context, 'ScenarioOutline');5695 endRule(context, 'Scenario_Definition');5696 endRule(context, 'Feature');5697 build(context, token);5698 return 27;5699 }5700 if(match_StepLine(context, token)) {5701 endRule(context, 'DocString');5702 endRule(context, 'Step');5703 startRule(context, 'Step');5704 build(context, token);5705 return 20;5706 }5707 if(match_TagLine(context, token)) {5708 if(lookahead_0(context, token)) {5709 endRule(context, 'DocString');5710 endRule(context, 'Step');5711 startRule(context, 'Examples_Definition');5712 startRule(context, 'Tags');5713 build(context, token);5714 return 22;5715 }5716 }5717 if(match_TagLine(context, token)) {5718 endRule(context, 'DocString');5719 endRule(context, 'Step');5720 endRule(context, 'ScenarioOutline');5721 endRule(context, 'Scenario_Definition');5722 startRule(context, 'Scenario_Definition');5723 startRule(context, 'Tags');5724 build(context, token);5725 return 11;5726 }5727 if(match_ExamplesLine(context, token)) {5728 endRule(context, 'DocString');5729 endRule(context, 'Step');5730 startRule(context, 'Examples_Definition');5731 startRule(context, 'Examples');5732 build(context, token);5733 return 23;5734 }5735 if(match_ScenarioLine(context, token)) {5736 endRule(context, 'DocString');5737 endRule(context, 'Step');5738 endRule(context, 'ScenarioOutline');5739 endRule(context, 'Scenario_Definition');5740 startRule(context, 'Scenario_Definition');5741 startRule(context, 'Scenario');5742 build(context, token);5743 return 12;5744 }5745 if(match_ScenarioOutlineLine(context, token)) {5746 endRule(context, 'DocString');5747 endRule(context, 'Step');5748 endRule(context, 'ScenarioOutline');5749 endRule(context, 'Scenario_Definition');5750 startRule(context, 'Scenario_Definition');5751 startRule(context, 'ScenarioOutline');5752 build(context, token);5753 return 17;5754 }5755 if(match_Comment(context, token)) {5756 build(context, token);5757 return 29;5758 }5759 if(match_Empty(context, token)) {5760 build(context, token);5761 return 29;5762 }5763 5764 var stateComment = "State: 29 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:1>ScenarioOutline:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";5765 token.detach();5766 var expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ExamplesLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5767 var error = token.isEof ?5768 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5769 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5770 if (self.stopAtFirstError) throw error;5771 addError(context, error);5772 return 29;5773 }5774 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:05775 function matchTokenAt_30(token, context) {5776 if(match_DocStringSeparator(context, token)) {5777 build(context, token);5778 return 31;5779 }5780 if(match_Other(context, token)) {5781 build(context, token);5782 return 30;5783 }5784 5785 var stateComment = "State: 30 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";5786 token.detach();5787 var expectedTokens = ["#DocStringSeparator", "#Other"];5788 var error = token.isEof ?5789 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5790 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5791 if (self.stopAtFirstError) throw error;5792 addError(context, error);5793 return 30;5794 }5795 // GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:05796 function matchTokenAt_31(token, context) {5797 if(match_EOF(context, token)) {5798 endRule(context, 'DocString');5799 endRule(context, 'Step');5800 endRule(context, 'Scenario');5801 endRule(context, 'Scenario_Definition');5802 endRule(context, 'Feature');5803 build(context, token);5804 return 27;5805 }5806 if(match_StepLine(context, token)) {5807 endRule(context, 'DocString');5808 endRule(context, 'Step');5809 startRule(context, 'Step');5810 build(context, token);5811 return 15;5812 }5813 if(match_TagLine(context, token)) {5814 endRule(context, 'DocString');5815 endRule(context, 'Step');5816 endRule(context, 'Scenario');5817 endRule(context, 'Scenario_Definition');5818 startRule(context, 'Scenario_Definition');5819 startRule(context, 'Tags');5820 build(context, token);5821 return 11;5822 }5823 if(match_ScenarioLine(context, token)) {5824 endRule(context, 'DocString');5825 endRule(context, 'Step');5826 endRule(context, 'Scenario');5827 endRule(context, 'Scenario_Definition');5828 startRule(context, 'Scenario_Definition');5829 startRule(context, 'Scenario');5830 build(context, token);5831 return 12;5832 }5833 if(match_ScenarioOutlineLine(context, token)) {5834 endRule(context, 'DocString');5835 endRule(context, 'Step');5836 endRule(context, 'Scenario');5837 endRule(context, 'Scenario_Definition');5838 startRule(context, 'Scenario_Definition');5839 startRule(context, 'ScenarioOutline');5840 build(context, token);5841 return 17;5842 }5843 if(match_Comment(context, token)) {5844 build(context, token);5845 return 31;5846 }5847 if(match_Empty(context, token)) {5848 build(context, token);5849 return 31;5850 }5851 5852 var stateComment = "State: 31 - GherkinDocument:0>Feature:2>Scenario_Definition:1>__alt0:0>Scenario:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";5853 token.detach();5854 var expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5855 var error = token.isEof ?5856 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5857 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5858 if (self.stopAtFirstError) throw error;5859 addError(context, error);5860 return 31;5861 }5862 // GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:05863 function matchTokenAt_32(token, context) {5864 if(match_DocStringSeparator(context, token)) {5865 build(context, token);5866 return 33;5867 }5868 if(match_Other(context, token)) {5869 build(context, token);5870 return 32;5871 }5872 5873 var stateComment = "State: 32 - GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:1>DocString:0>#DocStringSeparator:0";5874 token.detach();5875 var expectedTokens = ["#DocStringSeparator", "#Other"];5876 var error = token.isEof ?5877 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5878 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5879 if (self.stopAtFirstError) throw error;5880 addError(context, error);5881 return 32;5882 }5883 // GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:05884 function matchTokenAt_33(token, context) {5885 if(match_EOF(context, token)) {5886 endRule(context, 'DocString');5887 endRule(context, 'Step');5888 endRule(context, 'Background');5889 endRule(context, 'Feature');5890 build(context, token);5891 return 27;5892 }5893 if(match_StepLine(context, token)) {5894 endRule(context, 'DocString');5895 endRule(context, 'Step');5896 startRule(context, 'Step');5897 build(context, token);5898 return 9;5899 }5900 if(match_TagLine(context, token)) {5901 endRule(context, 'DocString');5902 endRule(context, 'Step');5903 endRule(context, 'Background');5904 startRule(context, 'Scenario_Definition');5905 startRule(context, 'Tags');5906 build(context, token);5907 return 11;5908 }5909 if(match_ScenarioLine(context, token)) {5910 endRule(context, 'DocString');5911 endRule(context, 'Step');5912 endRule(context, 'Background');5913 startRule(context, 'Scenario_Definition');5914 startRule(context, 'Scenario');5915 build(context, token);5916 return 12;5917 }5918 if(match_ScenarioOutlineLine(context, token)) {5919 endRule(context, 'DocString');5920 endRule(context, 'Step');5921 endRule(context, 'Background');5922 startRule(context, 'Scenario_Definition');5923 startRule(context, 'ScenarioOutline');5924 build(context, token);5925 return 17;5926 }5927 if(match_Comment(context, token)) {5928 build(context, token);5929 return 33;5930 }5931 if(match_Empty(context, token)) {5932 build(context, token);5933 return 33;5934 }5935 5936 var stateComment = "State: 33 - GherkinDocument:0>Feature:1>Background:2>Step:1>Step_Arg:0>__alt1:1>DocString:2>#DocStringSeparator:0";5937 token.detach();5938 var expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#ScenarioOutlineLine", "#Comment", "#Empty"];5939 var error = token.isEof ?5940 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :5941 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);5942 if (self.stopAtFirstError) throw error;5943 addError(context, error);5944 return 33;5945 }5946 function match_EOF(context, token) {5947 return handleExternalError(context, false, function () {5948 return context.tokenMatcher.match_EOF(token);5949 });5950 }5951 function match_Empty(context, token) {5952 if(token.isEof) return false;5953 return handleExternalError(context, false, function () {5954 return context.tokenMatcher.match_Empty(token);5955 });5956 }5957 function match_Comment(context, token) {5958 if(token.isEof) return false;5959 return handleExternalError(context, false, function () {5960 return context.tokenMatcher.match_Comment(token);5961 });5962 }5963 function match_TagLine(context, token) {5964 if(token.isEof) return false;5965 return handleExternalError(context, false, function () {5966 return context.tokenMatcher.match_TagLine(token);5967 });5968 }5969 function match_FeatureLine(context, token) {5970 if(token.isEof) return false;5971 return handleExternalError(context, false, function () {5972 return context.tokenMatcher.match_FeatureLine(token);5973 });5974 }5975 function match_BackgroundLine(context, token) {5976 if(token.isEof) return false;5977 return handleExternalError(context, false, function () {5978 return context.tokenMatcher.match_BackgroundLine(token);5979 });5980 }5981 function match_ScenarioLine(context, token) {5982 if(token.isEof) return false;5983 return handleExternalError(context, false, function () {5984 return context.tokenMatcher.match_ScenarioLine(token);5985 });5986 }5987 function match_ScenarioOutlineLine(context, token) {5988 if(token.isEof) return false;5989 return handleExternalError(context, false, function () {5990 return context.tokenMatcher.match_ScenarioOutlineLine(token);5991 });5992 }5993 function match_ExamplesLine(context, token) {5994 if(token.isEof) return false;5995 return handleExternalError(context, false, function () {5996 return context.tokenMatcher.match_ExamplesLine(token);5997 });5998 }5999 function match_StepLine(context, token) {6000 if(token.isEof) return false;6001 return handleExternalError(context, false, function () {6002 return context.tokenMatcher.match_StepLine(token);6003 });6004 }6005 function match_DocStringSeparator(context, token) {6006 if(token.isEof) return false;6007 return handleExternalError(context, false, function () {6008 return context.tokenMatcher.match_DocStringSeparator(token);6009 });6010 }6011 function match_TableRow(context, token) {6012 if(token.isEof) return false;6013 return handleExternalError(context, false, function () {6014 return context.tokenMatcher.match_TableRow(token);6015 });6016 }6017 function match_Language(context, token) {6018 if(token.isEof) return false;6019 return handleExternalError(context, false, function () {6020 return context.tokenMatcher.match_Language(token);6021 });6022 }6023 function match_Other(context, token) {6024 if(token.isEof) return false;6025 return handleExternalError(context, false, function () {6026 return context.tokenMatcher.match_Other(token);6027 });6028 }6029 function lookahead_0(context, currentToken) {6030 currentToken.detach();6031 var token;6032 var queue = [];6033 var match = false;6034 do {6035 token = readToken(context);6036 token.detach();6037 queue.push(token);6038 if (false || match_ExamplesLine(context, token)) {6039 match = true;6040 break;6041 }6042 } while(false || match_Empty(context, token) || match_Comment(context, token) || match_TagLine(context, token));6043 context.tokenQueue = context.tokenQueue.concat(queue);6044 return match;6045 }6046}6047},{"./ast_builder":2,"./errors":6,"./token_matcher":13,"./token_scanner":14}],11:[function(require,module,exports){6048var countSymbols = require('../count_symbols');6049function Compiler() {6050 this.compile = function (gherkin_document) {6051 var pickles = [];6052 if (gherkin_document.feature == null) return pickles;6053 var feature = gherkin_document.feature;6054 var language = feature.language;6055 var featureTags = feature.tags;6056 var backgroundSteps = [];6057 feature.children.forEach(function (scenarioDefinition) {6058 if(scenarioDefinition.type === 'Background') {6059 backgroundSteps = pickleSteps(scenarioDefinition);6060 } else if(scenarioDefinition.type === 'Scenario') {6061 compileScenario(featureTags, backgroundSteps, scenarioDefinition, language, pickles);6062 } else {6063 compileScenarioOutline(featureTags, backgroundSteps, scenarioDefinition, language, pickles);6064 }6065 });6066 return pickles;6067 };6068 function compileScenario(featureTags, backgroundSteps, scenario, language, pickles) {6069 var steps = scenario.steps.length == 0 ? [] : [].concat(backgroundSteps);6070 var tags = [].concat(featureTags).concat(scenario.tags);6071 scenario.steps.forEach(function (step) {6072 steps.push(pickleStep(step));6073 });6074 var pickle = {6075 tags: pickleTags(tags),6076 name: scenario.name,6077 language: language,6078 locations: [pickleLocation(scenario.location)],6079 steps: steps6080 };6081 pickles.push(pickle);6082 }6083 function compileScenarioOutline(featureTags, backgroundSteps, scenarioOutline, language, pickles) {6084 scenarioOutline.examples.filter(function(e) { return e.tableHeader != undefined; }).forEach(function (examples) {6085 var variableCells = examples.tableHeader.cells;6086 examples.tableBody.forEach(function (values) {6087 var valueCells = values.cells;6088 var steps = scenarioOutline.steps.length == 0 ? [] : [].concat(backgroundSteps);6089 var tags = [].concat(featureTags).concat(scenarioOutline.tags).concat(examples.tags);6090 scenarioOutline.steps.forEach(function (scenarioOutlineStep) {6091 var stepText = interpolate(scenarioOutlineStep.text, variableCells, valueCells);6092 var args = createPickleArguments(scenarioOutlineStep.argument, variableCells, valueCells);6093 var pickleStep = {6094 text: stepText,6095 arguments: args,6096 locations: [6097 pickleLocation(values.location),6098 pickleStepLocation(scenarioOutlineStep)6099 ]6100 };6101 steps.push(pickleStep);6102 });6103 var pickle = {6104 name: interpolate(scenarioOutline.name, variableCells, valueCells),6105 language: language,6106 steps: steps,6107 tags: pickleTags(tags),6108 locations: [6109 pickleLocation(values.location),6110 pickleLocation(scenarioOutline.location)6111 ]6112 };6113 pickles.push(pickle);6114 });6115 });6116 }6117 function createPickleArguments(argument, variableCells, valueCells) {6118 var result = [];6119 if (!argument) return result;6120 if (argument.type === 'DataTable') {6121 var table = {6122 rows: argument.rows.map(function (row) {6123 return {6124 cells: row.cells.map(function (cell) {6125 return {6126 location: pickleLocation(cell.location),6127 value: interpolate(cell.value, variableCells, valueCells)6128 };6129 })6130 };6131 })6132 };6133 result.push(table);6134 } else if (argument.type === 'DocString') {6135 var docString = {6136 location: pickleLocation(argument.location),6137 content: interpolate(argument.content, variableCells, valueCells),6138 };6139 if(argument.contentType) {6140 docString.contentType = interpolate(argument.contentType, variableCells, valueCells);6141 }6142 result.push(docString);6143 } else {6144 throw Error('Internal error');6145 }6146 return result;6147 }6148 function interpolate(name, variableCells, valueCells) {6149 variableCells.forEach(function (variableCell, n) {6150 var valueCell = valueCells[n];6151 var search = new RegExp('<' + variableCell.value + '>', 'g');6152 // JS Specific - dollar sign needs to be escaped with another dollar sign6153 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter6154 var replacement = valueCell.value.replace(new RegExp('\\$', 'g'), '$$$$')6155 name = name.replace(search, replacement);6156 });6157 return name;6158 }6159 function pickleSteps(scenarioDefinition) {6160 return scenarioDefinition.steps.map(function (step) {6161 return pickleStep(step);6162 });6163 }6164 function pickleStep(step) {6165 return {6166 text: step.text,6167 arguments: createPickleArguments(step.argument, [], []),6168 locations: [pickleStepLocation(step)]6169 }6170 }6171 function pickleStepLocation(step) {6172 return {6173 line: step.location.line,6174 column: step.location.column + (step.keyword ? countSymbols(step.keyword) : 0)6175 };6176 }6177 function pickleLocation(location) {6178 return {6179 line: location.line,6180 column: location.column6181 }6182 }6183 function pickleTags(tags) {6184 return tags.map(function (tag) {6185 return pickleTag(tag);6186 });6187 }6188 function pickleTag(tag) {6189 return {6190 name: tag.name,6191 location: pickleLocation(tag.location)6192 };6193 }6194}6195module.exports = Compiler;6196},{"../count_symbols":4}],12:[function(require,module,exports){6197function Token(line, location) {6198 this.line = line;6199 this.location = location;6200 this.isEof = line == null;6201};6202Token.prototype.getTokenValue = function () {6203 return this.isEof ? "EOF" : this.line.getLineText(-1);6204};6205Token.prototype.detach = function () {6206 // TODO: Detach line, but is this really needed?6207};6208module.exports = Token;6209},{}],13:[function(require,module,exports){6210var DIALECTS = require('./dialects');6211var Errors = require('./errors');6212var LANGUAGE_PATTERN = /^\s*#\s*language\s*:\s*([a-zA-Z\-_]+)\s*$/;6213module.exports = function TokenMatcher(defaultDialectName) {6214 defaultDialectName = defaultDialectName || 'en';6215 var dialect;6216 var dialectName;6217 var activeDocStringSeparator;6218 var indentToRemove;6219 function changeDialect(newDialectName, location) {6220 var newDialect = DIALECTS[newDialectName];6221 if(!newDialect) {6222 throw Errors.NoSuchLanguageException.create(newDialectName, location);6223 }6224 dialectName = newDialectName;6225 dialect = newDialect;6226 }6227 this.reset = function () {6228 if(dialectName != defaultDialectName) changeDialect(defaultDialectName);6229 activeDocStringSeparator = null;6230 indentToRemove = 0;6231 };6232 this.reset();6233 this.match_TagLine = function match_TagLine(token) {6234 if(token.line.startsWith('@')) {6235 setTokenMatched(token, 'TagLine', null, null, null, token.line.getTags());6236 return true;6237 }6238 return false;6239 };6240 this.match_FeatureLine = function match_FeatureLine(token) {6241 return matchTitleLine(token, 'FeatureLine', dialect.feature);6242 };6243 this.match_ScenarioLine = function match_ScenarioLine(token) {6244 return matchTitleLine(token, 'ScenarioLine', dialect.scenario);6245 };6246 this.match_ScenarioOutlineLine = function match_ScenarioOutlineLine(token) {6247 return matchTitleLine(token, 'ScenarioOutlineLine', dialect.scenarioOutline);6248 };6249 this.match_BackgroundLine = function match_BackgroundLine(token) {6250 return matchTitleLine(token, 'BackgroundLine', dialect.background);6251 };6252 this.match_ExamplesLine = function match_ExamplesLine(token) {6253 return matchTitleLine(token, 'ExamplesLine', dialect.examples);6254 };6255 this.match_TableRow = function match_TableRow(token) {6256 if (token.line.startsWith('|')) {6257 // TODO: indent6258 setTokenMatched(token, 'TableRow', null, null, null, token.line.getTableCells());6259 return true;6260 }6261 return false;6262 };6263 this.match_Empty = function match_Empty(token) {6264 if (token.line.isEmpty) {6265 setTokenMatched(token, 'Empty', null, null, 0);6266 return true;6267 }6268 return false;6269 };6270 this.match_Comment = function match_Comment(token) {6271 if(token.line.startsWith('#')) {6272 var text = token.line.getLineText(0); //take the entire line, including leading space6273 setTokenMatched(token, 'Comment', text, null, 0);6274 return true;6275 }6276 return false;6277 };6278 this.match_Language = function match_Language(token) {6279 var match;6280 if(match = token.line.trimmedLineText.match(LANGUAGE_PATTERN)) {6281 var newDialectName = match[1];6282 setTokenMatched(token, 'Language', newDialectName);6283 changeDialect(newDialectName, token.location);6284 return true;6285 }6286 return false;6287 };6288 this.match_DocStringSeparator = function match_DocStringSeparator(token) {6289 return activeDocStringSeparator == null6290 ?6291 // open6292 _match_DocStringSeparator(token, '"""', true) ||6293 _match_DocStringSeparator(token, '```', true)6294 :6295 // close6296 _match_DocStringSeparator(token, activeDocStringSeparator, false);6297 };6298 function _match_DocStringSeparator(token, separator, isOpen) {6299 if (token.line.startsWith(separator)) {6300 var contentType = null;6301 if (isOpen) {6302 contentType = token.line.getRestTrimmed(separator.length);6303 activeDocStringSeparator = separator;6304 indentToRemove = token.line.indent;6305 } else {6306 activeDocStringSeparator = null;6307 indentToRemove = 0;6308 }6309 // TODO: Use the separator as keyword. That's needed for pretty printing.6310 setTokenMatched(token, 'DocStringSeparator', contentType);6311 return true;6312 }6313 return false;6314 }6315 this.match_EOF = function match_EOF(token) {6316 if(token.isEof) {6317 setTokenMatched(token, 'EOF');6318 return true;6319 }6320 return false;6321 };6322 this.match_StepLine = function match_StepLine(token) {6323 var keywords = []6324 .concat(dialect.given)6325 .concat(dialect.when)6326 .concat(dialect.then)6327 .concat(dialect.and)6328 .concat(dialect.but);6329 var length = keywords.length;6330 for(var i = 0, keyword; i < length; i++) {6331 var keyword = keywords[i];6332 if (token.line.startsWith(keyword)) {6333 var title = token.line.getRestTrimmed(keyword.length);6334 setTokenMatched(token, 'StepLine', title, keyword);6335 return true;6336 }6337 }6338 return false;6339 };6340 this.match_Other = function match_Other(token) {6341 var text = token.line.getLineText(indentToRemove); //take the entire line, except removing DocString indents6342 setTokenMatched(token, 'Other', unescapeDocString(text), null, 0);6343 return true;6344 };6345 function matchTitleLine(token, tokenType, keywords) {6346 var length = keywords.length;6347 for(var i = 0, keyword; i < length; i++) {6348 var keyword = keywords[i];6349 if (token.line.startsWithTitleKeyword(keyword)) {6350 var title = token.line.getRestTrimmed(keyword.length + ':'.length);6351 setTokenMatched(token, tokenType, title, keyword);6352 return true;6353 }6354 }6355 return false;6356 }6357 function setTokenMatched(token, matchedType, text, keyword, indent, items) {6358 token.matchedType = matchedType;6359 token.matchedText = text;6360 token.matchedKeyword = keyword;6361 token.matchedIndent = (typeof indent === 'number') ? indent : (token.line == null ? 0 : token.line.indent);6362 token.matchedItems = items || [];6363 token.location.column = token.matchedIndent + 1;6364 token.matchedGherkinDialect = dialectName;6365 }6366 function unescapeDocString(text) {6367 return activeDocStringSeparator != null ? text.replace("\\\"\\\"\\\"", "\"\"\"") : text;6368 }6369};6370},{"./dialects":5,"./errors":6}],14:[function(require,module,exports){6371var Token = require('./token');6372var GherkinLine = require('./gherkin_line');6373/**6374 * The scanner reads a gherkin doc (typically read from a .feature file) and creates a token for each line. 6375 * The tokens are passed to the parser, which outputs an AST (Abstract Syntax Tree).6376 * 6377 * If the scanner sees a `#` language header, it will reconfigure itself dynamically to look for 6378 * Gherkin keywords for the associated language. The keywords are defined in gherkin-languages.json.6379 */6380module.exports = function TokenScanner(source) {6381 var lines = source.split(/\r?\n/);6382 if(lines.length > 0 && lines[lines.length-1].trim() == '') {6383 lines.pop();6384 }6385 var lineNumber = 0;6386 this.read = function () {6387 var line = lines[lineNumber++];6388 var location = {line: lineNumber, column: 0};6389 return line == null ? new Token(null, location) : new Token(new GherkinLine(line, lineNumber), location);6390 }6391};...

Full Screen

Full Screen

parser.js

Source:parser.js Github

copy

Full Screen

1// This file is generated. Do not edit! Edit gherkin-javascript.razor instead.2var Errors = require('./errors');3var AstBuilder = require('./ast_builder');4var TokenScanner = require('./token_scanner');5var TokenMatcher = require('./token_matcher');6var RULE_TYPES = [7 'None',8 '_EOF', // #EOF9 '_Empty', // #Empty10 '_Comment', // #Comment11 '_TagLine', // #TagLine12 '_ScenarioLine', // #ScenarioLine13 '_ExamplesLine', // #ExamplesLine14 '_StepLine', // #StepLine15 '_DocStringSeparator', // #DocStringSeparator16 '_TableRow', // #TableRow17 '_Language', // #Language18 '_Other', // #Other19 'GherkinDocument', // GherkinDocument! := Scenario_Definition*20 'Scenario_Definition', // Scenario_Definition! := Tags? Scenario21 'Scenario', // Scenario! := #ScenarioLine Scenario_Description Scenario_Step*22 'Scenario_Step', // Scenario_Step := Step23 'Step', // Step! := #StepLine Step_Arg?24 'Step_Arg', // Step_Arg := (DataTable | DocString)25 'DataTable', // DataTable! := #TableRow+26 'DocString', // DocString! := #DocStringSeparator #Other* #DocStringSeparator27 'Tags', // Tags! := #TagLine+28 'Scenario_Description', // Scenario_Description := Description_Helper29 'Description_Helper', // Description_Helper := #Empty* Description? #Comment*30 'Description', // Description! := #Other+31];32module.exports = function Parser(builder) {33 builder = builder || new AstBuilder();34 var self = this;35 var context;36 this.parse = function(tokenScanner, tokenMatcher) {37 if(typeof tokenScanner == 'string') {38 tokenScanner = new TokenScanner(tokenScanner);39 }40 tokenMatcher = tokenMatcher || new TokenMatcher();41 builder.reset();42 tokenMatcher.reset();43 context = {44 tokenScanner: tokenScanner,45 tokenMatcher: tokenMatcher,46 tokenQueue: [],47 errors: []48 };49 startRule(context, "GherkinDocument");50 var state = 0;51 var token = null;52 while(true) {53 token = readToken(context);54 state = matchToken(state, token, context);55 if(token.isEof) break;56 }57 endRule(context, "GherkinDocument");58 if(context.errors.length > 0) {59 throw Errors.CompositeParserException.create(context.errors);60 }61 return getResult();62 };63 function addError(context, error) {64 context.errors.push(error);65 if (context.errors.length > 10)66 throw Errors.CompositeParserException.create(context.errors);67 }68 function startRule(context, ruleType) {69 handleAstError(context, function () {70 builder.startRule(ruleType);71 });72 }73 function endRule(context, ruleType) {74 handleAstError(context, function () {75 builder.endRule(ruleType);76 });77 }78 function build(context, token) {79 handleAstError(context, function () {80 builder.build(token);81 });82 }83 function getResult() {84 return builder.getResult();85 }86 function handleAstError(context, action) {87 handleExternalError(context, true, action)88 }89 function handleExternalError(context, defaultValue, action) {90 if(self.stopAtFirstError) return action();91 try {92 return action();93 } catch (e) {94 if(e instanceof Errors.CompositeParserException) {95 e.errors.forEach(function (error) {96 addError(context, error);97 });98 } else if(99 e instanceof Errors.ParserException ||100 e instanceof Errors.AstBuilderException ||101 e instanceof Errors.UnexpectedTokenException ||102 e instanceof Errors.NoSuchLanguageException103 ) {104 addError(context, e);105 } else {106 throw e;107 }108 }109 return defaultValue;110 }111 function readToken(context) {112 return context.tokenQueue.length > 0 ?113 context.tokenQueue.shift() :114 context.tokenScanner.read();115 }116 function matchToken(state, token, context) {117 switch(state) {118 case 0:119 return matchTokenAt_0(token, context);120 case 1:121 return matchTokenAt_1(token, context);122 case 2:123 return matchTokenAt_2(token, context);124 case 3:125 return matchTokenAt_3(token, context);126 case 4:127 return matchTokenAt_4(token, context);128 case 5:129 return matchTokenAt_5(token, context);130 case 6:131 return matchTokenAt_6(token, context);132 case 8:133 return matchTokenAt_8(token, context);134 case 9:135 return matchTokenAt_9(token, context);136 default:137 throw new Error("Unknown state: " + state);138 }139 }140 // Start141 function matchTokenAt_0(token, context) {142 if(match_EOF(context, token)) {143 build(context, token);144 return 7;145 }146 if(match_TagLine(context, token)) {147 startRule(context, 'Scenario_Definition');148 startRule(context, 'Tags');149 build(context, token);150 return 1;151 }152 if(match_ScenarioLine(context, token)) {153 startRule(context, 'Scenario_Definition');154 startRule(context, 'Scenario');155 build(context, token);156 return 2;157 }158 if(match_Comment(context, token)) {159 build(context, token);160 return 0;161 }162 if(match_Empty(context, token)) {163 build(context, token);164 return 0;165 }166 167 var stateComment = "State: 0 - Start";168 token.detach();169 var expectedTokens = ["#EOF", "#TagLine", "#ScenarioLine", "#Comment", "#Empty"];170 var error = token.isEof ?171 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :172 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);173 if (self.stopAtFirstError) throw error;174 addError(context, error);175 return 0;176 }177 // GherkinDocument:0>Scenario_Definition:0>Tags:0>#TagLine:0178 function matchTokenAt_1(token, context) {179 if(match_TagLine(context, token)) {180 build(context, token);181 return 1;182 }183 if(match_ScenarioLine(context, token)) {184 endRule(context, 'Tags');185 startRule(context, 'Scenario');186 build(context, token);187 return 2;188 }189 if(match_Comment(context, token)) {190 build(context, token);191 return 1;192 }193 if(match_Empty(context, token)) {194 build(context, token);195 return 1;196 }197 198 var stateComment = "State: 1 - GherkinDocument:0>Scenario_Definition:0>Tags:0>#TagLine:0";199 token.detach();200 var expectedTokens = ["#TagLine", "#ScenarioLine", "#Comment", "#Empty"];201 var error = token.isEof ?202 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :203 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);204 if (self.stopAtFirstError) throw error;205 addError(context, error);206 return 1;207 }208 // GherkinDocument:0>Scenario_Definition:1>Scenario:0>#ScenarioLine:0209 function matchTokenAt_2(token, context) {210 if(match_EOF(context, token)) {211 endRule(context, 'Scenario');212 endRule(context, 'Scenario_Definition');213 build(context, token);214 return 7;215 }216 if(match_Empty(context, token)) {217 build(context, token);218 return 2;219 }220 if(match_Comment(context, token)) {221 build(context, token);222 return 4;223 }224 if(match_StepLine(context, token)) {225 startRule(context, 'Step');226 build(context, token);227 return 5;228 }229 if(match_TagLine(context, token)) {230 endRule(context, 'Scenario');231 endRule(context, 'Scenario_Definition');232 startRule(context, 'Scenario_Definition');233 startRule(context, 'Tags');234 build(context, token);235 return 1;236 }237 if(match_ScenarioLine(context, token)) {238 endRule(context, 'Scenario');239 endRule(context, 'Scenario_Definition');240 startRule(context, 'Scenario_Definition');241 startRule(context, 'Scenario');242 build(context, token);243 return 2;244 }245 if(match_Other(context, token)) {246 startRule(context, 'Description');247 build(context, token);248 return 3;249 }250 251 var stateComment = "State: 2 - GherkinDocument:0>Scenario_Definition:1>Scenario:0>#ScenarioLine:0";252 token.detach();253 var expectedTokens = ["#EOF", "#Empty", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#Other"];254 var error = token.isEof ?255 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :256 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);257 if (self.stopAtFirstError) throw error;258 addError(context, error);259 return 2;260 }261 // GherkinDocument:0>Scenario_Definition:1>Scenario:1>Scenario_Description:0>Description_Helper:1>Description:0>#Other:0262 function matchTokenAt_3(token, context) {263 if(match_EOF(context, token)) {264 endRule(context, 'Description');265 endRule(context, 'Scenario');266 endRule(context, 'Scenario_Definition');267 build(context, token);268 return 7;269 }270 if(match_Comment(context, token)) {271 endRule(context, 'Description');272 build(context, token);273 return 4;274 }275 if(match_StepLine(context, token)) {276 endRule(context, 'Description');277 startRule(context, 'Step');278 build(context, token);279 return 5;280 }281 if(match_TagLine(context, token)) {282 endRule(context, 'Description');283 endRule(context, 'Scenario');284 endRule(context, 'Scenario_Definition');285 startRule(context, 'Scenario_Definition');286 startRule(context, 'Tags');287 build(context, token);288 return 1;289 }290 if(match_ScenarioLine(context, token)) {291 endRule(context, 'Description');292 endRule(context, 'Scenario');293 endRule(context, 'Scenario_Definition');294 startRule(context, 'Scenario_Definition');295 startRule(context, 'Scenario');296 build(context, token);297 return 2;298 }299 if(match_Other(context, token)) {300 build(context, token);301 return 3;302 }303 304 var stateComment = "State: 3 - GherkinDocument:0>Scenario_Definition:1>Scenario:1>Scenario_Description:0>Description_Helper:1>Description:0>#Other:0";305 token.detach();306 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#Other"];307 var error = token.isEof ?308 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :309 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);310 if (self.stopAtFirstError) throw error;311 addError(context, error);312 return 3;313 }314 // GherkinDocument:0>Scenario_Definition:1>Scenario:1>Scenario_Description:0>Description_Helper:2>#Comment:0315 function matchTokenAt_4(token, context) {316 if(match_EOF(context, token)) {317 endRule(context, 'Scenario');318 endRule(context, 'Scenario_Definition');319 build(context, token);320 return 7;321 }322 if(match_Comment(context, token)) {323 build(context, token);324 return 4;325 }326 if(match_StepLine(context, token)) {327 startRule(context, 'Step');328 build(context, token);329 return 5;330 }331 if(match_TagLine(context, token)) {332 endRule(context, 'Scenario');333 endRule(context, 'Scenario_Definition');334 startRule(context, 'Scenario_Definition');335 startRule(context, 'Tags');336 build(context, token);337 return 1;338 }339 if(match_ScenarioLine(context, token)) {340 endRule(context, 'Scenario');341 endRule(context, 'Scenario_Definition');342 startRule(context, 'Scenario_Definition');343 startRule(context, 'Scenario');344 build(context, token);345 return 2;346 }347 if(match_Empty(context, token)) {348 build(context, token);349 return 4;350 }351 352 var stateComment = "State: 4 - GherkinDocument:0>Scenario_Definition:1>Scenario:1>Scenario_Description:0>Description_Helper:2>#Comment:0";353 token.detach();354 var expectedTokens = ["#EOF", "#Comment", "#StepLine", "#TagLine", "#ScenarioLine", "#Empty"];355 var error = token.isEof ?356 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :357 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);358 if (self.stopAtFirstError) throw error;359 addError(context, error);360 return 4;361 }362 // GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:0>#StepLine:0363 function matchTokenAt_5(token, context) {364 if(match_EOF(context, token)) {365 endRule(context, 'Step');366 endRule(context, 'Scenario');367 endRule(context, 'Scenario_Definition');368 build(context, token);369 return 7;370 }371 if(match_TableRow(context, token)) {372 startRule(context, 'DataTable');373 build(context, token);374 return 6;375 }376 if(match_DocStringSeparator(context, token)) {377 startRule(context, 'DocString');378 build(context, token);379 return 8;380 }381 if(match_StepLine(context, token)) {382 endRule(context, 'Step');383 startRule(context, 'Step');384 build(context, token);385 return 5;386 }387 if(match_TagLine(context, token)) {388 endRule(context, 'Step');389 endRule(context, 'Scenario');390 endRule(context, 'Scenario_Definition');391 startRule(context, 'Scenario_Definition');392 startRule(context, 'Tags');393 build(context, token);394 return 1;395 }396 if(match_ScenarioLine(context, token)) {397 endRule(context, 'Step');398 endRule(context, 'Scenario');399 endRule(context, 'Scenario_Definition');400 startRule(context, 'Scenario_Definition');401 startRule(context, 'Scenario');402 build(context, token);403 return 2;404 }405 if(match_Comment(context, token)) {406 build(context, token);407 return 5;408 }409 if(match_Empty(context, token)) {410 build(context, token);411 return 5;412 }413 414 var stateComment = "State: 5 - GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:0>#StepLine:0";415 token.detach();416 var expectedTokens = ["#EOF", "#TableRow", "#DocStringSeparator", "#StepLine", "#TagLine", "#ScenarioLine", "#Comment", "#Empty"];417 var error = token.isEof ?418 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :419 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);420 if (self.stopAtFirstError) throw error;421 addError(context, error);422 return 5;423 }424 // GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:0>DataTable:0>#TableRow:0425 function matchTokenAt_6(token, context) {426 if(match_EOF(context, token)) {427 endRule(context, 'DataTable');428 endRule(context, 'Step');429 endRule(context, 'Scenario');430 endRule(context, 'Scenario_Definition');431 build(context, token);432 return 7;433 }434 if(match_TableRow(context, token)) {435 build(context, token);436 return 6;437 }438 if(match_StepLine(context, token)) {439 endRule(context, 'DataTable');440 endRule(context, 'Step');441 startRule(context, 'Step');442 build(context, token);443 return 5;444 }445 if(match_TagLine(context, token)) {446 endRule(context, 'DataTable');447 endRule(context, 'Step');448 endRule(context, 'Scenario');449 endRule(context, 'Scenario_Definition');450 startRule(context, 'Scenario_Definition');451 startRule(context, 'Tags');452 build(context, token);453 return 1;454 }455 if(match_ScenarioLine(context, token)) {456 endRule(context, 'DataTable');457 endRule(context, 'Step');458 endRule(context, 'Scenario');459 endRule(context, 'Scenario_Definition');460 startRule(context, 'Scenario_Definition');461 startRule(context, 'Scenario');462 build(context, token);463 return 2;464 }465 if(match_Comment(context, token)) {466 build(context, token);467 return 6;468 }469 if(match_Empty(context, token)) {470 build(context, token);471 return 6;472 }473 474 var stateComment = "State: 6 - GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:0>DataTable:0>#TableRow:0";475 token.detach();476 var expectedTokens = ["#EOF", "#TableRow", "#StepLine", "#TagLine", "#ScenarioLine", "#Comment", "#Empty"];477 var error = token.isEof ?478 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :479 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);480 if (self.stopAtFirstError) throw error;481 addError(context, error);482 return 6;483 }484 // GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:1>DocString:0>#DocStringSeparator:0485 function matchTokenAt_8(token, context) {486 if(match_DocStringSeparator(context, token)) {487 build(context, token);488 return 9;489 }490 if(match_Other(context, token)) {491 build(context, token);492 return 8;493 }494 495 var stateComment = "State: 8 - GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:1>DocString:0>#DocStringSeparator:0";496 token.detach();497 var expectedTokens = ["#DocStringSeparator", "#Other"];498 var error = token.isEof ?499 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :500 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);501 if (self.stopAtFirstError) throw error;502 addError(context, error);503 return 8;504 }505 // GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:1>DocString:2>#DocStringSeparator:0506 function matchTokenAt_9(token, context) {507 if(match_EOF(context, token)) {508 endRule(context, 'DocString');509 endRule(context, 'Step');510 endRule(context, 'Scenario');511 endRule(context, 'Scenario_Definition');512 build(context, token);513 return 7;514 }515 if(match_StepLine(context, token)) {516 endRule(context, 'DocString');517 endRule(context, 'Step');518 startRule(context, 'Step');519 build(context, token);520 return 5;521 }522 if(match_TagLine(context, token)) {523 endRule(context, 'DocString');524 endRule(context, 'Step');525 endRule(context, 'Scenario');526 endRule(context, 'Scenario_Definition');527 startRule(context, 'Scenario_Definition');528 startRule(context, 'Tags');529 build(context, token);530 return 1;531 }532 if(match_ScenarioLine(context, token)) {533 endRule(context, 'DocString');534 endRule(context, 'Step');535 endRule(context, 'Scenario');536 endRule(context, 'Scenario_Definition');537 startRule(context, 'Scenario_Definition');538 startRule(context, 'Scenario');539 build(context, token);540 return 2;541 }542 if(match_Comment(context, token)) {543 build(context, token);544 return 9;545 }546 if(match_Empty(context, token)) {547 build(context, token);548 return 9;549 }550 551 var stateComment = "State: 9 - GherkinDocument:0>Scenario_Definition:1>Scenario:2>Scenario_Step:0>Step:1>Step_Arg:0>__alt0:1>DocString:2>#DocStringSeparator:0";552 token.detach();553 var expectedTokens = ["#EOF", "#StepLine", "#TagLine", "#ScenarioLine", "#Comment", "#Empty"];554 var error = token.isEof ?555 Errors.UnexpectedEOFException.create(token, expectedTokens, stateComment) :556 Errors.UnexpectedTokenException.create(token, expectedTokens, stateComment);557 if (self.stopAtFirstError) throw error;558 addError(context, error);559 return 9;560 }561 function match_EOF(context, token) {562 return handleExternalError(context, false, function () {563 return context.tokenMatcher.match_EOF(token);564 });565 }566 function match_Empty(context, token) {567 if(token.isEof) return false;568 return handleExternalError(context, false, function () {569 return context.tokenMatcher.match_Empty(token);570 });571 }572 function match_Comment(context, token) {573 if(token.isEof) return false;574 return handleExternalError(context, false, function () {575 return context.tokenMatcher.match_Comment(token);576 });577 }578 function match_TagLine(context, token) {579 if(token.isEof) return false;580 return handleExternalError(context, false, function () {581 return context.tokenMatcher.match_TagLine(token);582 });583 }584 function match_ScenarioLine(context, token) {585 if(token.isEof) return false;586 return handleExternalError(context, false, function () {587 return context.tokenMatcher.match_ScenarioLine(token);588 });589 }590 function match_ExamplesLine(context, token) {591 if(token.isEof) return false;592 return handleExternalError(context, false, function () {593 return context.tokenMatcher.match_ExamplesLine(token);594 });595 }596 function match_StepLine(context, token) {597 if(token.isEof) return false;598 return handleExternalError(context, false, function () {599 return context.tokenMatcher.match_StepLine(token);600 });601 }602 function match_DocStringSeparator(context, token) {603 if(token.isEof) return false;604 return handleExternalError(context, false, function () {605 return context.tokenMatcher.match_DocStringSeparator(token);606 });607 }608 function match_TableRow(context, token) {609 if(token.isEof) return false;610 return handleExternalError(context, false, function () {611 return context.tokenMatcher.match_TableRow(token);612 });613 }614 function match_Language(context, token) {615 if(token.isEof) return false;616 return handleExternalError(context, false, function () {617 return context.tokenMatcher.match_Language(token);618 });619 }620 function match_Other(context, token) {621 if(token.isEof) return false;622 return handleExternalError(context, false, function () {623 return context.tokenMatcher.match_Other(token);624 });625 }...

Full Screen

Full Screen

ast_builder.js

Source:ast_builder.js Github

copy

Full Screen

1var AstNode = require('./ast_node');2var Errors = require('./errors');3module.exports = function AstBuilder () {4 var stack = [new AstNode('None')];5 var comments = [];6 this.reset = function () {7 stack = [new AstNode('None')];8 comments = [];9 };10 this.startRule = function (ruleType) {11 stack.push(new AstNode(ruleType));12 };13 this.endRule = function (ruleType) {14 var node = stack.pop();15 var transformedNode = transformNode(node);16 currentNode().add(node.ruleType, transformedNode);17 };18 this.build = function (token) {19 if(token.matchedType === 'Comment') {20 comments.push({21 type: 'Comment',22 location: getLocation(token),23 text: token.matchedText24 });25 } else {26 currentNode().add(token.matchedType, token);27 }28 };29 this.getResult = function () {30 return currentNode().getSingle('GherkinDocument');31 };32 function currentNode () {33 return stack[stack.length - 1];34 }35 function getLocation (token, column) {36 return !column ? token.location : {line: token.location.line, column: column};37 }38 function getTags (node) {39 var tags = [];40 var tagsNode = node.getSingle('Tags');41 if (!tagsNode) return tags;42 tagsNode.getTokens('TagLine').forEach(function (token) {43 token.matchedItems.forEach(function (tagItem) {44 tags.push({45 type: 'Tag',46 location: getLocation(token, tagItem.column),47 name: tagItem.text48 });49 });50 });51 return tags;52 }53 function getCells(tableRowToken) {54 return tableRowToken.matchedItems.map(function (cellItem) {55 return {56 type: 'TableCell',57 location: getLocation(tableRowToken, cellItem.column),58 value: cellItem.text59 }60 });61 }62 function getDescription (node) {63 return node.getSingle('Description');64 }65 function getSteps (node) {66 return node.getItems('Step');67 }68 function getTableRows(node) {69 var rows = node.getTokens('TableRow').map(function (token) {70 return {71 type: 'TableRow',72 location: getLocation(token),73 cells: getCells(token)74 };75 });76 ensureCellCount(rows);77 return rows;78 }79 function ensureCellCount(rows) {80 if(rows.length == 0) return;81 var cellCount = rows[0].cells.length;82 rows.forEach(function (row) {83 if (row.cells.length != cellCount) {84 throw Errors.AstBuilderException.create("inconsistent cell count within the table", row.location);85 }86 });87 }88 function transformNode(node) {89 switch(node.ruleType) {90 case 'Step':91 var stepLine = node.getToken('StepLine');92 var stepArgument = node.getSingle('DataTable') || node.getSingle('DocString') || undefined;93 return {94 type: node.ruleType,95 location: getLocation(stepLine),96 keyword: stepLine.matchedKeyword,97 text: stepLine.matchedText,98 argument: stepArgument99 }100 case 'DocString':101 var separatorToken = node.getTokens('DocStringSeparator')[0];102 var contentType = separatorToken.matchedText.length > 0 ? separatorToken.matchedText : undefined;103 var lineTokens = node.getTokens('Other');104 var content = lineTokens.map(function (t) {return t.matchedText}).join("\n");105 var result = {106 type: node.ruleType,107 location: getLocation(separatorToken),108 content: content109 };110 // conditionally add this like this (needed to make tests pass on node 0.10 as well as 4.0)111 if(contentType) {112 result.contentType = contentType;113 }114 return result;115 case 'DataTable':116 var rows = getTableRows(node);117 return {118 type: node.ruleType,119 location: rows[0].location,120 rows: rows,121 }122 case 'Background':123 var backgroundLine = node.getToken('BackgroundLine');124 var description = getDescription(node);125 var steps = getSteps(node);126 return {127 type: node.ruleType,128 location: getLocation(backgroundLine),129 keyword: backgroundLine.matchedKeyword,130 name: backgroundLine.matchedText,131 description: description,132 steps: steps133 };134 case 'Scenario_Definition':135 var tags = getTags(node);136 var scenarioNode = node.getSingle('Scenario');137 if(scenarioNode) {138 var scenarioLine = scenarioNode.getToken('ScenarioLine');139 var description = getDescription(scenarioNode);140 var steps = getSteps(scenarioNode);141 return {142 type: scenarioNode.ruleType,143 tags: tags,144 location: getLocation(scenarioLine),145 keyword: scenarioLine.matchedKeyword,146 name: scenarioLine.matchedText,147 description: description,148 steps: steps149 };150 } else {151 var scenarioOutlineNode = node.getSingle('ScenarioOutline');152 if(!scenarioOutlineNode) throw new Error('Internal grammar error');153 var scenarioOutlineLine = scenarioOutlineNode.getToken('ScenarioOutlineLine');154 var description = getDescription(scenarioOutlineNode);155 var steps = getSteps(scenarioOutlineNode);156 var examples = scenarioOutlineNode.getItems('Examples_Definition');157 return {158 type: scenarioOutlineNode.ruleType,159 tags: tags,160 location: getLocation(scenarioOutlineLine),161 keyword: scenarioOutlineLine.matchedKeyword,162 name: scenarioOutlineLine.matchedText,163 description: description,164 steps: steps,165 examples: examples166 };167 }168 case 'Examples_Definition':169 var tags = getTags(node);170 var examplesNode = node.getSingle('Examples');171 var examplesLine = examplesNode.getToken('ExamplesLine');172 var description = getDescription(examplesNode);173 var exampleTable = examplesNode.getSingle('Examples_Table')174 return {175 type: examplesNode.ruleType,176 tags: tags,177 location: getLocation(examplesLine),178 keyword: examplesLine.matchedKeyword,179 name: examplesLine.matchedText,180 description: description,181 tableHeader: exampleTable != undefined ? exampleTable.tableHeader : undefined,182 tableBody: exampleTable != undefined ? exampleTable.tableBody : undefined183 };184 case 'Examples_Table':185 var rows = getTableRows(node)186 return {187 tableHeader: rows != undefined ? rows[0] : undefined,188 tableBody: rows != undefined ? rows.slice(1) : undefined189 };190 case 'Description':191 var lineTokens = node.getTokens('Other');192 // Trim trailing empty lines193 var end = lineTokens.length;194 while (end > 0 && lineTokens[end-1].line.trimmedLineText === '') {195 end--;196 }197 lineTokens = lineTokens.slice(0, end);198 var description = lineTokens.map(function (token) { return token.matchedText}).join("\n");199 return description;200 201 case 'GherkinDocument':202 return {203 type: node.ruleType,204 steps: node.getItems('Scenario_Definition'),205 comments: comments206 };207 default:208 return node;209 }210 }...

Full Screen

Full Screen

errors.js

Source:errors.js Github

copy

Full Screen

1var Errors = {}23;[4 'ParserException',5 'CompositeParserException',6 'UnexpectedTokenException',7 'UnexpectedEOFException',8 'AstBuilderException',9 'NoSuchLanguageException',10].forEach(function(name) {11 function ErrorProto(message) {12 this.message = message || 'Unspecified ' + name13 if (Error.captureStackTrace) {14 Error.captureStackTrace(this, Error.captureStackTrace)15 }16 }1718 ErrorProto.prototype = Object.create(Error.prototype)19 ErrorProto.prototype.name = name20 ErrorProto.prototype.constructor = ErrorProto21 Errors[name] = ErrorProto22})2324Errors.CompositeParserException.create = function(errors) {25 var message =26 'Parser errors:\n' +27 errors28 .map(function(e) {29 return e.message30 })31 .join('\n')32 var err = new Errors.CompositeParserException(message)33 err.errors = errors34 return err35}3637Errors.UnexpectedTokenException.create = function(38 token,39 expectedTokenTypes,40 stateComment41) {42 var message =43 'expected: ' +44 expectedTokenTypes.join(', ') +45 ", got '" +46 token.getTokenValue().trim() +47 "'"48 var location = !token.location.column49 ? { line: token.location.line, column: token.line.indent + 1 }50 : token.location51 return createError(Errors.UnexpectedEOFException, message, location)52}5354Errors.UnexpectedEOFException.create = function(55 token,56 expectedTokenTypes,57 stateComment58) {59 var message =60 'unexpected end of file, expected: ' + expectedTokenTypes.join(', ')61 return createError(Errors.UnexpectedTokenException, message, token.location)62}6364Errors.AstBuilderException.create = function(message, location) {65 return createError(Errors.AstBuilderException, message, location)66}6768Errors.NoSuchLanguageException.create = function(language, location) {69 var message = 'Language not supported: ' + language70 return createError(Errors.NoSuchLanguageException, message, location)71}7273function createError(Ctor, message, location) {74 var fullMessage =75 '(' + location.line + ':' + location.column + '): ' + message76 var error = new Ctor(fullMessage)77 error.location = location78 return error79}80 ...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const AstBuilder = require('gherkin').AstBuilder;2const Parser = require('gherkin').Parser;3const GherkinDocumentParser = require('gherkin').GherkinDocumentParser;4const AstBuilderException = require('gherkin').AstBuilderException;5const parser = new Parser(new AstBuilder());6const gherkinDocumentParser = new GherkinDocumentParser();7`;8try {9 const gherkinDocument = gherkinDocumentParser.parse(parser.parse(source));10 console.log(gherkinDocument);11} catch (error) {12 if (error instanceof AstBuilderException) {13 console.log(error.message);14 }15}

Full Screen

Using AI Code Generation

copy

Full Screen

1var gherkin = require('gherkin');2var AstBuilder = gherkin.AstBuilder;3var Parser = gherkin.Parser;4var AstBuilderException = gherkin.AstBuilderException;5var parser = new Parser(new AstBuilder());6try {7 parser.parse('Feature: test8');9} catch (e) {10 if (e instanceof AstBuilderException) {11 console.log('AstBuilderException');12 }13}

Full Screen

Using AI Code Generation

copy

Full Screen

1var AstBuilder = require('cucumber-gherkin').AstBuilder;2var AstBuilderException = require('cucumber-gherkin').AstBuilderException;3var astBuilder = new AstBuilder();4var gherkinSource = "Feature: test";5var ast = astBuilder.build(gherkinSource);6var AstBuilder = require('cucumber').AstBuilder;7var AstBuilderException = require('cucumber').AstBuilderException;8var astBuilder = new AstBuilder();9var gherkinSource = "Feature: test";10var ast = astBuilder.build(gherkinSource);

Full Screen

Using AI Code Generation

copy

Full Screen

1const AstBuilderException = require('cucumber-gherkin').AstBuilderException;2const fs = require('fs');3const path = require('path');4const featureFile = fs.readFileSync(path.join(__dirname, 'test.feature'), 'utf-8');5try {6 const astBuilder = new AstBuilderException();7 astBuilder.build(featureFile);8} catch (err) {9 console.error(err);10}

Full Screen

Using AI Code Generation

copy

Full Screen

1var AstBuilder = require('cucumber-gherkin').AstBuilder;2var fs = require('fs');3var gherkin = fs.readFileSync('feature.feature').toString();4var astBuilder = new AstBuilder();5var feature = astBuilder.build(gherkin);6var gherkin = require('gherkin');7var parser = new gherkin.Parser();8var lexer = new gherkin.Lexer();9var astBuilder = new gherkin.AstBuilder();10var feature = astBuilder.build(parser.parse(lexer.lex(gherkin)));

Full Screen

Using AI Code Generation

copy

Full Screen

1var AstBuilderException = require('cucumber-gherkin').AstBuilderException;2var exception = new AstBuilderException("error message");3console.log(exception.message);4console.log(exception.stack);5{6 "scripts": {7 },8 "dependencies": {9 }10}11at new AstBuilderException (C:\Users\test\test\node_modules\cucumber-gherkin\lib\cucumber\gherkin\ast_builder_exception.js:6:5)12at Object.<anonymous> (C:\Users\test\test\test.js:3:17)13at Module._compile (module.js:570:32)14at Object.Module._extensions..js (module.js:579:10)15at Module.load (module.js:487:32)16at tryModuleLoad (module.js:446:12)17at Function.Module._load (module.js:438:3)18at Function.Module.runMain (module.js:604:10)19at startup (bootstrap_node.js:158:16)

Full Screen

Using AI Code Generation

copy

Full Screen

1var Cucumber = require('cucumber');2var fs = require('fs');3var featureFile = fs.readFileSync('test.feature').toString();4var astBuilder = Cucumber.Parser.AstBuilder();5var astTree = astBuilder.build(featureFile);6console.log(astTree);

Full Screen

Cucumber Tutorial:

LambdaTest offers a detailed Cucumber testing tutorial, explaining its features, importance, best practices, and more to help you get started with running your automation testing scripts.

Cucumber Tutorial Chapters:

Here are the detailed Cucumber testing chapters to help you get started:

  • Importance of Cucumber - Learn why Cucumber is important in Selenium automation testing during the development phase to identify bugs and errors.
  • Setting Up Cucumber in Eclipse and IntelliJ - Learn how to set up Cucumber in Eclipse and IntelliJ.
  • Running First Cucumber.js Test Script - After successfully setting up your Cucumber in Eclipse or IntelliJ, this chapter will help you get started with Selenium Cucumber testing in no time.
  • Annotations in Cucumber - To handle multiple feature files and the multiple scenarios in each file, you need to use functionality to execute these scenarios. This chapter will help you learn about a handful of Cucumber annotations ranging from tags, Cucumber hooks, and more to ease the maintenance of the framework.
  • Automation Testing With Cucumber And Nightwatch JS - Learn how to build a robust BDD framework setup for performing Selenium automation testing by integrating Cucumber into the Nightwatch.js framework.
  • Automation Testing With Selenium, Cucumber & TestNG - Learn how to perform Selenium automation testing by integrating Cucumber with the TestNG framework.
  • Integrate Cucumber With Jenkins - By using Cucumber with Jenkins integration, you can schedule test case executions remotely and take advantage of the benefits of Jenkins. Learn how to integrate Cucumber with Jenkins with this detailed chapter.
  • Cucumber Best Practices For Selenium Automation - Take a deep dive into the advanced use cases, such as creating a feature file, separating feature files, and more for Cucumber testing.

Run Cucumber-gherkin automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful