diff --git a/packages/common-generator/lib/common-generator.d.ts.map b/packages/common-generator/lib/common-generator.d.ts.map index cf9638b6..e24736b4 100644 --- a/packages/common-generator/lib/common-generator.d.ts.map +++ b/packages/common-generator/lib/common-generator.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"common-generator.d.ts","sourceRoot":"","sources":["../src/common-generator.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAa,SAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM;IAUrD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,GAAG,MAAM;CAS5E;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,MAAM;QAChB,IAAI,IAAA;QACJ,IAAI,IAAA;KACL;CACF"} \ No newline at end of file +{"version":3,"file":"common-generator.d.ts","sourceRoot":"","sources":["../src/common-generator.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAa,SAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM;IAUrD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,GAAG,MAAM;CAU5E;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,MAAM;QAChB,IAAI,IAAA;QACJ,IAAI,IAAA;KACL;CACF"} \ No newline at end of file diff --git a/packages/common-generator/lib/common-generator.js b/packages/common-generator/lib/common-generator.js index 9bf16caa..c05828f7 100644 --- a/packages/common-generator/lib/common-generator.js +++ b/packages/common-generator/lib/common-generator.js @@ -38,6 +38,7 @@ class FileTemplate extends Map { } substitute(key, mappings) { if (!this.has(key)) + /* instanbul ignore next */ throw new Error(`key ${key} not found in ${this.from}`); const raw = this.get(key); return mappings.reduce((ret, m) => ret.replace(RegExp(`{{${m.token}}}`, 'g'), m.value), raw); diff --git a/packages/common-generator/lib/common-generator.js.map b/packages/common-generator/lib/common-generator.js.map index 249c07d9..7ec8899d 100644 --- a/packages/common-generator/lib/common-generator.js.map +++ b/packages/common-generator/lib/common-generator.js.map @@ -1 +1 @@ -{"version":3,"file":"common-generator.js","sourceRoot":"","sources":["../src/common-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,gDAAkC;AAElC,MAAa,YAAa,SAAQ,GAAmB;IAGnD,YAAY,IAAY,EAAE,MAA2B;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI;YACnD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAA8B,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,QAA0C;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAC/D,GAAG,CACJ,CAAC;IACJ,CAAC;CACF;AAtBD,oCAsBC;AAED,WAAiB,YAAY;IAC3B,IAAY,MAGX;IAHD,WAAY,MAAM;QAChB,mCAAI,CAAA;QACJ,mCAAI,CAAA;IACN,CAAC,EAHW,MAAM,GAAN,mBAAM,KAAN,mBAAM,QAGjB;AACH,CAAC,EALgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAK5B"} \ No newline at end of file +{"version":3,"file":"common-generator.js","sourceRoot":"","sources":["../src/common-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,gDAAkC;AAElC,MAAa,YAAa,SAAQ,GAAmB;IAGnD,YAAY,IAAY,EAAE,MAA2B;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI;YACnD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAA8B,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,QAA0C;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAChB,2BAA2B;YAC3B,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAC/D,GAAG,CACJ,CAAC;IACJ,CAAC;CACF;AAvBD,oCAuBC;AAED,WAAiB,YAAY;IAC3B,IAAY,MAGX;IAHD,WAAY,MAAM;QAChB,mCAAI,CAAA;QACJ,mCAAI,CAAA;IACN,CAAC,EAHW,MAAM,GAAN,mBAAM,KAAN,mBAAM,QAGjB;AACH,CAAC,EALgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAK5B"} \ No newline at end of file diff --git a/packages/ebnf-parser/ebnf-parser.js b/packages/ebnf-parser/ebnf-parser.js index 9f1eec0e..f9946982 100644 --- a/packages/ebnf-parser/ebnf-parser.js +++ b/packages/ebnf-parser/ebnf-parser.js @@ -34,7 +34,19 @@ const yy = { for (var i=0; i < decl.options.length; i++) { grammar.options[decl.options[i]] = true; } - } + } else if (decl.type) { + if (!grammar.type) grammar.type = {}; + for (var nterm in decl.type) { + if (nterm in grammar.type) { + console.log(`Type of ${nterm} is overriden.`) + } + grammar.type[nterm] = decl.type[nterm]; + } + + } else + /* debugger */ + /* unexpected */ + ; } } diff --git a/packages/ebnf-parser/lib/bnf-parser.d.ts b/packages/ebnf-parser/lib/bnf-parser.d.ts index fdd32bf3..f58a6943 100644 --- a/packages/ebnf-parser/lib/bnf-parser.d.ts +++ b/packages/ebnf-parser/lib/bnf-parser.d.ts @@ -8,15 +8,21 @@ export declare class BnfParser extends JisonParser implements JisonParserApi { defaultActions: { [key: number]: any; }; - constructor(yy?: {}, lexer?: BnfLexer); + constructor(yy?: any, lexer?: BnfLexer); performAction(yytext: string, yyleng: number, yylineno: number, yy: any, yystate: number, $$: any, _$: any): any; } import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; +type YY_ = { + yytext: string; + yyleng: number; + yylineno: number; +}; export declare class BnfLexer extends JisonLexer implements JisonLexerApi { options: any; - constructor(yy?: {}); + constructor(yy?: any); rules: RegExp[]; conditions: any; - performAction(yy: any, yy_: any, $avoiding_name_collisions: any, YY_START: any): any; + performAction(yy: any, yy_: YY_, $avoiding_name_collisions: any, YY_START: any): any; } +export {}; //# sourceMappingURL=bnf-parser.d.ts.map \ No newline at end of file diff --git a/packages/ebnf-parser/lib/bnf-parser.d.ts.map b/packages/ebnf-parser/lib/bnf-parser.d.ts.map index 77c72eed..0d286307 100644 --- a/packages/ebnf-parser/lib/bnf-parser.d.ts.map +++ b/packages/ebnf-parser/lib/bnf-parser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"bnf-parser.d.ts","sourceRoot":"","sources":["../src/bnf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAmBvH,qBAAa,SAAU,SAAQ,WAAY,YAAW,cAAc;IAChE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAAusB;IAC5tB,UAAU,EAAE,aAAa,CAAgS;IACzT,YAAY,EAAE,eAAe,CAAiY;IAC9Z,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAAuB;gBAE7C,EAAE,KAAK,EAAE,KAAK,WAAmB;IAS9C,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CAsJvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,QAAS,SAAQ,UAAW,YAAW,aAAa;IAC7D,OAAO,EAAE,GAAG,CAAwB;gBACvB,EAAE,KAAK;IAIpB,KAAK,EAAE,MAAM,EAAE,CA6Cb;IACF,UAAU,EAAE,GAAG,CAAge;IAC/e,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA6FjF"} \ No newline at end of file +{"version":3,"file":"bnf-parser.d.ts","sourceRoot":"","sources":["../src/bnf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAmBvH,qBAAa,SAAU,SAAQ,WAAY,YAAW,cAAc;IAChE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAA4tB;IACjvB,UAAU,EAAE,aAAa,CAA2S;IACpU,YAAY,EAAE,eAAe,CAA+Y;IAC5a,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAAuB;gBAE7C,EAAE,GAAE,GAAQ,EAAE,KAAK,WAAmB;IASnD,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CA4JvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,KAAK,GAAG,GAAG;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,qBAAa,QAAS,SAAQ,UAAW,YAAW,aAAa;IAC7D,OAAO,EAAE,GAAG,CAAwB;gBACvB,EAAE,GAAE,GAAQ;IAIzB,KAAK,EAAE,MAAM,EAAE,CA8Cb;IACF,UAAU,EAAE,GAAG,CAAye;IACxf,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA+FjF"} \ No newline at end of file diff --git a/packages/ebnf-parser/lib/bnf-parser.js b/packages/ebnf-parser/lib/bnf-parser.js index 98a30f76..e0485c73 100644 --- a/packages/ebnf-parser/lib/bnf-parser.js +++ b/packages/ebnf-parser/lib/bnf-parser.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.BnfLexer = exports.BnfParser = void 0; const parser_1 = require("@ts-jison/parser"); /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ // import {transform} from './ebnf-parser'; @@ -17,14 +17,14 @@ function extend(json, grammar) { class BnfParser extends parser_1.JisonParser { constructor(yy = {}, lexer = new BnfLexer(yy)) { super(yy, lexer); - this.symbols_ = { "error": 2, "spec": 3, "declaration_list": 4, "%%": 5, "grammar": 6, "optional_end_block": 7, "EOF": 8, "CODE": 9, "declaration": 10, "START": 11, "id": 12, "LEX_BLOCK": 13, "operator": 14, "ACTION": 15, "parse_param": 16, "options": 17, "OPTIONS": 18, "token_list": 19, "PARSE_PARAM": 20, "associativity": 21, "LEFT": 22, "RIGHT": 23, "NONASSOC": 24, "symbol": 25, "production_list": 26, "production": 27, ":": 28, "handle_list": 29, ";": 30, "|": 31, "handle_action": 32, "handle": 33, "prec": 34, "action": 35, "expression_suffix": 36, "handle_sublist": 37, "expression": 38, "suffix": 39, "ALIAS": 40, "ID": 41, "STRING": 42, "(": 43, ")": 44, "*": 45, "?": 46, "+": 47, "PREC": 48, "{": 49, "action_body": 50, "}": 51, "ARROW_ACTION": 52, "action_comments_body": 53, "ACTION_BODY": 54, "$accept": 0, "$end": 1 }; - this.terminals_ = { 2: "error", 5: "%%", 8: "EOF", 9: "CODE", 11: "START", 13: "LEX_BLOCK", 15: "ACTION", 18: "OPTIONS", 20: "PARSE_PARAM", 22: "LEFT", 23: "RIGHT", 24: "NONASSOC", 28: ":", 30: ";", 31: "|", 40: "ALIAS", 41: "ID", 42: "STRING", 43: "(", 44: ")", 45: "*", 46: "?", 47: "+", 48: "PREC", 49: "{", 51: "}", 52: "ARROW_ACTION", 54: "ACTION_BODY" }; - this.productions_ = [0, [3, 5], [3, 6], [7, 0], [7, 1], [4, 2], [4, 0], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [17, 2], [16, 2], [14, 2], [21, 1], [21, 1], [21, 1], [19, 2], [19, 1], [6, 1], [26, 2], [26, 1], [27, 4], [29, 3], [29, 1], [32, 3], [33, 2], [33, 0], [37, 3], [37, 1], [36, 3], [36, 2], [38, 1], [38, 1], [38, 3], [39, 0], [39, 1], [39, 1], [39, 1], [34, 2], [34, 0], [25, 1], [25, 1], [12, 1], [35, 3], [35, 1], [35, 1], [35, 0], [50, 0], [50, 1], [50, 5], [50, 4], [53, 1], [53, 2]]; - this.defaultActions = { 34: [2, 1], 39: [2, 2] }; + this.symbols_ = { "error": 2, "spec": 3, "declaration_list": 4, "%%": 5, "grammar": 6, "optional_end_block": 7, "EOF": 8, "CODE": 9, "declaration": 10, "START": 11, "id": 12, "LEX_BLOCK": 13, "operator": 14, "ACTION": 15, "parse_param": 16, "options": 17, "type": 18, "OPTIONS": 19, "token_list": 20, "TYPES": 21, "PARSE_PARAM": 22, "associativity": 23, "LEFT": 24, "RIGHT": 25, "NONASSOC": 26, "symbol": 27, "production_list": 28, "production": 29, ":": 30, "handle_list": 31, ";": 32, "|": 33, "handle_action": 34, "handle": 35, "prec": 36, "action": 37, "expression_suffix": 38, "handle_sublist": 39, "expression": 40, "suffix": 41, "ALIAS": 42, "ID": 43, "STRING": 44, "(": 45, ")": 46, "*": 47, "?": 48, "+": 49, "PREC": 50, "{": 51, "action_body": 52, "}": 53, "ARROW_ACTION": 54, "action_comments_body": 55, "ACTION_BODY": 56, "$accept": 0, "$end": 1 }; + this.terminals_ = { 2: "error", 5: "%%", 8: "EOF", 9: "CODE", 11: "START", 13: "LEX_BLOCK", 15: "ACTION", 19: "OPTIONS", 21: "TYPES", 22: "PARSE_PARAM", 24: "LEFT", 25: "RIGHT", 26: "NONASSOC", 30: ":", 32: ";", 33: "|", 42: "ALIAS", 43: "ID", 44: "STRING", 45: "(", 46: ")", 47: "*", 48: "?", 49: "+", 50: "PREC", 51: "{", 53: "}", 54: "ARROW_ACTION", 56: "ACTION_BODY" }; + this.productions_ = [0, [3, 5], [3, 6], [7, 0], [7, 1], [4, 2], [4, 0], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [17, 2], [18, 2], [16, 2], [14, 2], [23, 1], [23, 1], [23, 1], [20, 2], [20, 1], [6, 1], [28, 2], [28, 1], [29, 4], [31, 3], [31, 1], [34, 3], [35, 2], [35, 0], [39, 3], [39, 1], [38, 3], [38, 2], [40, 1], [40, 1], [40, 3], [41, 0], [41, 1], [41, 1], [41, 1], [36, 2], [36, 0], [27, 1], [27, 1], [12, 1], [37, 3], [37, 1], [37, 1], [37, 0], [52, 0], [52, 1], [52, 5], [52, 4], [55, 1], [55, 2]]; + this.defaultActions = { 37: [2, 1], 42: [2, 2] }; // shorten static method to just `o` for terse STATE_TABLE - const $V0 = [5, 11, 13, 15, 18, 20, 22, 23, 24], $V1 = [1, 21], $V2 = [1, 26], $V3 = [41, 42], $V4 = [5, 8, 41], $V5 = [5, 11, 13, 15, 18, 20, 22, 23, 24, 41, 42], $V6 = [5, 11, 13, 15, 18, 20, 22, 23, 24, 30, 31, 41, 42, 49, 52], $V7 = [15, 30, 31, 41, 42, 43, 48, 49, 52], $V8 = [2, 29], $V9 = [30, 31], $Va = [15, 30, 31, 49, 52], $Vb = [1, 46], $Vc = [1, 47], $Vd = [1, 48], $Ve = [15, 30, 31, 41, 42, 43, 44, 48, 49, 52], $Vf = [15, 30, 31, 40, 41, 42, 43, 44, 48, 49, 52], $Vg = [15, 30, 31, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], $Vh = [31, 41, 42, 43, 44], $Vi = [49, 51], $Vj = [2, 50], $Vk = [1, 63], $Vl = [31, 44], $Vm = [1, 68], $Vn = [1, 69], $Vo = [49, 51, 54]; + const $V0 = [5, 11, 13, 15, 19, 21, 22, 24, 25, 26], $V1 = [1, 23], $V2 = [1, 28], $V3 = [43, 44], $V4 = [5, 8, 43], $V5 = [5, 11, 13, 15, 19, 21, 22, 24, 25, 26, 43, 44], $V6 = [5, 11, 13, 15, 19, 21, 22, 24, 25, 26, 32, 33, 43, 44, 51, 54], $V7 = [15, 32, 33, 43, 44, 45, 50, 51, 54], $V8 = [2, 31], $V9 = [32, 33], $Va = [15, 32, 33, 51, 54], $Vb = [1, 49], $Vc = [1, 50], $Vd = [1, 51], $Ve = [15, 32, 33, 43, 44, 45, 46, 50, 51, 54], $Vf = [15, 32, 33, 42, 43, 44, 45, 46, 50, 51, 54], $Vg = [15, 32, 33, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], $Vh = [33, 43, 44, 45, 46], $Vi = [51, 53], $Vj = [2, 52], $Vk = [1, 66], $Vl = [33, 46], $Vm = [1, 71], $Vn = [1, 72], $Vo = [51, 53, 56]; const o = parser_1.JisonParser.expandParseTable; - this.table = [o($V0, [2, 6], { 3: 1, 4: 2 }), { 1: [3] }, { 5: [1, 3], 10: 4, 11: [1, 5], 13: [1, 6], 14: 7, 15: [1, 8], 16: 9, 17: 10, 18: [1, 13], 20: [1, 12], 21: 11, 22: [1, 14], 23: [1, 15], 24: [1, 16] }, { 6: 17, 12: 20, 26: 18, 27: 19, 41: $V1 }, o($V0, [2, 5]), { 12: 22, 41: $V1 }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), { 12: 25, 19: 23, 25: 24, 41: $V1, 42: $V2 }, { 12: 25, 19: 27, 25: 24, 41: $V1, 42: $V2 }, { 12: 25, 19: 28, 25: 24, 41: $V1, 42: $V2 }, o($V3, [2, 16]), o($V3, [2, 17]), o($V3, [2, 18]), { 5: [1, 30], 7: 29, 8: [2, 3] }, o([5, 8], [2, 21], { 12: 20, 27: 31, 41: $V1 }), o($V4, [2, 23]), { 28: [1, 32] }, o([5, 11, 13, 15, 18, 20, 22, 23, 24, 28, 30, 31, 41, 42, 49, 52], [2, 45]), o($V0, [2, 7]), o($V0, [2, 15], { 12: 25, 25: 33, 41: $V1, 42: $V2 }), o($V5, [2, 20]), o($V6, [2, 43]), o($V6, [2, 44]), o($V0, [2, 14], { 12: 25, 25: 33, 41: $V1, 42: $V2 }), o($V0, [2, 13], { 12: 25, 25: 33, 41: $V1, 42: $V2 }), { 8: [1, 34] }, { 8: [2, 4], 9: [1, 35] }, o($V4, [2, 22]), o($V7, $V8, { 29: 36, 32: 37, 33: 38 }), o($V5, [2, 19]), { 1: [2, 1] }, { 8: [1, 39] }, { 30: [1, 40], 31: [1, 41] }, o($V9, [2, 26]), o($Va, [2, 42], { 34: 42, 36: 43, 38: 45, 41: $Vb, 42: $Vc, 43: $Vd, 48: [1, 44] }), { 1: [2, 2] }, o($V4, [2, 24]), o($V7, $V8, { 33: 38, 32: 49 }), o($V9, [2, 49], { 35: 50, 15: [1, 52], 49: [1, 51], 52: [1, 53] }), o($Ve, [2, 28]), { 12: 25, 25: 54, 41: $V1, 42: $V2 }, o($Vf, [2, 37], { 39: 55, 45: [1, 56], 46: [1, 57], 47: [1, 58] }), o($Vg, [2, 34]), o($Vg, [2, 35]), o($Vh, $V8, { 37: 59, 33: 60 }), o($V9, [2, 25]), o($V9, [2, 27]), o($Vi, $Vj, { 50: 61, 53: 62, 54: $Vk }), o($V9, [2, 47]), o($V9, [2, 48]), o($Va, [2, 41]), o($Ve, [2, 33], { 40: [1, 64] }), o($Vf, [2, 38]), o($Vf, [2, 39]), o($Vf, [2, 40]), { 31: [1, 66], 44: [1, 65] }, o($Vl, [2, 31], { 36: 43, 38: 45, 41: $Vb, 42: $Vc, 43: $Vd }), { 49: $Vm, 51: [1, 67] }, o($Vi, [2, 51], { 54: $Vn }), o($Vo, [2, 54]), o($Ve, [2, 32]), o($Vg, [2, 36]), o($Vh, $V8, { 33: 70 }), o($V9, [2, 46]), o($Vi, $Vj, { 53: 62, 50: 71, 54: $Vk }), o($Vo, [2, 55]), o($Vl, [2, 30], { 36: 43, 38: 45, 41: $Vb, 42: $Vc, 43: $Vd }), { 49: $Vm, 51: [1, 72] }, o($Vi, [2, 53], { 53: 73, 54: $Vk }), o($Vi, [2, 52], { 54: $Vn })]; + this.table = [o($V0, [2, 6], { 3: 1, 4: 2 }), { 1: [3] }, { 5: [1, 3], 10: 4, 11: [1, 5], 13: [1, 6], 14: 7, 15: [1, 8], 16: 9, 17: 10, 18: 11, 19: [1, 14], 21: [1, 15], 22: [1, 13], 23: 12, 24: [1, 16], 25: [1, 17], 26: [1, 18] }, { 6: 19, 12: 22, 28: 20, 29: 21, 43: $V1 }, o($V0, [2, 5]), { 12: 24, 43: $V1 }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), { 12: 27, 20: 25, 27: 26, 43: $V1, 44: $V2 }, { 12: 27, 20: 29, 27: 26, 43: $V1, 44: $V2 }, { 12: 27, 20: 30, 27: 26, 43: $V1, 44: $V2 }, { 12: 27, 20: 31, 27: 26, 43: $V1, 44: $V2 }, o($V3, [2, 18]), o($V3, [2, 19]), o($V3, [2, 20]), { 5: [1, 33], 7: 32, 8: [2, 3] }, o([5, 8], [2, 23], { 12: 22, 29: 34, 43: $V1 }), o($V4, [2, 25]), { 30: [1, 35] }, o([5, 11, 13, 15, 19, 21, 22, 24, 25, 26, 30, 32, 33, 43, 44, 51, 54], [2, 47]), o($V0, [2, 7]), o($V0, [2, 17], { 12: 27, 27: 36, 43: $V1, 44: $V2 }), o($V5, [2, 22]), o($V6, [2, 45]), o($V6, [2, 46]), o($V0, [2, 16], { 12: 27, 27: 36, 43: $V1, 44: $V2 }), o($V0, [2, 14], { 12: 27, 27: 36, 43: $V1, 44: $V2 }), o($V0, [2, 15], { 12: 27, 27: 36, 43: $V1, 44: $V2 }), { 8: [1, 37] }, { 8: [2, 4], 9: [1, 38] }, o($V4, [2, 24]), o($V7, $V8, { 31: 39, 34: 40, 35: 41 }), o($V5, [2, 21]), { 1: [2, 1] }, { 8: [1, 42] }, { 32: [1, 43], 33: [1, 44] }, o($V9, [2, 28]), o($Va, [2, 44], { 36: 45, 38: 46, 40: 48, 43: $Vb, 44: $Vc, 45: $Vd, 50: [1, 47] }), { 1: [2, 2] }, o($V4, [2, 26]), o($V7, $V8, { 35: 41, 34: 52 }), o($V9, [2, 51], { 37: 53, 15: [1, 55], 51: [1, 54], 54: [1, 56] }), o($Ve, [2, 30]), { 12: 27, 27: 57, 43: $V1, 44: $V2 }, o($Vf, [2, 39], { 41: 58, 47: [1, 59], 48: [1, 60], 49: [1, 61] }), o($Vg, [2, 36]), o($Vg, [2, 37]), o($Vh, $V8, { 39: 62, 35: 63 }), o($V9, [2, 27]), o($V9, [2, 29]), o($Vi, $Vj, { 52: 64, 55: 65, 56: $Vk }), o($V9, [2, 49]), o($V9, [2, 50]), o($Va, [2, 43]), o($Ve, [2, 35], { 42: [1, 67] }), o($Vf, [2, 40]), o($Vf, [2, 41]), o($Vf, [2, 42]), { 33: [1, 69], 46: [1, 68] }, o($Vl, [2, 33], { 38: 46, 40: 48, 43: $Vb, 44: $Vc, 45: $Vd }), { 51: $Vm, 53: [1, 70] }, o($Vi, [2, 53], { 56: $Vn }), o($Vo, [2, 56]), o($Ve, [2, 34]), o($Vg, [2, 38]), o($Vh, $V8, { 35: 73 }), o($V9, [2, 48]), o($Vi, $Vj, { 55: 65, 52: 74, 56: $Vk }), o($Vo, [2, 57]), o($Vl, [2, 32], { 38: 46, 40: 48, 43: $Vb, 44: $Vc, 45: $Vd }), { 51: $Vm, 53: [1, 75] }, o($Vi, [2, 55], { 55: 76, 56: $Vk }), o($Vi, [2, 54], { 56: $Vn })]; } performAction(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -65,53 +65,65 @@ class BnfParser extends parser_1.JisonParser { this.$ = { options: $$[$0] }; break; case 13: + this.$ = { type: $$[$0] }; + break; case 14: - case 21: - case 43: - case 47: - case 51: + case 16: + case 23: + case 45: + case 49: + case 53: this.$ = $$[$0]; break; case 15: + { + const t = $$[$0 - 1].substring($$[$0 - 1].indexOf('<') + 1, $$[$0 - 1].lastIndexOf('>')); + this.$ = {}; + for (const token of $$[$0]) { + this.$[token] = t; + } + } + break; + case 17: this.$ = [$$[$0 - 1]]; this.$.push.apply(this.$, $$[$0]); break; - case 16: + case 18: this.$ = 'left'; break; - case 17: + case 19: this.$ = 'right'; break; - case 18: + case 20: this.$ = 'nonassoc'; break; - case 19: + case 21: this.$ = $$[$0 - 1]; this.$.push($$[$0]); break; - case 20: - case 26: + case 22: + case 28: this.$ = [$$[$0]]; break; - case 22: + case 24: this.$ = $$[$0 - 1]; if ($$[$0][0] in this.$) this.$[$$[$0][0]] = this.$[$$[$0][0]].concat($$[$0][1]); else this.$[$$[$0][0]] = $$[$0][1]; break; - case 23: + case 25: this.$ = {}; this.$[$$[$0][0]] = $$[$0][1]; break; - case 24: + case 26: this.$ = [$$[$0 - 3], $$[$0 - 1]]; break; - case 25: + case 27: this.$ = $$[$0 - 2]; this.$.push($$[$0]); break; - case 27: + case 29: this.$ = [($$[$0 - 2].length ? $$[$0 - 2].join(' ') : '')]; if ($$[$0]) this.$.push($$[$0]); @@ -120,75 +132,75 @@ class BnfParser extends parser_1.JisonParser { if (this.$.length === 1) this.$ = this.$[0]; break; - case 28: + case 30: this.$ = $$[$0 - 1]; this.$.push($$[$0]); break; - case 29: + case 31: this.$ = []; break; - case 30: + case 32: this.$ = $$[$0 - 2]; this.$.push($$[$0].join(' ')); break; - case 31: + case 33: this.$ = [$$[$0].join(' ')]; break; - case 32: + case 34: this.$ = $$[$0 - 2] + $$[$0 - 1] + "[" + $$[$0] + "]"; break; - case 33: + case 35: this.$ = $$[$0 - 1] + $$[$0]; break; - case 34: + case 36: this.$ = $$[$0]; break; - case 35: + case 37: this.$ = ebnf ? "'" + $$[$0] + "'" : $$[$0]; break; - case 36: + case 38: this.$ = '(' + $$[$0 - 1].join(' | ') + ')'; break; - case 37: + case 39: this.$ = ''; break; - case 41: + case 43: this.$ = { prec: $$[$0] }; break; - case 42: + case 44: this.$ = null; break; - case 44: - case 45: + case 46: + case 47: this.$ = yytext; break; - case 46: + case 48: this.$ = $$[$0 - 1]; break; - case 48: + case 50: this.$ = '$$ =' + $$[$0] + ';'; break; - case 49: - case 50: + case 51: + case 52: this.$ = ''; break; - case 52: + case 54: this.$ = $$[$0 - 4] + $$[$0 - 3] + $$[$0 - 2] + $$[$0 - 1] + $$[$0]; break; - case 53: + case 55: this.$ = $$[$0 - 3] + $$[$0 - 2] + $$[$0 - 1] + $$[$0]; break; - case 54: + case 56: this.$ = yytext; break; - case 55: + case 57: this.$ = $$[$0 - 1] + $$[$0]; break; } } } exports.BnfParser = BnfParser; -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ const lexer_1 = require("@ts-jison/lexer"); class BnfLexer extends lexer_1.JisonLexer { constructor(yy = {}) { @@ -220,6 +232,7 @@ class BnfLexer extends lexer_1.JisonLexer { /^(?:%nonassoc\b)/, /^(?:%parse-param\b)/, /^(?:%options\b)/, + /^(?:%type[\W]+<[^<>]*(?:<[^<>]*>)*[^<>]*>)/, /^(?:[%]lex[\w\W]*?[/]lex\b)/, /^(?:%[a-zA-Z]+[^\r\n]*)/, /^(?:<[a-zA-Z]*>)/, @@ -240,7 +253,7 @@ class BnfLexer extends lexer_1.JisonLexer { /^(?:\})/, /^(?:(?:.|\n|\r)+)/ ]; - this.conditions = { "bnf": { "rules": [0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "inclusive": true }, "ebnf": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "inclusive": true }, "action": { "rules": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42], "inclusive": false }, "code": { "rules": [33, 43], "inclusive": false }, "INITIAL": { "rules": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "inclusive": true } }; + this.conditions = { "bnf": { "rules": [0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "inclusive": true }, "ebnf": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "inclusive": true }, "action": { "rules": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43], "inclusive": false }, "code": { "rules": [34, 44], "inclusive": false }, "INITIAL": { "rules": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "inclusive": true } }; } performAction(yy, yy_, $avoiding_name_collisions, YY_START) { var YYSTATE = YY_START; @@ -250,19 +263,19 @@ class BnfLexer extends lexer_1.JisonLexer { return 5; break; case 1: - return 43; + return 45; break; case 2: - return 44; + return 46; break; case 3: - return 45; + return 47; break; case 4: - return 46; + return 48; break; case 5: - return 47; + return 49; break; case 6: /* skip whitespace */ break; @@ -272,27 +285,27 @@ class BnfLexer extends lexer_1.JisonLexer { break; case 9: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2); - return 40; + return 42; break; case 10: - return 41; + return 43; break; case 11: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2); - return 42; + return 44; break; case 12: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2); - return 42; + return 44; break; case 13: - return 28; + return 30; break; case 14: - return 30; + return 32; break; case 15: - return 31; + return 33; break; case 16: this.pushState(ebnf ? 'ebnf' : 'bnf'); @@ -304,88 +317,91 @@ class BnfLexer extends lexer_1.JisonLexer { ebnf = yy.options.ebnf = true; break; case 18: - return 48; + return 50; break; case 19: return 11; break; case 20: - return 22; + return 24; break; case 21: - return 23; + return 25; break; case 22: - return 24; + return 26; break; case 23: - return 20; + return 22; break; case 24: - return 18; + return 19; break; case 25: + return 21; + break; + case 26: return 13; break; - case 26: /* ignore unrecognized decl */ + case 27: /* ignore unrecognized decl */ break; - case 27: /* ignore type */ + case 28: /* ignore type */ break; - case 28: + case 29: yy_.yytext = yy_.yytext.substr(2, yy_.yyleng - 4); return 15; break; - case 29: + case 30: yy_.yytext = yy_.yytext.substr(2, yy_.yytext.length - 4); return 15; break; - case 30: + case 31: yy.depth = 0; this.pushState('action'); - return 49; + return 51; break; - case 31: + case 32: yy_.yytext = yy_.yytext.substr(2, yy_.yyleng - 2); - return 52; - break; - case 32: /* ignore bad characters */ + return 54; break; - case 33: - return 8; + case 33: /* ignore bad characters */ break; case 34: - return 54; + return 8; break; case 35: - return 54; + return 56; break; case 36: - return 54; // regexp with braces or quotes (and no spaces) + return 56; break; case 37: - return 54; + return 56; // regexp with braces or quotes (and no spaces) break; case 38: - return 54; + return 56; break; case 39: - return 54; + return 56; break; case 40: - return 54; + return 56; break; case 41: - yy.depth++; - return 49; + return 56; break; case 42: + yy.depth++; + return 51; + break; + case 43: if (yy.depth == 0) this.begin(ebnf ? 'ebnf' : 'bnf'); else yy.depth--; - return 51; + return 53; break; - case 43: + case 44: return 9; break; } diff --git a/packages/ebnf-parser/lib/bnf-parser.js.map b/packages/ebnf-parser/lib/bnf-parser.js.map index 0e8163a7..b8bdd80d 100644 --- a/packages/ebnf-parser/lib/bnf-parser.js.map +++ b/packages/ebnf-parser/lib/bnf-parser.js.map @@ -1 +1 @@ -{"version":3,"file":"bnf-parser.js","sourceRoot":"","sources":["../src/bnf-parser.ts"],"names":[],"mappings":"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C,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAA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AAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,E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"} \ No newline at end of file +{"version":3,"file":"bnf-parser.js","sourceRoot":"","sources":["../src/bnf-parser.ts"],"names":[],"mappings":"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C,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC;QAE5a,mBAAc,GAAwB,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;QAKxD,0DAA0D;QAC1D,MAAM,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QACvgB,MAAM,CAAC,GAAG,oBAAW,CAAC,gBAAgB,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,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"} \ No newline at end of file diff --git a/packages/ebnf-parser/lib/bnf-types.d.ts b/packages/ebnf-parser/lib/bnf-types.d.ts index 72dfd332..b4a11ff2 100644 --- a/packages/ebnf-parser/lib/bnf-types.d.ts +++ b/packages/ebnf-parser/lib/bnf-types.d.ts @@ -9,6 +9,7 @@ export interface Grammar { declaration_list: Array<[string, string]>; declaration: TokenAction[]; options: TokenAction[]; + type: TokenAction[]; parse_param: TokenAction[]; operator: TokenAction[]; associativity: TokenAction[]; diff --git a/packages/ebnf-parser/lib/bnf-types.d.ts.map b/packages/ebnf-parser/lib/bnf-types.d.ts.map index f9814d52..a76b5ba0 100644 --- a/packages/ebnf-parser/lib/bnf-types.d.ts.map +++ b/packages/ebnf-parser/lib/bnf-types.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"bnf-types.d.ts","sourceRoot":"","sources":["../src/bnf-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3B,kBAAkB,EAAE,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IACjC,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAE,CAAE,iBAAiB,EAAE,UAAU,CAAE,CAAE,CAAC;IAC/C,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,EAAE,EAAE,WAAW,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,oBAAoB,EAAE,WAAW,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,GAAG,EAAE,OAAO,CAAC;CACd"} \ No newline at end of file +{"version":3,"file":"bnf-types.d.ts","sourceRoot":"","sources":["../src/bnf-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3B,kBAAkB,EAAE,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IACjC,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAE,CAAE,iBAAiB,EAAE,UAAU,CAAE,CAAE,CAAC;IAC/C,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,EAAE,EAAE,WAAW,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,oBAAoB,EAAE,WAAW,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,GAAG,EAAE,OAAO,CAAC;CACd"} \ No newline at end of file diff --git a/packages/ebnf-parser/lib/bnf-types.js.map b/packages/ebnf-parser/lib/bnf-types.js.map index 2f643071..d7e6c512 100644 --- a/packages/ebnf-parser/lib/bnf-types.js.map +++ b/packages/ebnf-parser/lib/bnf-types.js.map @@ -1 +1 @@ -{"version":3,"file":"bnf-types.js","sourceRoot":"","sources":["../src/bnf-types.ts"],"names":[],"mappings":";;AAGC,CAAC;AA8BD,CAAC;AAID,CAAC"} \ No newline at end of file +{"version":3,"file":"bnf-types.js","sourceRoot":"","sources":["../src/bnf-types.ts"],"names":[],"mappings":";;AAGC,CAAC;AA+BD,CAAC;AAID,CAAC"} \ No newline at end of file diff --git a/packages/ebnf-parser/lib/ebnf-parser.d.ts b/packages/ebnf-parser/lib/ebnf-parser.d.ts index 4352a83c..206b8539 100644 --- a/packages/ebnf-parser/lib/ebnf-parser.d.ts +++ b/packages/ebnf-parser/lib/ebnf-parser.d.ts @@ -1,8 +1,12 @@ import { JisonParser, JisonParserApi, StateType, SymbolsType, TerminalsType, ProductionsType } from '@ts-jison/parser'; /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ +type YY_ = { + yytext: string; + yyleng: number; +}; export declare class EbnfParser extends JisonParser implements JisonParserApi { $?: any; symbols_: SymbolsType; @@ -12,15 +16,16 @@ export declare class EbnfParser extends JisonParser implements JisonParserApi { defaultActions: { [key: number]: any; }; - constructor(yy?: {}, lexer?: EbnfLexer); + constructor(yy?: any, lexer?: EbnfLexer); performAction(yytext: string, yyleng: number, yylineno: number, yy: any, yystate: number, $$: any, _$: any): any; } import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; export declare class EbnfLexer extends JisonLexer implements JisonLexerApi { options: any; - constructor(yy?: {}); + constructor(yy?: any); rules: RegExp[]; conditions: any; - performAction(yy: any, yy_: any, $avoiding_name_collisions: any, YY_START: any): any; + performAction(yy: any, yy_: YY_, $avoiding_name_collisions: any, YY_START: any): any; } +export {}; //# sourceMappingURL=ebnf-parser.d.ts.map \ No newline at end of file diff --git a/packages/ebnf-parser/lib/ebnf-parser.d.ts.map b/packages/ebnf-parser/lib/ebnf-parser.d.ts.map index 31566474..bca34994 100644 --- a/packages/ebnf-parser/lib/ebnf-parser.d.ts.map +++ b/packages/ebnf-parser/lib/ebnf-parser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ebnf-parser.d.ts","sourceRoot":"","sources":["../src/ebnf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvH;;;GAGG;AACH,qBAAa,UAAW,SAAQ,WAAY,YAAW,cAAc;IACjE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAAuM;IAC5N,UAAU,EAAE,aAAa,CAAuF;IAChH,YAAY,EAAE,eAAe,CAAyF;IACtH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAAa;gBAEnC,EAAE,KAAK,EAAE,KAAK,YAAoB;IAS/C,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CAiCvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,SAAU,SAAQ,UAAW,YAAW,aAAa;IAC9D,OAAO,EAAE,GAAG,CAAyB;gBACxB,EAAE,KAAK;IAIpB,KAAK,EAAE,MAAM,EAAE,CAcb;IACF,UAAU,EAAE,GAAG,CAAwE;IACvF,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA+BjF"} \ No newline at end of file +{"version":3,"file":"ebnf-parser.d.ts","sourceRoot":"","sources":["../src/ebnf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvH;;;GAGG;AACH,KAAK,GAAG,GAAG;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAC;AACF,qBAAa,UAAW,SAAQ,WAAY,YAAW,cAAc;IACjE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAAuM;IAC5N,UAAU,EAAE,aAAa,CAAuF;IAChH,YAAY,EAAE,eAAe,CAAyF;IACtH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAAa;gBAEnC,EAAE,GAAE,GAAQ,EAAE,KAAK,YAAoB;IASpD,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CAiCvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,SAAU,SAAQ,UAAW,YAAW,aAAa;IAC9D,OAAO,EAAE,GAAG,CAAyB;gBACxB,EAAE,GAAE,GAAQ;IAIzB,KAAK,EAAE,MAAM,EAAE,CAcb;IACF,UAAU,EAAE,GAAG,CAAwE;IACvF,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA+BjF"} \ No newline at end of file diff --git a/packages/ebnf-parser/lib/ebnf-parser.js b/packages/ebnf-parser/lib/ebnf-parser.js index 83069cfd..5c17a73f 100644 --- a/packages/ebnf-parser/lib/ebnf-parser.js +++ b/packages/ebnf-parser/lib/ebnf-parser.js @@ -2,10 +2,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.EbnfLexer = exports.EbnfParser = void 0; const parser_1 = require("@ts-jison/parser"); -/** - * parser generated by @ts-jison/parser-generator 0.3.0 - * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. - */ class EbnfParser extends parser_1.JisonParser { constructor(yy = {}, lexer = new EbnfLexer(yy)) { super(yy, lexer); @@ -56,7 +52,7 @@ class EbnfParser extends parser_1.JisonParser { } } exports.EbnfParser = EbnfParser; -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ const lexer_1 = require("@ts-jison/lexer"); class EbnfLexer extends lexer_1.JisonLexer { constructor(yy = {}) { diff --git a/packages/ebnf-parser/lib/ebnf-parser.js.map b/packages/ebnf-parser/lib/ebnf-parser.js.map index 729e0233..d7d82510 100644 --- a/packages/ebnf-parser/lib/ebnf-parser.js.map +++ b/packages/ebnf-parser/lib/ebnf-parser.js.map @@ -1 +1 @@ -{"version":3,"file":"ebnf-parser.js","sourceRoot":"","sources":["../src/ebnf-parser.ts"],"names":[],"mappings":";;;AAAA,6CAAuH;AACvH;;;GAGG;AACH,MAAa,UAAW,SAAQ,oBAAW;IAQvC,YAAa,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;QAC7C,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAPnB,aAAQ,GAAgB,EAAC,OAAO,EAAC,CAAC,EAAC,YAAY,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,mBAAmB,EAAC,CAAC,EAAC,YAAY,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC;QAC5N,eAAU,GAAkB,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC;QAChH,iBAAY,GAAoB,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC;QAEtH,mBAAc,GAAwB,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;QAK9C,0DAA0D;QAC1D,MAAM,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;QACxI,MAAM,CAAC,GAAG,oBAAW,CAAC,gBAAgB,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC,CAAC;IAC/Y,CAAC;IAED,aAAa,CAAE,MAAa,EAAE,MAAa,EAAE,QAAe,EAAE,EAAM,EAAE,OAAc,CAAC,eAAe,EAAE,EAAM,CAAC,YAAY,EAAE,EAAM,CAAC,YAAY;QAClJ,mBAAmB;QACT,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,QAAQ,OAAO,EAAE;YACzB,KAAK,CAAC;gBACL,OAAO,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC;gBACjB,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,MAAM;YACN,KAAK,CAAC;gBACL,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM;YACN,KAAK,CAAC;gBACL,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,EAAE,CAAC,EAAE,CAAC;oBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC;;oBAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC;gBACjE,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM;YACN,KAAK,CAAC;gBACL,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM;SACG;IACL,CAAC;CACJ;AAlDD,gCAkDC;AAGD,kDAAkD;AAClD,2CAA4D;AAE5D,MAAa,SAAU,SAAQ,kBAAU;IAErC,YAAa,EAAE,GAAG,EAAE;QAChB,KAAK,CAAC,EAAE,CAAC,CAAC;QAFd,YAAO,GAAQ,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC;QAKrC,UAAK,GAAa;YACd,UAAU;YACV,6BAA6B;YAC7B,iCAAiC;YACjC,cAAc;YACd,SAAS;YACT,YAAY;YACZ,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,QAAQ;SACX,CAAC;QACF,eAAU,GAAQ,EAAC,SAAS,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,CAAA;IAjBvF,CAAC;IAkBD,aAAa,CAAE,EAAM,EAAC,GAAO,EAAC,yBAA6B,EAAC,QAAY;QAClE,IAAI,OAAO,GAAC,QAAQ,CAAC;QACvB,QAAO,yBAAyB,EAAE;YACtC,KAAK,CAAC,EAAC,qBAAqB;gBAC1B,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAChE,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,CAAC;gBAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,EAAE;gBAAC,OAAO,CAAC,CAAC;gBACf,MAAM;YACR,KAAK,EAAE;gBAAC,OAAO,EAAE,CAAC;gBAChB,MAAM;YACR,KAAK,EAAE;gBAAC,OAAO,CAAC,CAAC;gBACf,MAAM;SACH;IACL,CAAC;CACJ;AArDD,8BAqDC"} \ No newline at end of file +{"version":3,"file":"ebnf-parser.js","sourceRoot":"","sources":["../src/ebnf-parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ebnf-parser/src/bnf-parser.ts b/packages/ebnf-parser/src/bnf-parser.ts index e673695d..4702dfba 100644 --- a/packages/ebnf-parser/src/bnf-parser.ts +++ b/packages/ebnf-parser/src/bnf-parser.ts @@ -1,6 +1,6 @@ import { JisonParser, JisonParserApi, StateType, SymbolsType, TerminalsType, ProductionsType } from '@ts-jison/parser'; /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ @@ -19,19 +19,19 @@ function extend (json: Bnf, grammar: Grammar): BnfWithGrammar { export class BnfParser extends JisonParser implements JisonParserApi { $?: any; - symbols_: SymbolsType = {"error":2,"spec":3,"declaration_list":4,"%%":5,"grammar":6,"optional_end_block":7,"EOF":8,"CODE":9,"declaration":10,"START":11,"id":12,"LEX_BLOCK":13,"operator":14,"ACTION":15,"parse_param":16,"options":17,"OPTIONS":18,"token_list":19,"PARSE_PARAM":20,"associativity":21,"LEFT":22,"RIGHT":23,"NONASSOC":24,"symbol":25,"production_list":26,"production":27,":":28,"handle_list":29,";":30,"|":31,"handle_action":32,"handle":33,"prec":34,"action":35,"expression_suffix":36,"handle_sublist":37,"expression":38,"suffix":39,"ALIAS":40,"ID":41,"STRING":42,"(":43,")":44,"*":45,"?":46,"+":47,"PREC":48,"{":49,"action_body":50,"}":51,"ARROW_ACTION":52,"action_comments_body":53,"ACTION_BODY":54,"$accept":0,"$end":1}; - terminals_: TerminalsType = {2:"error",5:"%%",8:"EOF",9:"CODE",11:"START",13:"LEX_BLOCK",15:"ACTION",18:"OPTIONS",20:"PARSE_PARAM",22:"LEFT",23:"RIGHT",24:"NONASSOC",28:":",30:";",31:"|",40:"ALIAS",41:"ID",42:"STRING",43:"(",44:")",45:"*",46:"?",47:"+",48:"PREC",49:"{",51:"}",52:"ARROW_ACTION",54:"ACTION_BODY"}; - productions_: ProductionsType = [0,[3,5],[3,6],[7,0],[7,1],[4,2],[4,0],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[17,2],[16,2],[14,2],[21,1],[21,1],[21,1],[19,2],[19,1],[6,1],[26,2],[26,1],[27,4],[29,3],[29,1],[32,3],[33,2],[33,0],[37,3],[37,1],[36,3],[36,2],[38,1],[38,1],[38,3],[39,0],[39,1],[39,1],[39,1],[34,2],[34,0],[25,1],[25,1],[12,1],[35,3],[35,1],[35,1],[35,0],[50,0],[50,1],[50,5],[50,4],[53,1],[53,2]]; + symbols_: SymbolsType = {"error":2,"spec":3,"declaration_list":4,"%%":5,"grammar":6,"optional_end_block":7,"EOF":8,"CODE":9,"declaration":10,"START":11,"id":12,"LEX_BLOCK":13,"operator":14,"ACTION":15,"parse_param":16,"options":17,"type":18,"OPTIONS":19,"token_list":20,"TYPES":21,"PARSE_PARAM":22,"associativity":23,"LEFT":24,"RIGHT":25,"NONASSOC":26,"symbol":27,"production_list":28,"production":29,":":30,"handle_list":31,";":32,"|":33,"handle_action":34,"handle":35,"prec":36,"action":37,"expression_suffix":38,"handle_sublist":39,"expression":40,"suffix":41,"ALIAS":42,"ID":43,"STRING":44,"(":45,")":46,"*":47,"?":48,"+":49,"PREC":50,"{":51,"action_body":52,"}":53,"ARROW_ACTION":54,"action_comments_body":55,"ACTION_BODY":56,"$accept":0,"$end":1}; + terminals_: TerminalsType = {2:"error",5:"%%",8:"EOF",9:"CODE",11:"START",13:"LEX_BLOCK",15:"ACTION",19:"OPTIONS",21:"TYPES",22:"PARSE_PARAM",24:"LEFT",25:"RIGHT",26:"NONASSOC",30:":",32:";",33:"|",42:"ALIAS",43:"ID",44:"STRING",45:"(",46:")",47:"*",48:"?",49:"+",50:"PREC",51:"{",53:"}",54:"ARROW_ACTION",56:"ACTION_BODY"}; + productions_: ProductionsType = [0,[3,5],[3,6],[7,0],[7,1],[4,2],[4,0],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[17,2],[18,2],[16,2],[14,2],[23,1],[23,1],[23,1],[20,2],[20,1],[6,1],[28,2],[28,1],[29,4],[31,3],[31,1],[34,3],[35,2],[35,0],[39,3],[39,1],[38,3],[38,2],[40,1],[40,1],[40,3],[41,0],[41,1],[41,1],[41,1],[36,2],[36,0],[27,1],[27,1],[12,1],[37,3],[37,1],[37,1],[37,0],[52,0],[52,1],[52,5],[52,4],[55,1],[55,2]]; table: Array; - defaultActions: {[key:number]: any} = {34:[2,1],39:[2,2]}; + defaultActions: {[key:number]: any} = {37:[2,1],42:[2,2]}; - constructor (yy = {}, lexer = new BnfLexer(yy)) { + constructor (yy: any = {}, lexer = new BnfLexer(yy)) { super(yy, lexer); // shorten static method to just `o` for terse STATE_TABLE - const $V0=[5,11,13,15,18,20,22,23,24],$V1=[1,21],$V2=[1,26],$V3=[41,42],$V4=[5,8,41],$V5=[5,11,13,15,18,20,22,23,24,41,42],$V6=[5,11,13,15,18,20,22,23,24,30,31,41,42,49,52],$V7=[15,30,31,41,42,43,48,49,52],$V8=[2,29],$V9=[30,31],$Va=[15,30,31,49,52],$Vb=[1,46],$Vc=[1,47],$Vd=[1,48],$Ve=[15,30,31,41,42,43,44,48,49,52],$Vf=[15,30,31,40,41,42,43,44,48,49,52],$Vg=[15,30,31,40,41,42,43,44,45,46,47,48,49,52],$Vh=[31,41,42,43,44],$Vi=[49,51],$Vj=[2,50],$Vk=[1,63],$Vl=[31,44],$Vm=[1,68],$Vn=[1,69],$Vo=[49,51,54]; + const $V0=[5,11,13,15,19,21,22,24,25,26],$V1=[1,23],$V2=[1,28],$V3=[43,44],$V4=[5,8,43],$V5=[5,11,13,15,19,21,22,24,25,26,43,44],$V6=[5,11,13,15,19,21,22,24,25,26,32,33,43,44,51,54],$V7=[15,32,33,43,44,45,50,51,54],$V8=[2,31],$V9=[32,33],$Va=[15,32,33,51,54],$Vb=[1,49],$Vc=[1,50],$Vd=[1,51],$Ve=[15,32,33,43,44,45,46,50,51,54],$Vf=[15,32,33,42,43,44,45,46,50,51,54],$Vg=[15,32,33,42,43,44,45,46,47,48,49,50,51,54],$Vh=[33,43,44,45,46],$Vi=[51,53],$Vj=[2,52],$Vk=[1,66],$Vl=[33,46],$Vm=[1,71],$Vn=[1,72],$Vo=[51,53,56]; const o = JisonParser.expandParseTable; - this.table = [o($V0,[2,6],{3:1,4:2}),{1:[3]},{5:[1,3],10:4,11:[1,5],13:[1,6],14:7,15:[1,8],16:9,17:10,18:[1,13],20:[1,12],21:11,22:[1,14],23:[1,15],24:[1,16]},{6:17,12:20,26:18,27:19,41:$V1},o($V0,[2,5]),{12:22,41:$V1},o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),o($V0,[2,12]),{12:25,19:23,25:24,41:$V1,42:$V2},{12:25,19:27,25:24,41:$V1,42:$V2},{12:25,19:28,25:24,41:$V1,42:$V2},o($V3,[2,16]),o($V3,[2,17]),o($V3,[2,18]),{5:[1,30],7:29,8:[2,3]},o([5,8],[2,21],{12:20,27:31,41:$V1}),o($V4,[2,23]),{28:[1,32]},o([5,11,13,15,18,20,22,23,24,28,30,31,41,42,49,52],[2,45]),o($V0,[2,7]),o($V0,[2,15],{12:25,25:33,41:$V1,42:$V2}),o($V5,[2,20]),o($V6,[2,43]),o($V6,[2,44]),o($V0,[2,14],{12:25,25:33,41:$V1,42:$V2}),o($V0,[2,13],{12:25,25:33,41:$V1,42:$V2}),{8:[1,34]},{8:[2,4],9:[1,35]},o($V4,[2,22]),o($V7,$V8,{29:36,32:37,33:38}),o($V5,[2,19]),{1:[2,1]},{8:[1,39]},{30:[1,40],31:[1,41]},o($V9,[2,26]),o($Va,[2,42],{34:42,36:43,38:45,41:$Vb,42:$Vc,43:$Vd,48:[1,44]}),{1:[2,2]},o($V4,[2,24]),o($V7,$V8,{33:38,32:49}),o($V9,[2,49],{35:50,15:[1,52],49:[1,51],52:[1,53]}),o($Ve,[2,28]),{12:25,25:54,41:$V1,42:$V2},o($Vf,[2,37],{39:55,45:[1,56],46:[1,57],47:[1,58]}),o($Vg,[2,34]),o($Vg,[2,35]),o($Vh,$V8,{37:59,33:60}),o($V9,[2,25]),o($V9,[2,27]),o($Vi,$Vj,{50:61,53:62,54:$Vk}),o($V9,[2,47]),o($V9,[2,48]),o($Va,[2,41]),o($Ve,[2,33],{40:[1,64]}),o($Vf,[2,38]),o($Vf,[2,39]),o($Vf,[2,40]),{31:[1,66],44:[1,65]},o($Vl,[2,31],{36:43,38:45,41:$Vb,42:$Vc,43:$Vd}),{49:$Vm,51:[1,67]},o($Vi,[2,51],{54:$Vn}),o($Vo,[2,54]),o($Ve,[2,32]),o($Vg,[2,36]),o($Vh,$V8,{33:70}),o($V9,[2,46]),o($Vi,$Vj,{53:62,50:71,54:$Vk}),o($Vo,[2,55]),o($Vl,[2,30],{36:43,38:45,41:$Vb,42:$Vc,43:$Vd}),{49:$Vm,51:[1,72]},o($Vi,[2,53],{53:73,54:$Vk}),o($Vi,[2,52],{54:$Vn})]; + this.table = [o($V0,[2,6],{3:1,4:2}),{1:[3]},{5:[1,3],10:4,11:[1,5],13:[1,6],14:7,15:[1,8],16:9,17:10,18:11,19:[1,14],21:[1,15],22:[1,13],23:12,24:[1,16],25:[1,17],26:[1,18]},{6:19,12:22,28:20,29:21,43:$V1},o($V0,[2,5]),{12:24,43:$V1},o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),o($V0,[2,12]),o($V0,[2,13]),{12:27,20:25,27:26,43:$V1,44:$V2},{12:27,20:29,27:26,43:$V1,44:$V2},{12:27,20:30,27:26,43:$V1,44:$V2},{12:27,20:31,27:26,43:$V1,44:$V2},o($V3,[2,18]),o($V3,[2,19]),o($V3,[2,20]),{5:[1,33],7:32,8:[2,3]},o([5,8],[2,23],{12:22,29:34,43:$V1}),o($V4,[2,25]),{30:[1,35]},o([5,11,13,15,19,21,22,24,25,26,30,32,33,43,44,51,54],[2,47]),o($V0,[2,7]),o($V0,[2,17],{12:27,27:36,43:$V1,44:$V2}),o($V5,[2,22]),o($V6,[2,45]),o($V6,[2,46]),o($V0,[2,16],{12:27,27:36,43:$V1,44:$V2}),o($V0,[2,14],{12:27,27:36,43:$V1,44:$V2}),o($V0,[2,15],{12:27,27:36,43:$V1,44:$V2}),{8:[1,37]},{8:[2,4],9:[1,38]},o($V4,[2,24]),o($V7,$V8,{31:39,34:40,35:41}),o($V5,[2,21]),{1:[2,1]},{8:[1,42]},{32:[1,43],33:[1,44]},o($V9,[2,28]),o($Va,[2,44],{36:45,38:46,40:48,43:$Vb,44:$Vc,45:$Vd,50:[1,47]}),{1:[2,2]},o($V4,[2,26]),o($V7,$V8,{35:41,34:52}),o($V9,[2,51],{37:53,15:[1,55],51:[1,54],54:[1,56]}),o($Ve,[2,30]),{12:27,27:57,43:$V1,44:$V2},o($Vf,[2,39],{41:58,47:[1,59],48:[1,60],49:[1,61]}),o($Vg,[2,36]),o($Vg,[2,37]),o($Vh,$V8,{39:62,35:63}),o($V9,[2,27]),o($V9,[2,29]),o($Vi,$Vj,{52:64,55:65,56:$Vk}),o($V9,[2,49]),o($V9,[2,50]),o($Va,[2,43]),o($Ve,[2,35],{42:[1,67]}),o($Vf,[2,40]),o($Vf,[2,41]),o($Vf,[2,42]),{33:[1,69],46:[1,68]},o($Vl,[2,33],{38:46,40:48,43:$Vb,44:$Vc,45:$Vd}),{51:$Vm,53:[1,70]},o($Vi,[2,53],{56:$Vn}),o($Vo,[2,56]),o($Ve,[2,34]),o($Vg,[2,38]),o($Vh,$V8,{35:73}),o($V9,[2,48]),o($Vi,$Vj,{55:65,52:74,56:$Vk}),o($Vo,[2,57]),o($Vl,[2,32],{38:46,40:48,43:$Vb,44:$Vc,45:$Vd}),{51:$Vm,53:[1,75]},o($Vi,[2,55],{55:76,56:$Vk}),o($Vi,[2,54],{56:$Vn})]; } performAction (yytext:string, yyleng:number, yylineno:number, yy:any, yystate:number /* action[1] */, $$:any /* vstack */, _$:any /* lstack */): any { @@ -75,28 +75,34 @@ break; case 12: this.$ = {options: $$[$0]}; break; -case 13: case 14: case 21: case 43: case 47: case 51: +case 13: +this.$ = {type: $$[$0]}; +break; +case 14: case 16: case 23: case 45: case 49: case 53: this.$ = $$[$0]; break; case 15: + {const t = $$[$0-1].substring($$[$0-1].indexOf('<') + 1, $$[$0-1].lastIndexOf('>')); this.$ = {}; for (const token of $$[$0]) {this.$[token] = t;}} +break; +case 17: this.$ = [$$[$0-1]]; this.$.push.apply(this.$, $$[$0]); break; -case 16: +case 18: this.$ = 'left'; break; -case 17: +case 19: this.$ = 'right'; break; -case 18: +case 20: this.$ = 'nonassoc'; break; -case 19: +case 21: this.$ = $$[$0-1]; this.$.push($$[$0]); break; -case 20: case 26: +case 22: case 28: this.$ = [$$[$0]]; break; -case 22: +case 24: this.$ = $$[$0-1]; if ($$[$0][0] in this.$) @@ -105,16 +111,16 @@ case 22: this.$[$$[$0][0]] = $$[$0][1]; break; -case 23: +case 25: this.$ = {}; this.$[$$[$0][0]] = $$[$0][1]; break; -case 24: +case 26: this.$ = [$$[$0-3], $$[$0-1]]; break; -case 25: +case 27: this.$ = $$[$0-2]; this.$.push($$[$0]); break; -case 27: +case 29: this.$ = [($$[$0-2].length ? $$[$0-2].join(' ') : '')]; if($$[$0]) this.$.push($$[$0]); @@ -122,64 +128,64 @@ case 27: if (this.$.length === 1) this.$ = this.$[0]; break; -case 28: +case 30: this.$ = $$[$0-1]; this.$.push($$[$0]) break; -case 29: +case 31: this.$ = []; break; -case 30: +case 32: this.$ = $$[$0-2]; this.$.push($$[$0].join(' ')); break; -case 31: +case 33: this.$ = [$$[$0].join(' ')]; break; -case 32: +case 34: this.$ = $$[$0-2] + $$[$0-1] + "[" + $$[$0] + "]"; break; -case 33: +case 35: this.$ = $$[$0-1] + $$[$0]; break; -case 34: +case 36: this.$ = $$[$0]; break; -case 35: +case 37: this.$ = ebnf ? "'" + $$[$0] + "'" : $$[$0]; break; -case 36: +case 38: this.$ = '(' + $$[$0-1].join(' | ') + ')'; break; -case 37: +case 39: this.$ = '' break; -case 41: +case 43: this.$ = {prec: $$[$0]}; break; -case 42: +case 44: this.$ = null; break; -case 44: case 45: +case 46: case 47: this.$ = yytext; break; -case 46: +case 48: this.$ = $$[$0-1]; break; -case 48: +case 50: this.$ = '$$ =' + $$[$0] + ';'; break; -case 49: case 50: +case 51: case 52: this.$ = ''; break; -case 52: +case 54: this.$ = $$[$0-4] + $$[$0-3] + $$[$0-2] + $$[$0-1] + $$[$0]; break; -case 53: +case 55: this.$ = $$[$0-3] + $$[$0-2] + $$[$0-1] + $$[$0]; break; -case 54: +case 56: this.$ = yytext; break; -case 55: +case 57: this.$ = $$[$0-1]+$$[$0]; break; } @@ -187,12 +193,17 @@ break; } -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; +type YY_ = { + yytext: string; + yyleng: number; + yylineno: number; +}; export class BnfLexer extends JisonLexer implements JisonLexerApi { options: any = {"moduleName":"Bnf"}; - constructor (yy = {}) { + constructor (yy: any = {}) { super(yy); } @@ -222,6 +233,7 @@ export class BnfLexer extends JisonLexer implements JisonLexerApi { /^(?:%nonassoc\b)/, /^(?:%parse-param\b)/, /^(?:%options\b)/, + /^(?:%type[\W]+<[^<>]*(?:<[^<>]*>)*[^<>]*>)/, /^(?:[%]lex[\w\W]*?[/]lex\b)/, /^(?:%[a-zA-Z]+[^\r\n]*)/, /^(?:<[a-zA-Z]*>)/, @@ -242,21 +254,21 @@ export class BnfLexer extends JisonLexer implements JisonLexerApi { /^(?:\})/, /^(?:(?:.|\n|\r)+)/ ]; - conditions: any = {"bnf":{"rules":[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"inclusive":true},"ebnf":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"inclusive":true},"action":{"rules":[33,34,35,36,37,38,39,40,41,42],"inclusive":false},"code":{"rules":[33,43],"inclusive":false},"INITIAL":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"inclusive":true}} - performAction (yy:any,yy_:any,$avoiding_name_collisions:any,YY_START:any): any { + conditions: any = {"bnf":{"rules":[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"inclusive":true},"ebnf":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"inclusive":true},"action":{"rules":[34,35,36,37,38,39,40,41,42,43],"inclusive":false},"code":{"rules":[34,44],"inclusive":false},"INITIAL":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"inclusive":true}} + performAction (yy:any,yy_:YY_,$avoiding_name_collisions:any,YY_START:any): any { var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:this.pushState('code');return 5; break; - case 1:return 43; + case 1:return 45; break; - case 2:return 44; + case 2:return 46; break; - case 3:return 45; + case 3:return 47; break; - case 4:return 46; + case 4:return 48; break; - case 5:return 47; + case 5:return 49; break; case 6:/* skip whitespace */ break; @@ -264,75 +276,77 @@ export class BnfLexer extends JisonLexer implements JisonLexerApi { break; case 8:/* skip comment */ break; - case 9:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 40; + case 9:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 42; break; - case 10:return 41; + case 10:return 43; break; - case 11:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 42; + case 11:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 44; break; - case 12:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 42; + case 12:yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 44; break; - case 13:return 28; + case 13:return 30; break; - case 14:return 30; + case 14:return 32; break; - case 15:return 31; + case 15:return 33; break; case 16:this.pushState(ebnf ? 'ebnf' : 'bnf'); return 5; break; case 17:if (!yy.options) yy.options = {}; ebnf = yy.options.ebnf = true; break; - case 18:return 48; + case 18:return 50; break; case 19:return 11; break; - case 20:return 22; + case 20:return 24; + break; + case 21:return 25; break; - case 21:return 23; + case 22:return 26; break; - case 22:return 24; + case 23:return 22; break; - case 23:return 20; + case 24:return 19; break; - case 24:return 18; + case 25:return 21; break; - case 25:return 13; + case 26:return 13; break; - case 26:/* ignore unrecognized decl */ + case 27:/* ignore unrecognized decl */ break; - case 27:/* ignore type */ + case 28:/* ignore type */ break; - case 28:yy_.yytext = yy_.yytext.substr(2, yy_.yyleng-4); return 15; + case 29:yy_.yytext = yy_.yytext.substr(2, yy_.yyleng-4); return 15; break; - case 29:yy_.yytext = yy_.yytext.substr(2, yy_.yytext.length-4); return 15; + case 30:yy_.yytext = yy_.yytext.substr(2, yy_.yytext.length-4); return 15; break; - case 30:yy.depth = 0; this.pushState('action'); return 49; + case 31:yy.depth = 0; this.pushState('action'); return 51; break; - case 31:yy_.yytext = yy_.yytext.substr(2, yy_.yyleng-2); return 52; + case 32:yy_.yytext = yy_.yytext.substr(2, yy_.yyleng-2); return 54; break; - case 32:/* ignore bad characters */ + case 33:/* ignore bad characters */ break; - case 33:return 8; + case 34:return 8; break; - case 34:return 54; + case 35:return 56; break; - case 35:return 54; + case 36:return 56; break; - case 36:return 54; // regexp with braces or quotes (and no spaces) + case 37:return 56; // regexp with braces or quotes (and no spaces) break; - case 37:return 54; + case 38:return 56; break; - case 38:return 54; + case 39:return 56; break; - case 39:return 54; + case 40:return 56; break; - case 40:return 54; + case 41:return 56; break; - case 41:yy.depth++; return 49; + case 42:yy.depth++; return 51; break; - case 42:if (yy.depth==0) this.begin(ebnf ? 'ebnf' : 'bnf'); else yy.depth--; return 51; + case 43:if (yy.depth==0) this.begin(ebnf ? 'ebnf' : 'bnf'); else yy.depth--; return 53; break; - case 43:return 9; + case 44:return 9; break; } } diff --git a/packages/ebnf-parser/src/bnf-types.ts b/packages/ebnf-parser/src/bnf-types.ts index 60591b9c..51c844a2 100644 --- a/packages/ebnf-parser/src/bnf-types.ts +++ b/packages/ebnf-parser/src/bnf-types.ts @@ -11,6 +11,7 @@ export interface Grammar { declaration_list: Array<[string, string]>, // init, assignment, e.g. [ ['declaration_list declaration', '$$ = $1; yy.addDeclaration($$, $2);'], [ '', '$$ = {};' ] ] declaration: TokenAction[], // e.g. [ [ 'START id', '$$ = {start: $2};' ], [ 'LEX_BLOCK', '$$ = {lex: $1};' ], ... ] options: TokenAction[], // [ [ 'OPTIONS token_list', '$$ = $2;' ] ], + type: TokenAction[], // [ [ 'TYPE token_list', '{const t = $1.substr($1.indexOf('<') + 1, $1.length - 1);for (const token of $2) {$$[$2] = t;}}' ] ], parse_param: TokenAction[], // [ [ 'PARSE_PARAM token_list', '$$ = $2;' ] ], operator: TokenAction[], // [ [ 'associativity token_list', '$$ = [$1]; $$.push.apply($$, $2);' ] ], associativity: TokenAction[], // [ [ 'LEFT', "$$ = 'left';" ] ] diff --git a/packages/ebnf-parser/src/bnf.jison b/packages/ebnf-parser/src/bnf.jison index a01749b6..12459c55 100644 --- a/packages/ebnf-parser/src/bnf.jison +++ b/packages/ebnf-parser/src/bnf.jison @@ -35,6 +35,8 @@ id [a-zA-Z][a-zA-Z0-9_-]* "%nonassoc" return 'NONASSOC'; "%parse-param" return 'PARSE_PARAM'; "%options" return 'OPTIONS'; +"%type"[\W]+"<"[^<>]*("<"[^<>]*">")*[^<>]*">" + return 'TYPES'; /* []s around '%' and '/' allow jison to parse its on grammar */ [%]"lex"[\w\W]*?[/]"lex" return 'LEX_BLOCK'; @@ -113,6 +115,8 @@ declaration {$$ = {parseParam: $1};} | options {$$ = {options: $1};} + | type + {$$ = {type: $1};} ; options @@ -120,6 +124,11 @@ options {$$ = $2;} ; +type + : TYPES token_list + { {const t = $1.substring($1.indexOf('<') + 1, $1.lastIndexOf('>')); $$ = {}; for (const token of $2) {$$[token] = t;}} } + ; + parse_param : PARSE_PARAM token_list {$$ = $2;} diff --git a/packages/ebnf-parser/src/ebnf-parser.ts b/packages/ebnf-parser/src/ebnf-parser.ts index 01a40409..7f598651 100644 --- a/packages/ebnf-parser/src/ebnf-parser.ts +++ b/packages/ebnf-parser/src/ebnf-parser.ts @@ -1,8 +1,12 @@ import { JisonParser, JisonParserApi, StateType, SymbolsType, TerminalsType, ProductionsType } from '@ts-jison/parser'; /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ +type YY_ = { + yytext: string; + yyleng: number +}; export class EbnfParser extends JisonParser implements JisonParserApi { $?: any; symbols_: SymbolsType = {"error":2,"production":3,"handle":4,"EOF":5,"handle_list":6,"|":7,"expression_suffix":8,"expression":9,"suffix":10,"ALIAS":11,"symbol":12,"(":13,")":14,"*":15,"?":16,"+":17,"$accept":0,"$end":1}; @@ -11,7 +15,7 @@ export class EbnfParser extends JisonParser implements JisonParserApi { table: Array; defaultActions: {[key:number]: any} = {3:[2,1]}; - constructor (yy = {}, lexer = new EbnfLexer(yy)) { + constructor (yy: any = {}, lexer = new EbnfLexer(yy)) { super(yy, lexer); // shorten static method to just `o` for terse STATE_TABLE @@ -56,12 +60,12 @@ break; } -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; export class EbnfLexer extends JisonLexer implements JisonLexerApi { options: any = {"moduleName":"Ebnf"}; - constructor (yy = {}) { + constructor (yy: any = {}) { super(yy); } @@ -81,7 +85,7 @@ export class EbnfLexer extends JisonLexer implements JisonLexerApi { /^(?:$)/ ]; conditions: any = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12],"inclusive":true}} - performAction (yy:any,yy_:any,$avoiding_name_collisions:any,YY_START:any): any { + performAction (yy:any,yy_:YY_,$avoiding_name_collisions:any,YY_START:any): any { var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:/* skip whitespace */ diff --git a/packages/lex-parser/lib/lex-parser.d.ts b/packages/lex-parser/lib/lex-parser.d.ts index 1349c76d..15415b55 100644 --- a/packages/lex-parser/lib/lex-parser.d.ts +++ b/packages/lex-parser/lib/lex-parser.d.ts @@ -1,4 +1,8 @@ import { JisonParser, JisonParserApi, StateType, SymbolsType, TerminalsType, ProductionsType } from '@ts-jison/parser'; +type YY_ = { + yytext: string; + yyleng: number; +}; export declare class LexParser extends JisonParser implements JisonParserApi { $?: any; symbols_: SymbolsType; @@ -8,15 +12,16 @@ export declare class LexParser extends JisonParser implements JisonParserApi { defaultActions: { [key: number]: any; }; - constructor(yy?: {}, lexer?: LexLexer); + constructor(yy?: any, lexer?: LexLexer); performAction(yytext: string, yyleng: number, yylineno: number, yy: any, yystate: number, $$: any, _$: any): any; } import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; export declare class LexLexer extends JisonLexer implements JisonLexerApi { options: any; - constructor(yy?: {}); + constructor(yy?: any); rules: RegExp[]; conditions: any; - performAction(yy: any, yy_: any, $avoiding_name_collisions: any, YY_START: any): any; + performAction(yy: any, yy_: YY_, $avoiding_name_collisions: any, YY_START: any): any; } +export {}; //# sourceMappingURL=lex-parser.d.ts.map \ No newline at end of file diff --git a/packages/lex-parser/lib/lex-parser.d.ts.map b/packages/lex-parser/lib/lex-parser.d.ts.map index 9540b0bc..3b7945b3 100644 --- a/packages/lex-parser/lib/lex-parser.d.ts.map +++ b/packages/lex-parser/lib/lex-parser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"lex-parser.d.ts","sourceRoot":"","sources":["../src/lex-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAwBvH,qBAAa,SAAU,SAAQ,WAAY,YAAW,cAAc;IAChE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAAyzB;IAC90B,UAAU,EAAE,aAAa,CAAsa;IAC/b,YAAY,EAAE,eAAe,CAAqc;IACle,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAA0D;gBAEhF,EAAE,KAAK,EAAE,KAAK,WAAmB;IAS9C,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CAsMvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,QAAS,SAAQ,UAAW,YAAW,aAAa;IAC7D,OAAO,EAAE,GAAG,CAAwB;gBACvB,EAAE,KAAK;IAIpB,KAAK,EAAE,MAAM,EAAE,CAoFb;IACF,UAAU,EAAE,GAAG,CAAsjC;IACrkC,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA2KjF"} \ No newline at end of file +{"version":3,"file":"lex-parser.d.ts","sourceRoot":"","sources":["../src/lex-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAwBvH,KAAK,GAAG,GAAG;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAC;AACF,qBAAa,SAAU,SAAQ,WAAY,YAAW,cAAc;IAChE,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,QAAQ,EAAE,WAAW,CAAyzB;IAC90B,UAAU,EAAE,aAAa,CAAsa;IAC/b,YAAY,EAAE,eAAe,CAAqc;IACle,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,CAA0D;gBAEhF,EAAE,GAAE,GAAQ,EAAE,KAAK,WAAmB;IASnD,aAAa,CAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAkB,EAAE,EAAC,GAAG,EAAe,EAAE,EAAC,GAAG,GAAgB,GAAG;CAsMvJ;AAID,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,QAAS,SAAQ,UAAW,YAAW,aAAa;IAC7D,OAAO,EAAE,GAAG,CAAwB;gBACvB,EAAE,GAAE,GAAQ;IAIzB,KAAK,EAAE,MAAM,EAAE,CAoFb;IACF,UAAU,EAAE,GAAG,CAAsjC;IACrkC,aAAa,CAAE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,yBAAyB,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,GAAG,GAAG;CA2KjF"} \ No newline at end of file diff --git a/packages/lex-parser/lib/lex-parser.js b/packages/lex-parser/lib/lex-parser.js index eea2d0d9..03410ce8 100644 --- a/packages/lex-parser/lib/lex-parser.js +++ b/packages/lex-parser/lib/lex-parser.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.LexLexer = exports.LexParser = void 0; const parser_1 = require("@ts-jison/parser"); /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ const RegexpAtom_1 = require("./RegexpAtom"); @@ -247,7 +247,7 @@ class LexParser extends parser_1.JisonParser { } } exports.LexParser = LexParser; -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ const lexer_1 = require("@ts-jison/lexer"); class LexLexer extends lexer_1.JisonLexer { constructor(yy = {}) { diff --git a/packages/lex-parser/lib/lex-parser.js.map b/packages/lex-parser/lib/lex-parser.js.map index d872afa5..d67c25c7 100644 --- a/packages/lex-parser/lib/lex-parser.js.map +++ b/packages/lex-parser/lib/lex-parser.js.map @@ -1 +1 @@ -{"version":3,"file":"lex-parser.js","sourceRoot":"","sources":["../src/lex-parser.ts"],"names":[],"mappings":"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CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC;QAEle,mBAAc,GAAwB,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;QAK3F,0DAA0D;QAC1D,MAAM,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QACzvB,MAAM,CAAC,GAAG,oBAAW,CAAC,gBAAgB,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EA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Q,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,EAAC,YAAY,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,EAAC,UAAU,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,SAAS,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAA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"} \ No newline at end of file +{"version":3,"file":"lex-parser.js","sourceRoot":"","sources":["../src/lex-parser.ts"],"names":[],"mappings":"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CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC;QAEle,mBAAc,GAAwB,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;QAK3F,0DAA0D;QAC1D,MAAM,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QACzvB,MAAM,CAAC,GAAG,oBAAW,CAAC,gBAAgB,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,EA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C,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,EAAC,YAAY,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,EAAC,UAAU,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,WAAW,EAAC,IAAI,EAAC,EAAC,SAAS,EAAC,EAAC,OAAO,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAA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"} \ No newline at end of file diff --git a/packages/lex-parser/src/lex-parser.ts b/packages/lex-parser/src/lex-parser.ts index 40e43f9a..0d4b7fd0 100644 --- a/packages/lex-parser/src/lex-parser.ts +++ b/packages/lex-parser/src/lex-parser.ts @@ -1,6 +1,6 @@ import { JisonParser, JisonParserApi, StateType, SymbolsType, TerminalsType, ProductionsType } from '@ts-jison/parser'; /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ @@ -22,6 +22,10 @@ function prepareCharacterClass (s: string) { return s; } +type YY_ = { + yytext: string; + yyleng: number +}; export class LexParser extends JisonParser implements JisonParserApi { $?: any; symbols_: SymbolsType = {"error":2,"lex":3,"definitions":4,"%%":5,"rules":6,"epilogue":7,"EOF":8,"CODE":9,"definition":10,"ACTION":11,"NAME":12,"regex":13,"START_INC":14,"names_inclusive":15,"START_EXC":16,"names_exclusive":17,"START_COND":18,"rule":19,"start_conditions":20,"action":21,"{":22,"action_body":23,"}":24,"action_comments_body":25,"ACTION_BODY":26,"<":27,"name_list":28,">":29,"*":30,",":31,"regex_list":32,"|":33,"regex_concat":34,"regex_base":35,"(":36,")":37,"SPECIAL_GROUP":38,"+":39,"?":40,"/":41,"/!":42,"name_expansion":43,"range_regex":44,"ANY_GROUP_REGEX":45,"char_class_rangeStar":46,"END_CHAR_CLASS":47,".":48,"^":49,"$":50,"string":51,"escape_char":52,"NAME_BRACE":53,"char_class_range":54,"CHAR_CLASS":55,"ASSERTION":56,"ESCAPE":57,"OPERATOR":58,"RANGE_REGEX":59,"STRING_LIT":60,"CHARACTER_LIT":61,"$accept":0,"$end":1}; @@ -30,7 +34,7 @@ export class LexParser extends JisonParser implements JisonParserApi { table: Array; defaultActions: {[key:number]: any} = {9:[2,5],10:[2,6],54:[2,1],56:[2,2],71:[2,3],79:[2,4]}; - constructor (yy = {}, lexer = new LexLexer(yy)) { + constructor (yy: any = {}, lexer = new LexLexer(yy)) { super(yy, lexer); // shorten static method to just `o` for terse STATE_TABLE @@ -240,12 +244,12 @@ break; } -/* generated by @ts-jison/lexer-generator 0.3.0 */ +/* generated by @ts-jison/lexer-generator 0.4.1-alpha.2 */ import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; export class LexLexer extends JisonLexer implements JisonLexerApi { options: any = {"moduleName":"Lex"}; - constructor (yy = {}) { + constructor (yy: any = {}) { super(yy); } @@ -335,7 +339,7 @@ export class LexLexer extends JisonLexer implements JisonLexerApi { /^(?:(?:.|\r\n|\n|\r)+)/ ]; conditions: any = {"code":{"rules":[81,82],"inclusive":false},"start_condition":{"rules":[22,23,24,25,81],"inclusive":false},"options":{"rules":[18,19,20,21,81],"inclusive":false},"conditions":{"rules":[9,10,11,12,81],"inclusive":false},"action":{"rules":[0,1,2,3,4,5,6,7,8,81],"inclusive":false},"char_class":{"rules":[31,32,33,34,35,36,37,38,81],"inclusive":false},"indented":{"rules":[27,28,29,30,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81],"inclusive":true},"trail":{"rules":[26,29,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81],"inclusive":true},"rules":{"rules":[13,14,15,16,17,29,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81],"inclusive":true},"INITIAL":{"rules":[29,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81],"inclusive":true}} - performAction (yy:any,yy_:any,$avoiding_name_collisions:any,YY_START:any): any { + performAction (yy:any,yy_:YY_,$avoiding_name_collisions:any,YY_START:any): any { var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:return 26; diff --git a/packages/lexer-generator/templates/typescript.yaml b/packages/lexer-generator/templates/typescript.yaml index b3869ec8..4c52f630 100644 --- a/packages/lexer-generator/templates/typescript.yaml +++ b/packages/lexer-generator/templates/typescript.yaml @@ -2,15 +2,20 @@ Import: | import { JisonLexer, JisonLexerApi } from '@ts-jison/lexer'; Constructor: | + type YY_ = { + yytext: string; + yyleng: number; + yylineno: number; + }; export class {{NAME}}Lexer extends JisonLexer implements JisonLexerApi { options: any = {{OPTIONS}}; - constructor (yy = {}) { + constructor (yy: any = {}) { super(yy); } rules: RegExp[] = {{RULES}}; conditions: any = {{CONDITIONS}} - performAction (yy:any,yy_:any,$avoiding_name_collisions:any,YY_START:any): any { + performAction (yy:any,yy_:YY_,$avoiding_name_collisions:any,YY_START:any): any { {{ACTION_INCLUDE}} var YYSTATE=YY_START; switch($avoiding_name_collisions) { {{STATE_ACTIONS}} diff --git a/packages/lexer/src/lexer.ts b/packages/lexer/src/lexer.ts index 71f45d75..f6c43fca 100644 --- a/packages/lexer/src/lexer.ts +++ b/packages/lexer/src/lexer.ts @@ -1,4 +1,10 @@ -import { TokenLocation, ParseErrorType } from '@ts-jison/common'; +import { TokenLocation, ParseErrorType, ParseErrorHashType } from '@ts-jison/common'; + +interface YY { + parser?: { + parseError: ParseErrorType + }; +} export interface JisonLexerApi { EOF: number; @@ -28,22 +34,22 @@ export interface JisonLexerApi { backtrack_lexer?: boolean; }; - performAction: (yy: any, yy_: any, $avoiding_name_collisions: number, YY_START: any) => any; + performAction: (yy: YY, yy_: any, $avoiding_name_collisions: number, YY_START: any) => any; rules: RegExp[]; conditions: { [name: string]: number[] /* set */ }; - yy?: any; + yy?: YY; reject: () => JisonLexerApi; stateStackSize: () => number; yylloc: TokenLocation; yyleng: number; yytext?: string; match?: string; - yylineno?: number; + yylineno: number; } export abstract class JisonLexer { constructor ( - public yy: any = {}, + public yy: YY = {}, ) { } public EOF: number = 1; @@ -53,7 +59,7 @@ export abstract class JisonLexer { _more?: boolean; _backtrack?: boolean; done?: boolean; - yylineno?: number; + yylineno: number; yyleng: number = 0; yytext?: string; conditionStack?: string[]; @@ -68,7 +74,7 @@ export abstract class JisonLexer { }; offset?: number; - parseError(str: string, hash: { [key: string]: any }): void { + parseError(str: string, hash: ParseErrorHashType): void | never { if (this.yy.parser) { this.yy.parser.parseError(str, hash); } else { @@ -171,10 +177,13 @@ export abstract class JisonLexer { if (this.options.backtrack_lexer) { this._backtrack = true; } else { - return this.parseError('Lexical error on line ' + (this.yylineno! + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + this.parseError('Lexical error on line ' + (this.yylineno! + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { text: "", token: null, - line: this.yylineno + line: this.yylineno, + loc: this.yylloc, + recoverable: false, + expected: null }); } @@ -281,7 +290,7 @@ export abstract class JisonLexer { } // return next match in input - next(): number | boolean { + next(): number | boolean | undefined { if (this.done) { return this.EOF; } @@ -330,10 +339,13 @@ export abstract class JisonLexer { if (this._input === "") { return this.EOF; } else { - return this.parseError('Lexical error on line ' + (this.yylineno! + 1) + '. Unrecognized text.\n' + this.showPosition(), { + this.parseError('Lexical error on line ' + (this.yylineno! + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, - line: this.yylineno + line: this.yylineno, + loc: this.yylloc, + recoverable: false, + expected: [] }); } } diff --git a/packages/parser-generator/examples/ts-calculator.jison b/packages/parser-generator/examples/ts-calculator.jison index 5eab9a92..c67ccf50 100644 --- a/packages/parser-generator/examples/ts-calculator.jison +++ b/packages/parser-generator/examples/ts-calculator.jison @@ -42,6 +42,8 @@ function hexlify (str:string): string { %right '%' %left UMINUS +%type e expressions + %start expressions %% /* language grammar */ diff --git a/packages/parser-generator/lib/cli.js b/packages/parser-generator/lib/cli.js index caaae680..406dd341 100755 --- a/packages/parser-generator/lib/cli.js +++ b/packages/parser-generator/lib/cli.js @@ -34,10 +34,19 @@ function getCommandlineOptions () { .option('debug', { abbr : 'd', flag : true, - default: - false, + default: false, help : 'Debug mode' }) + .option('warn-untyped-nterm', { + default: false, + flag: true, + help: "Show warning when a non-terminal is not typed" + }) + .option('show-nterm', { + default: false, + flag: true, + help: "Show non-terminal name after case labels" + }) .option('module-type', { abbr : 'm', default: 'core', @@ -166,6 +175,12 @@ cli.generateParserString = function generateParserString(opts, grammar) { if (opts.template) { settings.template = opts.template; } + if (opts['show-nterm']) { + settings.showNTerm = opts['show-nterm'] + } + if (opts['warn-untyped-nterm']) { + settings.warnUntypedNTerm = opts['warn-untyped-nterm'] + } var generator = new jison.Generator(grammar, Object.assign({makeGenerators: true}, settings)); return generator.generate(settings); diff --git a/packages/parser-generator/lib/jison.js b/packages/parser-generator/lib/jison.js index 49a29b71..0ff620d3 100755 --- a/packages/parser-generator/lib/jison.js +++ b/packages/parser-generator/lib/jison.js @@ -121,7 +121,7 @@ generator.constructor = function Jison_Generator (grammar, opt) { parser.parseParams = grammar.parseParams; lrGeneratorMixin.parseError = template.ParseError; - this.processGrammar(grammar); + this.processGrammar(grammar, opt); if (grammar.lex) { var dict = Object.assign({}, grammar.lex); @@ -140,9 +140,10 @@ generator.constructor = function Jison_Generator (grammar, opt) { } }; -generator.processGrammar = function processGrammarDef (grammar) { +generator.processGrammar = function processGrammarDef (grammar, options) { var bnf = grammar.bnf, tokens = grammar.tokens, + types = grammar.type || {}, nonterminals = this.nonterminals = {}, productions = this.productions, self = this; @@ -165,7 +166,7 @@ generator.processGrammar = function processGrammarDef (grammar) { var operators = this.operators = processOperators(grammar.operators); // build productions from cfg - this.buildProductions(bnf, productions, nonterminals, symbols, operators); + this.buildProductions(bnf, productions, nonterminals, symbols, operators, types, options); if (tokens && this.terminals.length !== tokens.length) { self.trace("Warning: declared tokens differ from tokens found in rules."); @@ -217,14 +218,17 @@ function processOperators (ops) { return operators; } - -generator.buildProductions = function buildProductions(bnf, productions, nonterminals, symbols, operators) { +// options: +// template: string +// Which template to use +generator.buildProductions = function buildProductions(bnf, productions, nonterminals, symbols, operators, types, options) { var actions = []; var actionGroups = {}; var prods, symbol; var productions_ = [0]; var symbolId = 1; var symbols_ = {}; + var types = types; var her = false; // has error recovery @@ -250,8 +254,15 @@ generator.buildProductions = function buildProductions(bnf, productions, nonterm prods = bnf[symbol].slice(0); } + const tsMode = options?.template === "typescript"; + const currentType = types[symbol]; + if (tsMode && !currentType && options?.warnUntypedNTerm) { + console.log(`Type of ${symbol} is not specified.`); + } + prods.forEach(buildProduction); } + // Labels, action and break for (var action in actionGroups) actions.push(actionGroups[action].join(' '), action, 'break;'); @@ -268,6 +279,7 @@ generator.buildProductions = function buildProductions(bnf, productions, nonterm this.terminals = terms; this.terminals_ = terms_; this.symbols_ = symbols_; + this.types = types; this.productions_ = productions_; @@ -293,7 +305,8 @@ generator.buildProductions = function buildProductions(bnf, productions, nonterm if (typeof handle[1] === 'string' || handle.length == 3) { // semantic action specified - var label = 'case ' + (productions.length+1) + ':', action = handle[1]; + var label = 'case ' + (productions.length+1) + ':' + (options?.showNTerm ? ` /* ${symbol} */` : ""); + var action = handle[1]; // replace named semantic values ($nonterminal) if (action.match(/[$@][a-zA-Z][a-zA-Z0-9_]*/)) { @@ -323,13 +336,31 @@ generator.buildProductions = function buildProductions(bnf, productions, nonterm return names[pl] ? '@'+names[pl] : str; }); } + + const tsMode = options.template === "typescript"; + const currentType = types[symbol]; + if (tsMode && currentType) { + // insert type annotation for $$ + const typeAnnotation = 'const _this = this as { $?: ' + currentType + ' };'; + action = '{' + typeAnnotation + action + '}'; + } action = action // replace references to $$ with this.$, and @$ with this._$ - .replace(/([^'"])\$\$|^\$\$/g, '$1this.$').replace(/@[0$]/g, "this._$") - + .replace(/([^'"])\$\$|^\$\$/g, tsMode && currentType ? '$1_this.$' : '$1this.$').replace(/@[0$]/g, "this._$") // replace semantic value references ($n) with stack value (stack[n]) .replace(/\$(-?\d+)/g, function (_, n) { - return "$$[$0" + (parseInt(n, 10) - rhs.length || '') + "]"; + const N = parseInt(n, 10); + var s = "$$[$0" + (N - rhs.length || '') + "]" + if (tsMode) { + const r = rhs[N - 1];// Name of $n + if (r) { + const t = types[r];// Type of $n + if (t) { + s = '(<' + t + '>(' + s + '))'; + } + } + } + return s; }) // same as above for location references (@n) .replace(/@(-?\d+)/g, function (_, n) { diff --git a/packages/parser-generator/package.json b/packages/parser-generator/package.json index 15119785..426f7e5c 100644 --- a/packages/parser-generator/package.json +++ b/packages/parser-generator/package.json @@ -55,11 +55,11 @@ "scripts": { "build": "echo nothing to build in parser-generator", "js-calculator-demo": "npm run generate:js-calculator && npm run cli:js-calculator", - "generate:js-calculator": "(cd examples/ && ../lib/cli.js -n JsCalc -o js-calculator.js js-calculator.jison)", + "generate:js-calculator": "(cd examples/ && node ../lib/cli.js -n JsCalc -o js-calculator.js js-calculator.jison)", "run:js-calculator": "(cd examples/ && node js-calculator.js calculator.input.txt)", "cli:js-calculator": "(cd examples/ && node js-calculator.cli.js calculator.input.txt)", "ts-calculator-demo": "npm run generate:ts-calculator && npm run compile:ts-calculator && npm run cli:ts-calculator", - "generate:ts-calculator": "(cd examples/ && ../lib/cli.js -t typescript -n TsCalc -o ts-calculator.ts ts-calculator.jison)", + "generate:ts-calculator": "(cd examples/ && node ../lib/cli.js -t typescript -n TsCalc -o ts-calculator.ts ts-calculator.jison)", "compile:ts-calculator": "(cd examples/ && tsc ts-calculator.ts)", "run:ts-calculator": "(cd examples/ && node ts-calculator.js calculator.input.txt)", "cli:ts-calculator": "(cd examples/ && node ts-calculator.cli.js calculator.input.txt)", diff --git a/packages/parser-generator/templates/typescript.yaml b/packages/parser-generator/templates/typescript.yaml index d5c4672f..9cb6e12c 100644 --- a/packages/parser-generator/templates/typescript.yaml +++ b/packages/parser-generator/templates/typescript.yaml @@ -9,7 +9,7 @@ Constructor: | table: Array; defaultActions: {[key:number]: any} = {{DEFAULT_ACTIONS}}; - constructor (yy = {}, lexer = new {{NAME}}Lexer(yy)) { + constructor (yy: any = {}, lexer = new {{NAME}}Lexer(yy)) { super(yy, lexer); // shorten static method to just `o` for terse STATE_TABLE diff --git a/packages/parser-generator/tests/parser/tmp-parser.js b/packages/parser-generator/tests/parser/tmp-parser.js index 9cd641ff..42c4217a 100644 --- a/packages/parser-generator/tests/parser/tmp-parser.js +++ b/packages/parser-generator/tests/parser/tmp-parser.js @@ -1,6 +1,6 @@ const { JisonParser, o } = require('@ts-jison/parser'); /** - * parser generated by @ts-jison/parser-generator 0.3.0 + * parser generated by @ts-jison/parser-generator 0.4.1-alpha.2 * @returns Parser implementing JisonParserApi and a Lexer implementing JisonLexerApi. */ class parserParser extends JisonParser {