@jay-framework/compiler-jay-html 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +44 -1
- package/dist/index.js +1306 -231
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -6415,9 +6415,8 @@ function peg$parse(input, options) {
|
|
|
6415
6415
|
return next.reduce((acc, val) => {
|
|
6416
6416
|
return [...acc, val[3]];
|
|
6417
6417
|
}, [first]);
|
|
6418
|
-
}, peg$c78 = function(
|
|
6419
|
-
|
|
6420
|
-
return isDynamic ? renderFragment.map((_) => `ba(${vars.currentVar} => ${_})`).plusImport(ba) : renderFragment;
|
|
6418
|
+
}, peg$c78 = function(cond) {
|
|
6419
|
+
return cond.map((_) => `ba(${vars.currentVar} => ${_})`).plusImport(ba);
|
|
6421
6420
|
}, peg$c79 = function(template) {
|
|
6422
6421
|
let [renderFragment, isDynamic] = template;
|
|
6423
6422
|
return isDynamic ? renderFragment.map((_) => `da(${vars.currentVar} => ${_})`).plusImport(da) : renderFragment;
|
|
@@ -6499,35 +6498,48 @@ function peg$parse(input, options) {
|
|
|
6499
6498
|
}, peg$c96 = function(not, head) {
|
|
6500
6499
|
return not ? head.render().map((_) => `!${_}`) : head.render();
|
|
6501
6500
|
}, peg$c97 = function(head, oper, val) {
|
|
6501
|
+
return head.render().map((_) => `${_} ${oper} ${val}`);
|
|
6502
|
+
}, peg$c98 = function(acc) {
|
|
6503
|
+
return acc.render().rendered;
|
|
6504
|
+
}, peg$c99 = function(head, oper, val) {
|
|
6505
|
+
if (oper === "==")
|
|
6506
|
+
oper = "===";
|
|
6507
|
+
if (oper === "!=")
|
|
6508
|
+
oper = "!==";
|
|
6509
|
+
return head.render().map((_) => `${_} ${oper} ${val}`);
|
|
6510
|
+
}, peg$c100 = ".", peg$c101 = peg$literalExpectation(".", false), peg$c102 = function(head, tail) {
|
|
6511
|
+
let terms = [head, ...tail.map((_) => _[3])];
|
|
6512
|
+
return vars.resolveAccessor(terms);
|
|
6513
|
+
}, peg$c103 = "-", peg$c104 = peg$literalExpectation("-", false), peg$c105 = /^[0-9]/, peg$c106 = peg$classExpectation([["0", "9"]], false, false), peg$c107 = function(head, oper, val) {
|
|
6502
6514
|
if (oper.length === 2)
|
|
6503
6515
|
oper = oper + "=";
|
|
6504
6516
|
return head.render().map((_) => `${_} ${oper} ${head.resolvedType.name}.${val}`);
|
|
6505
|
-
}, peg$
|
|
6517
|
+
}, peg$c108 = function() {
|
|
6506
6518
|
return vars.resolveAccessor(["."]);
|
|
6507
|
-
}, peg$
|
|
6519
|
+
}, peg$c109 = function(head, tail) {
|
|
6508
6520
|
let terms = [head, ...tail.map((_) => _[3])];
|
|
6509
6521
|
let accessor = vars.resolveAccessor(terms);
|
|
6510
6522
|
return accessor;
|
|
6511
|
-
}, peg$
|
|
6523
|
+
}, peg$c110 = peg$otherExpectation("integer"), peg$c111 = peg$otherExpectation("whitespace"), peg$c112 = /^[^{} \t\n\r]/, peg$c113 = peg$classExpectation(["{", "}", " ", " ", "\n", "\r"], true, false), peg$c114 = function() {
|
|
6512
6524
|
return text2();
|
|
6513
|
-
}, peg$
|
|
6525
|
+
}, peg$c115 = "!", peg$c116 = peg$literalExpectation("!", false), peg$c117 = "===", peg$c118 = peg$literalExpectation("===", false), peg$c119 = "!==", peg$c120 = peg$literalExpectation("!==", false), peg$c121 = "==", peg$c122 = peg$literalExpectation("==", false), peg$c123 = "!=", peg$c124 = peg$literalExpectation("!=", false), peg$c125 = "<=", peg$c126 = peg$literalExpectation("<=", false), peg$c127 = ">=", peg$c128 = peg$literalExpectation(">=", false), peg$c129 = "<", peg$c130 = peg$literalExpectation("<", false), peg$c131 = ">", peg$c132 = peg$literalExpectation(">", false), peg$c133 = function(name) {
|
|
6514
6526
|
return text2();
|
|
6515
|
-
}, peg$
|
|
6527
|
+
}, peg$c134 = peg$otherExpectation("identifier"), peg$c135 = function(head, tail) {
|
|
6516
6528
|
return {
|
|
6517
6529
|
type: "Identifier",
|
|
6518
6530
|
name: head + tail.join("")
|
|
6519
6531
|
};
|
|
6520
|
-
}, peg$
|
|
6532
|
+
}, peg$c136 = "$", peg$c137 = peg$literalExpectation("$", false), peg$c138 = "_", peg$c139 = peg$literalExpectation("_", false), peg$c140 = "\\", peg$c141 = peg$literalExpectation("\\", false), peg$c142 = function(sequence) {
|
|
6521
6533
|
return sequence;
|
|
6522
|
-
}, peg$
|
|
6534
|
+
}, peg$c143 = "", peg$c144 = peg$literalExpectation("", false), peg$c145 = "", peg$c146 = peg$literalExpectation("", false), peg$c147 = "u", peg$c148 = peg$literalExpectation("u", false), peg$c149 = function(digits) {
|
|
6523
6535
|
return String.fromCharCode(parseInt(digits, 16));
|
|
6524
|
-
}, peg$
|
|
6536
|
+
}, peg$c150 = function() {
|
|
6525
6537
|
return { type: "Literal", value: null };
|
|
6526
|
-
}, peg$
|
|
6538
|
+
}, peg$c151 = function() {
|
|
6527
6539
|
return { type: "Literal", value: true };
|
|
6528
|
-
}, peg$
|
|
6540
|
+
}, peg$c152 = function() {
|
|
6529
6541
|
return { type: "Literal", value: false };
|
|
6530
|
-
}, peg$c139 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/, peg$c140 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c141 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/, peg$c142 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c143 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c144 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c145 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/, peg$c146 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c147 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, peg$c148 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c149 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c150 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c151 = /^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u09FE\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D00-\u0D01\u0D3B-\u0D3C\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885-\u1886\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/, peg$c152 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c153 = /^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u1CF7\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/, peg$c154 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c155 = /^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/, peg$c156 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c157 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c158 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c161 = /^[0-9a-f]/i, peg$c162 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c163 = "break", peg$c164 = peg$literalExpectation("break", false), peg$c165 = "case", peg$c166 = peg$literalExpectation("case", false), peg$c167 = "catch", peg$c168 = peg$literalExpectation("catch", false), peg$c169 = "class", peg$c170 = peg$literalExpectation("class", false), peg$c171 = "const", peg$c172 = peg$literalExpectation("const", false), peg$c173 = "continue", peg$c174 = peg$literalExpectation("continue", false), peg$c175 = "debugger", peg$c176 = peg$literalExpectation("debugger", false), peg$c177 = "default", peg$c178 = peg$literalExpectation("default", false), peg$c179 = "delete", peg$c180 = peg$literalExpectation("delete", false), peg$c181 = "do", peg$c182 = peg$literalExpectation("do", false), peg$c183 = "else", peg$c184 = peg$literalExpectation("else", false), peg$c185 = "export", peg$c186 = peg$literalExpectation("export", false), peg$c187 = "extends", peg$c188 = peg$literalExpectation("extends", false), peg$c189 = "false", peg$c190 = peg$literalExpectation("false", false), peg$c191 = "finally", peg$c192 = peg$literalExpectation("finally", false), peg$c193 = "for", peg$c194 = peg$literalExpectation("for", false), peg$c195 = "function", peg$c196 = peg$literalExpectation("function", false), peg$c199 = "if", peg$c200 = peg$literalExpectation("if", false), peg$c201 = "import", peg$c202 = peg$literalExpectation("import", false), peg$c203 = "instanceof", peg$c204 = peg$literalExpectation("instanceof", false), peg$c205 = "in", peg$c206 = peg$literalExpectation("in", false), peg$c207 = "new", peg$c208 = peg$literalExpectation("new", false), peg$c209 = "null", peg$c210 = peg$literalExpectation("null", false), peg$c211 = "return", peg$c212 = peg$literalExpectation("return", false), peg$c215 = "super", peg$c216 = peg$literalExpectation("super", false), peg$c217 = "switch", peg$c218 = peg$literalExpectation("switch", false), peg$c219 = "this", peg$c220 = peg$literalExpectation("this", false), peg$c221 = "throw", peg$c222 = peg$literalExpectation("throw", false), peg$c223 = "true", peg$c224 = peg$literalExpectation("true", false), peg$c225 = "try", peg$c226 = peg$literalExpectation("try", false), peg$c227 = "typeof", peg$c228 = peg$literalExpectation("typeof", false), peg$c229 = "var", peg$c230 = peg$literalExpectation("var", false), peg$c231 = "void", peg$c232 = peg$literalExpectation("void", false), peg$c233 = "while", peg$c234 = peg$literalExpectation("while", false), peg$c235 = "with", peg$c236 = peg$literalExpectation("with", false), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
|
|
6542
|
+
}, peg$c153 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/, peg$c154 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c155 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/, peg$c156 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c157 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c158 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c159 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/, peg$c160 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c161 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, peg$c162 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c163 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c164 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c165 = /^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u09FE\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D00-\u0D01\u0D3B-\u0D3C\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885-\u1886\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/, peg$c166 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c167 = /^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u1CF7\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/, peg$c168 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c169 = /^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/, peg$c170 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c171 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c172 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c175 = /^[0-9a-f]/i, peg$c176 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c177 = "break", peg$c178 = peg$literalExpectation("break", false), peg$c179 = "case", peg$c180 = peg$literalExpectation("case", false), peg$c181 = "catch", peg$c182 = peg$literalExpectation("catch", false), peg$c183 = "class", peg$c184 = peg$literalExpectation("class", false), peg$c185 = "const", peg$c186 = peg$literalExpectation("const", false), peg$c187 = "continue", peg$c188 = peg$literalExpectation("continue", false), peg$c189 = "debugger", peg$c190 = peg$literalExpectation("debugger", false), peg$c191 = "default", peg$c192 = peg$literalExpectation("default", false), peg$c193 = "delete", peg$c194 = peg$literalExpectation("delete", false), peg$c195 = "do", peg$c196 = peg$literalExpectation("do", false), peg$c197 = "else", peg$c198 = peg$literalExpectation("else", false), peg$c199 = "export", peg$c200 = peg$literalExpectation("export", false), peg$c201 = "extends", peg$c202 = peg$literalExpectation("extends", false), peg$c203 = "false", peg$c204 = peg$literalExpectation("false", false), peg$c205 = "finally", peg$c206 = peg$literalExpectation("finally", false), peg$c207 = "for", peg$c208 = peg$literalExpectation("for", false), peg$c209 = "function", peg$c210 = peg$literalExpectation("function", false), peg$c213 = "if", peg$c214 = peg$literalExpectation("if", false), peg$c215 = "import", peg$c216 = peg$literalExpectation("import", false), peg$c217 = "instanceof", peg$c218 = peg$literalExpectation("instanceof", false), peg$c219 = "in", peg$c220 = peg$literalExpectation("in", false), peg$c221 = "new", peg$c222 = peg$literalExpectation("new", false), peg$c223 = "null", peg$c224 = peg$literalExpectation("null", false), peg$c225 = "return", peg$c226 = peg$literalExpectation("return", false), peg$c229 = "super", peg$c230 = peg$literalExpectation("super", false), peg$c231 = "switch", peg$c232 = peg$literalExpectation("switch", false), peg$c233 = "this", peg$c234 = peg$literalExpectation("this", false), peg$c235 = "throw", peg$c236 = peg$literalExpectation("throw", false), peg$c237 = "true", peg$c238 = peg$literalExpectation("true", false), peg$c239 = "try", peg$c240 = peg$literalExpectation("try", false), peg$c241 = "typeof", peg$c242 = peg$literalExpectation("typeof", false), peg$c243 = "var", peg$c244 = peg$literalExpectation("var", false), peg$c245 = "void", peg$c246 = peg$literalExpectation("void", false), peg$c247 = "while", peg$c248 = peg$literalExpectation("while", false), peg$c249 = "with", peg$c250 = peg$literalExpectation("with", false), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
|
|
6531
6543
|
if ("startRule" in options) {
|
|
6532
6544
|
if (!(options.startRule in peg$startRuleFunctions)) {
|
|
6533
6545
|
throw new Error(`Can't start parsing from rule "` + options.startRule + '".');
|
|
@@ -8445,7 +8457,7 @@ function peg$parse(input, options) {
|
|
|
8445
8457
|
function peg$parsebooleanAttribute() {
|
|
8446
8458
|
var s0, s1;
|
|
8447
8459
|
s0 = peg$currPos;
|
|
8448
|
-
s1 = peg$
|
|
8460
|
+
s1 = peg$parselogicalOrCondition();
|
|
8449
8461
|
if (s1 !== peg$FAILED) {
|
|
8450
8462
|
peg$savedPos = s0;
|
|
8451
8463
|
s1 = peg$c78(s1);
|
|
@@ -9305,9 +9317,15 @@ function peg$parse(input, options) {
|
|
|
9305
9317
|
s0 = peg$FAILED;
|
|
9306
9318
|
}
|
|
9307
9319
|
if (s0 === peg$FAILED) {
|
|
9308
|
-
s0 = peg$
|
|
9320
|
+
s0 = peg$parseorderingCondition();
|
|
9309
9321
|
if (s0 === peg$FAILED) {
|
|
9310
|
-
s0 = peg$
|
|
9322
|
+
s0 = peg$parseequalityComparisonCondition();
|
|
9323
|
+
if (s0 === peg$FAILED) {
|
|
9324
|
+
s0 = peg$parseenumCondition();
|
|
9325
|
+
if (s0 === peg$FAILED) {
|
|
9326
|
+
s0 = peg$parsebooleanCondition();
|
|
9327
|
+
}
|
|
9328
|
+
}
|
|
9311
9329
|
}
|
|
9312
9330
|
}
|
|
9313
9331
|
return s0;
|
|
@@ -9335,6 +9353,319 @@ function peg$parse(input, options) {
|
|
|
9335
9353
|
}
|
|
9336
9354
|
return s0;
|
|
9337
9355
|
}
|
|
9356
|
+
function peg$parseorderingCondition() {
|
|
9357
|
+
var s0, s1, s2, s3, s4, s5;
|
|
9358
|
+
s0 = peg$currPos;
|
|
9359
|
+
s1 = peg$parseaccessor();
|
|
9360
|
+
if (s1 !== peg$FAILED) {
|
|
9361
|
+
s2 = peg$parse_();
|
|
9362
|
+
if (s2 !== peg$FAILED) {
|
|
9363
|
+
s3 = peg$parseOrderingOperator();
|
|
9364
|
+
if (s3 !== peg$FAILED) {
|
|
9365
|
+
s4 = peg$parse_();
|
|
9366
|
+
if (s4 !== peg$FAILED) {
|
|
9367
|
+
s5 = peg$parseorderingValue();
|
|
9368
|
+
if (s5 !== peg$FAILED) {
|
|
9369
|
+
peg$savedPos = s0;
|
|
9370
|
+
s1 = peg$c97(s1, s3, s5);
|
|
9371
|
+
s0 = s1;
|
|
9372
|
+
} else {
|
|
9373
|
+
peg$currPos = s0;
|
|
9374
|
+
s0 = peg$FAILED;
|
|
9375
|
+
}
|
|
9376
|
+
} else {
|
|
9377
|
+
peg$currPos = s0;
|
|
9378
|
+
s0 = peg$FAILED;
|
|
9379
|
+
}
|
|
9380
|
+
} else {
|
|
9381
|
+
peg$currPos = s0;
|
|
9382
|
+
s0 = peg$FAILED;
|
|
9383
|
+
}
|
|
9384
|
+
} else {
|
|
9385
|
+
peg$currPos = s0;
|
|
9386
|
+
s0 = peg$FAILED;
|
|
9387
|
+
}
|
|
9388
|
+
} else {
|
|
9389
|
+
peg$currPos = s0;
|
|
9390
|
+
s0 = peg$FAILED;
|
|
9391
|
+
}
|
|
9392
|
+
return s0;
|
|
9393
|
+
}
|
|
9394
|
+
function peg$parseorderingValue() {
|
|
9395
|
+
var s0, s1;
|
|
9396
|
+
s0 = peg$parsenumericValue();
|
|
9397
|
+
if (s0 === peg$FAILED) {
|
|
9398
|
+
s0 = peg$currPos;
|
|
9399
|
+
s1 = peg$parseaccessor();
|
|
9400
|
+
if (s1 !== peg$FAILED) {
|
|
9401
|
+
peg$savedPos = s0;
|
|
9402
|
+
s1 = peg$c98(s1);
|
|
9403
|
+
}
|
|
9404
|
+
s0 = s1;
|
|
9405
|
+
}
|
|
9406
|
+
return s0;
|
|
9407
|
+
}
|
|
9408
|
+
function peg$parseequalityComparisonCondition() {
|
|
9409
|
+
var s0, s1, s2, s3, s4, s5;
|
|
9410
|
+
s0 = peg$currPos;
|
|
9411
|
+
s1 = peg$parseaccessor();
|
|
9412
|
+
if (s1 !== peg$FAILED) {
|
|
9413
|
+
s2 = peg$parse_();
|
|
9414
|
+
if (s2 !== peg$FAILED) {
|
|
9415
|
+
s3 = peg$parseEqualityOperator();
|
|
9416
|
+
if (s3 !== peg$FAILED) {
|
|
9417
|
+
s4 = peg$parse_();
|
|
9418
|
+
if (s4 !== peg$FAILED) {
|
|
9419
|
+
s5 = peg$parseequalityComparisonValue();
|
|
9420
|
+
if (s5 !== peg$FAILED) {
|
|
9421
|
+
peg$savedPos = s0;
|
|
9422
|
+
s1 = peg$c99(s1, s3, s5);
|
|
9423
|
+
s0 = s1;
|
|
9424
|
+
} else {
|
|
9425
|
+
peg$currPos = s0;
|
|
9426
|
+
s0 = peg$FAILED;
|
|
9427
|
+
}
|
|
9428
|
+
} else {
|
|
9429
|
+
peg$currPos = s0;
|
|
9430
|
+
s0 = peg$FAILED;
|
|
9431
|
+
}
|
|
9432
|
+
} else {
|
|
9433
|
+
peg$currPos = s0;
|
|
9434
|
+
s0 = peg$FAILED;
|
|
9435
|
+
}
|
|
9436
|
+
} else {
|
|
9437
|
+
peg$currPos = s0;
|
|
9438
|
+
s0 = peg$FAILED;
|
|
9439
|
+
}
|
|
9440
|
+
} else {
|
|
9441
|
+
peg$currPos = s0;
|
|
9442
|
+
s0 = peg$FAILED;
|
|
9443
|
+
}
|
|
9444
|
+
return s0;
|
|
9445
|
+
}
|
|
9446
|
+
function peg$parseequalityComparisonValue() {
|
|
9447
|
+
var s0, s1;
|
|
9448
|
+
s0 = peg$parsenumericValue();
|
|
9449
|
+
if (s0 === peg$FAILED) {
|
|
9450
|
+
s0 = peg$currPos;
|
|
9451
|
+
s1 = peg$parsedottedAccessor();
|
|
9452
|
+
if (s1 !== peg$FAILED) {
|
|
9453
|
+
peg$savedPos = s0;
|
|
9454
|
+
s1 = peg$c98(s1);
|
|
9455
|
+
}
|
|
9456
|
+
s0 = s1;
|
|
9457
|
+
}
|
|
9458
|
+
return s0;
|
|
9459
|
+
}
|
|
9460
|
+
function peg$parsedottedAccessor() {
|
|
9461
|
+
var s0, s1, s2, s3, s4, s5, s6, s7;
|
|
9462
|
+
s0 = peg$currPos;
|
|
9463
|
+
s1 = peg$parseIdentifier();
|
|
9464
|
+
if (s1 !== peg$FAILED) {
|
|
9465
|
+
s2 = [];
|
|
9466
|
+
s3 = peg$currPos;
|
|
9467
|
+
s4 = peg$parse_();
|
|
9468
|
+
if (s4 !== peg$FAILED) {
|
|
9469
|
+
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9470
|
+
s5 = peg$c100;
|
|
9471
|
+
peg$currPos++;
|
|
9472
|
+
} else {
|
|
9473
|
+
s5 = peg$FAILED;
|
|
9474
|
+
if (peg$silentFails === 0) {
|
|
9475
|
+
peg$fail(peg$c101);
|
|
9476
|
+
}
|
|
9477
|
+
}
|
|
9478
|
+
if (s5 !== peg$FAILED) {
|
|
9479
|
+
s6 = peg$parse_();
|
|
9480
|
+
if (s6 !== peg$FAILED) {
|
|
9481
|
+
s7 = peg$parseIdentifier();
|
|
9482
|
+
if (s7 !== peg$FAILED) {
|
|
9483
|
+
s4 = [s4, s5, s6, s7];
|
|
9484
|
+
s3 = s4;
|
|
9485
|
+
} else {
|
|
9486
|
+
peg$currPos = s3;
|
|
9487
|
+
s3 = peg$FAILED;
|
|
9488
|
+
}
|
|
9489
|
+
} else {
|
|
9490
|
+
peg$currPos = s3;
|
|
9491
|
+
s3 = peg$FAILED;
|
|
9492
|
+
}
|
|
9493
|
+
} else {
|
|
9494
|
+
peg$currPos = s3;
|
|
9495
|
+
s3 = peg$FAILED;
|
|
9496
|
+
}
|
|
9497
|
+
} else {
|
|
9498
|
+
peg$currPos = s3;
|
|
9499
|
+
s3 = peg$FAILED;
|
|
9500
|
+
}
|
|
9501
|
+
if (s3 !== peg$FAILED) {
|
|
9502
|
+
while (s3 !== peg$FAILED) {
|
|
9503
|
+
s2.push(s3);
|
|
9504
|
+
s3 = peg$currPos;
|
|
9505
|
+
s4 = peg$parse_();
|
|
9506
|
+
if (s4 !== peg$FAILED) {
|
|
9507
|
+
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9508
|
+
s5 = peg$c100;
|
|
9509
|
+
peg$currPos++;
|
|
9510
|
+
} else {
|
|
9511
|
+
s5 = peg$FAILED;
|
|
9512
|
+
if (peg$silentFails === 0) {
|
|
9513
|
+
peg$fail(peg$c101);
|
|
9514
|
+
}
|
|
9515
|
+
}
|
|
9516
|
+
if (s5 !== peg$FAILED) {
|
|
9517
|
+
s6 = peg$parse_();
|
|
9518
|
+
if (s6 !== peg$FAILED) {
|
|
9519
|
+
s7 = peg$parseIdentifier();
|
|
9520
|
+
if (s7 !== peg$FAILED) {
|
|
9521
|
+
s4 = [s4, s5, s6, s7];
|
|
9522
|
+
s3 = s4;
|
|
9523
|
+
} else {
|
|
9524
|
+
peg$currPos = s3;
|
|
9525
|
+
s3 = peg$FAILED;
|
|
9526
|
+
}
|
|
9527
|
+
} else {
|
|
9528
|
+
peg$currPos = s3;
|
|
9529
|
+
s3 = peg$FAILED;
|
|
9530
|
+
}
|
|
9531
|
+
} else {
|
|
9532
|
+
peg$currPos = s3;
|
|
9533
|
+
s3 = peg$FAILED;
|
|
9534
|
+
}
|
|
9535
|
+
} else {
|
|
9536
|
+
peg$currPos = s3;
|
|
9537
|
+
s3 = peg$FAILED;
|
|
9538
|
+
}
|
|
9539
|
+
}
|
|
9540
|
+
} else {
|
|
9541
|
+
s2 = peg$FAILED;
|
|
9542
|
+
}
|
|
9543
|
+
if (s2 !== peg$FAILED) {
|
|
9544
|
+
peg$savedPos = s0;
|
|
9545
|
+
s1 = peg$c102(s1, s2);
|
|
9546
|
+
s0 = s1;
|
|
9547
|
+
} else {
|
|
9548
|
+
peg$currPos = s0;
|
|
9549
|
+
s0 = peg$FAILED;
|
|
9550
|
+
}
|
|
9551
|
+
} else {
|
|
9552
|
+
peg$currPos = s0;
|
|
9553
|
+
s0 = peg$FAILED;
|
|
9554
|
+
}
|
|
9555
|
+
return s0;
|
|
9556
|
+
}
|
|
9557
|
+
function peg$parsenumericValue() {
|
|
9558
|
+
var s0, s1, s2, s3, s4, s5, s6;
|
|
9559
|
+
s0 = peg$currPos;
|
|
9560
|
+
if (input.charCodeAt(peg$currPos) === 45) {
|
|
9561
|
+
s1 = peg$c103;
|
|
9562
|
+
peg$currPos++;
|
|
9563
|
+
} else {
|
|
9564
|
+
s1 = peg$FAILED;
|
|
9565
|
+
if (peg$silentFails === 0) {
|
|
9566
|
+
peg$fail(peg$c104);
|
|
9567
|
+
}
|
|
9568
|
+
}
|
|
9569
|
+
if (s1 === peg$FAILED) {
|
|
9570
|
+
s1 = null;
|
|
9571
|
+
}
|
|
9572
|
+
if (s1 !== peg$FAILED) {
|
|
9573
|
+
s2 = [];
|
|
9574
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9575
|
+
s3 = input.charAt(peg$currPos);
|
|
9576
|
+
peg$currPos++;
|
|
9577
|
+
} else {
|
|
9578
|
+
s3 = peg$FAILED;
|
|
9579
|
+
if (peg$silentFails === 0) {
|
|
9580
|
+
peg$fail(peg$c106);
|
|
9581
|
+
}
|
|
9582
|
+
}
|
|
9583
|
+
if (s3 !== peg$FAILED) {
|
|
9584
|
+
while (s3 !== peg$FAILED) {
|
|
9585
|
+
s2.push(s3);
|
|
9586
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9587
|
+
s3 = input.charAt(peg$currPos);
|
|
9588
|
+
peg$currPos++;
|
|
9589
|
+
} else {
|
|
9590
|
+
s3 = peg$FAILED;
|
|
9591
|
+
if (peg$silentFails === 0) {
|
|
9592
|
+
peg$fail(peg$c106);
|
|
9593
|
+
}
|
|
9594
|
+
}
|
|
9595
|
+
}
|
|
9596
|
+
} else {
|
|
9597
|
+
s2 = peg$FAILED;
|
|
9598
|
+
}
|
|
9599
|
+
if (s2 !== peg$FAILED) {
|
|
9600
|
+
s3 = peg$currPos;
|
|
9601
|
+
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9602
|
+
s4 = peg$c100;
|
|
9603
|
+
peg$currPos++;
|
|
9604
|
+
} else {
|
|
9605
|
+
s4 = peg$FAILED;
|
|
9606
|
+
if (peg$silentFails === 0) {
|
|
9607
|
+
peg$fail(peg$c101);
|
|
9608
|
+
}
|
|
9609
|
+
}
|
|
9610
|
+
if (s4 !== peg$FAILED) {
|
|
9611
|
+
s5 = [];
|
|
9612
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9613
|
+
s6 = input.charAt(peg$currPos);
|
|
9614
|
+
peg$currPos++;
|
|
9615
|
+
} else {
|
|
9616
|
+
s6 = peg$FAILED;
|
|
9617
|
+
if (peg$silentFails === 0) {
|
|
9618
|
+
peg$fail(peg$c106);
|
|
9619
|
+
}
|
|
9620
|
+
}
|
|
9621
|
+
if (s6 !== peg$FAILED) {
|
|
9622
|
+
while (s6 !== peg$FAILED) {
|
|
9623
|
+
s5.push(s6);
|
|
9624
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9625
|
+
s6 = input.charAt(peg$currPos);
|
|
9626
|
+
peg$currPos++;
|
|
9627
|
+
} else {
|
|
9628
|
+
s6 = peg$FAILED;
|
|
9629
|
+
if (peg$silentFails === 0) {
|
|
9630
|
+
peg$fail(peg$c106);
|
|
9631
|
+
}
|
|
9632
|
+
}
|
|
9633
|
+
}
|
|
9634
|
+
} else {
|
|
9635
|
+
s5 = peg$FAILED;
|
|
9636
|
+
}
|
|
9637
|
+
if (s5 !== peg$FAILED) {
|
|
9638
|
+
s4 = [s4, s5];
|
|
9639
|
+
s3 = s4;
|
|
9640
|
+
} else {
|
|
9641
|
+
peg$currPos = s3;
|
|
9642
|
+
s3 = peg$FAILED;
|
|
9643
|
+
}
|
|
9644
|
+
} else {
|
|
9645
|
+
peg$currPos = s3;
|
|
9646
|
+
s3 = peg$FAILED;
|
|
9647
|
+
}
|
|
9648
|
+
if (s3 === peg$FAILED) {
|
|
9649
|
+
s3 = null;
|
|
9650
|
+
}
|
|
9651
|
+
if (s3 !== peg$FAILED) {
|
|
9652
|
+
peg$savedPos = s0;
|
|
9653
|
+
s1 = peg$c10();
|
|
9654
|
+
s0 = s1;
|
|
9655
|
+
} else {
|
|
9656
|
+
peg$currPos = s0;
|
|
9657
|
+
s0 = peg$FAILED;
|
|
9658
|
+
}
|
|
9659
|
+
} else {
|
|
9660
|
+
peg$currPos = s0;
|
|
9661
|
+
s0 = peg$FAILED;
|
|
9662
|
+
}
|
|
9663
|
+
} else {
|
|
9664
|
+
peg$currPos = s0;
|
|
9665
|
+
s0 = peg$FAILED;
|
|
9666
|
+
}
|
|
9667
|
+
return s0;
|
|
9668
|
+
}
|
|
9338
9669
|
function peg$parseenumCondition() {
|
|
9339
9670
|
var s0, s1, s2, s3, s4, s5;
|
|
9340
9671
|
s0 = peg$currPos;
|
|
@@ -9349,7 +9680,7 @@ function peg$parse(input, options) {
|
|
|
9349
9680
|
s5 = peg$parseIdentifier();
|
|
9350
9681
|
if (s5 !== peg$FAILED) {
|
|
9351
9682
|
peg$savedPos = s0;
|
|
9352
|
-
s1 = peg$
|
|
9683
|
+
s1 = peg$c107(s1, s3, s5);
|
|
9353
9684
|
s0 = s1;
|
|
9354
9685
|
} else {
|
|
9355
9686
|
peg$currPos = s0;
|
|
@@ -9385,17 +9716,17 @@ function peg$parse(input, options) {
|
|
|
9385
9716
|
var s0, s1;
|
|
9386
9717
|
s0 = peg$currPos;
|
|
9387
9718
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9388
|
-
s1 = peg$
|
|
9719
|
+
s1 = peg$c100;
|
|
9389
9720
|
peg$currPos++;
|
|
9390
9721
|
} else {
|
|
9391
9722
|
s1 = peg$FAILED;
|
|
9392
9723
|
if (peg$silentFails === 0) {
|
|
9393
|
-
peg$fail(peg$
|
|
9724
|
+
peg$fail(peg$c101);
|
|
9394
9725
|
}
|
|
9395
9726
|
}
|
|
9396
9727
|
if (s1 !== peg$FAILED) {
|
|
9397
9728
|
peg$savedPos = s0;
|
|
9398
|
-
s1 = peg$
|
|
9729
|
+
s1 = peg$c108();
|
|
9399
9730
|
}
|
|
9400
9731
|
s0 = s1;
|
|
9401
9732
|
return s0;
|
|
@@ -9410,12 +9741,12 @@ function peg$parse(input, options) {
|
|
|
9410
9741
|
s4 = peg$parse_();
|
|
9411
9742
|
if (s4 !== peg$FAILED) {
|
|
9412
9743
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9413
|
-
s5 = peg$
|
|
9744
|
+
s5 = peg$c100;
|
|
9414
9745
|
peg$currPos++;
|
|
9415
9746
|
} else {
|
|
9416
9747
|
s5 = peg$FAILED;
|
|
9417
9748
|
if (peg$silentFails === 0) {
|
|
9418
|
-
peg$fail(peg$
|
|
9749
|
+
peg$fail(peg$c101);
|
|
9419
9750
|
}
|
|
9420
9751
|
}
|
|
9421
9752
|
if (s5 !== peg$FAILED) {
|
|
@@ -9447,12 +9778,12 @@ function peg$parse(input, options) {
|
|
|
9447
9778
|
s4 = peg$parse_();
|
|
9448
9779
|
if (s4 !== peg$FAILED) {
|
|
9449
9780
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9450
|
-
s5 = peg$
|
|
9781
|
+
s5 = peg$c100;
|
|
9451
9782
|
peg$currPos++;
|
|
9452
9783
|
} else {
|
|
9453
9784
|
s5 = peg$FAILED;
|
|
9454
9785
|
if (peg$silentFails === 0) {
|
|
9455
|
-
peg$fail(peg$
|
|
9786
|
+
peg$fail(peg$c101);
|
|
9456
9787
|
}
|
|
9457
9788
|
}
|
|
9458
9789
|
if (s5 !== peg$FAILED) {
|
|
@@ -9481,7 +9812,7 @@ function peg$parse(input, options) {
|
|
|
9481
9812
|
}
|
|
9482
9813
|
if (s2 !== peg$FAILED) {
|
|
9483
9814
|
peg$savedPos = s0;
|
|
9484
|
-
s1 = peg$
|
|
9815
|
+
s1 = peg$c109(s1, s2);
|
|
9485
9816
|
s0 = s1;
|
|
9486
9817
|
} else {
|
|
9487
9818
|
peg$currPos = s0;
|
|
@@ -9500,25 +9831,25 @@ function peg$parse(input, options) {
|
|
|
9500
9831
|
s1 = peg$parse_();
|
|
9501
9832
|
if (s1 !== peg$FAILED) {
|
|
9502
9833
|
s2 = [];
|
|
9503
|
-
if (peg$
|
|
9834
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9504
9835
|
s3 = input.charAt(peg$currPos);
|
|
9505
9836
|
peg$currPos++;
|
|
9506
9837
|
} else {
|
|
9507
9838
|
s3 = peg$FAILED;
|
|
9508
9839
|
if (peg$silentFails === 0) {
|
|
9509
|
-
peg$fail(peg$
|
|
9840
|
+
peg$fail(peg$c106);
|
|
9510
9841
|
}
|
|
9511
9842
|
}
|
|
9512
9843
|
if (s3 !== peg$FAILED) {
|
|
9513
9844
|
while (s3 !== peg$FAILED) {
|
|
9514
9845
|
s2.push(s3);
|
|
9515
|
-
if (peg$
|
|
9846
|
+
if (peg$c105.test(input.charAt(peg$currPos))) {
|
|
9516
9847
|
s3 = input.charAt(peg$currPos);
|
|
9517
9848
|
peg$currPos++;
|
|
9518
9849
|
} else {
|
|
9519
9850
|
s3 = peg$FAILED;
|
|
9520
9851
|
if (peg$silentFails === 0) {
|
|
9521
|
-
peg$fail(peg$
|
|
9852
|
+
peg$fail(peg$c106);
|
|
9522
9853
|
}
|
|
9523
9854
|
}
|
|
9524
9855
|
}
|
|
@@ -9541,7 +9872,7 @@ function peg$parse(input, options) {
|
|
|
9541
9872
|
if (s0 === peg$FAILED) {
|
|
9542
9873
|
s1 = peg$FAILED;
|
|
9543
9874
|
if (peg$silentFails === 0) {
|
|
9544
|
-
peg$fail(peg$
|
|
9875
|
+
peg$fail(peg$c110);
|
|
9545
9876
|
}
|
|
9546
9877
|
}
|
|
9547
9878
|
return s0;
|
|
@@ -9575,7 +9906,7 @@ function peg$parse(input, options) {
|
|
|
9575
9906
|
if (s0 === peg$FAILED) {
|
|
9576
9907
|
s1 = peg$FAILED;
|
|
9577
9908
|
if (peg$silentFails === 0) {
|
|
9578
|
-
peg$fail(peg$
|
|
9909
|
+
peg$fail(peg$c111);
|
|
9579
9910
|
}
|
|
9580
9911
|
}
|
|
9581
9912
|
return s0;
|
|
@@ -9584,25 +9915,25 @@ function peg$parse(input, options) {
|
|
|
9584
9915
|
var s0, s1, s2;
|
|
9585
9916
|
s0 = peg$currPos;
|
|
9586
9917
|
s1 = [];
|
|
9587
|
-
if (peg$
|
|
9918
|
+
if (peg$c112.test(input.charAt(peg$currPos))) {
|
|
9588
9919
|
s2 = input.charAt(peg$currPos);
|
|
9589
9920
|
peg$currPos++;
|
|
9590
9921
|
} else {
|
|
9591
9922
|
s2 = peg$FAILED;
|
|
9592
9923
|
if (peg$silentFails === 0) {
|
|
9593
|
-
peg$fail(peg$
|
|
9924
|
+
peg$fail(peg$c113);
|
|
9594
9925
|
}
|
|
9595
9926
|
}
|
|
9596
9927
|
if (s2 !== peg$FAILED) {
|
|
9597
9928
|
while (s2 !== peg$FAILED) {
|
|
9598
9929
|
s1.push(s2);
|
|
9599
|
-
if (peg$
|
|
9930
|
+
if (peg$c112.test(input.charAt(peg$currPos))) {
|
|
9600
9931
|
s2 = input.charAt(peg$currPos);
|
|
9601
9932
|
peg$currPos++;
|
|
9602
9933
|
} else {
|
|
9603
9934
|
s2 = peg$FAILED;
|
|
9604
9935
|
if (peg$silentFails === 0) {
|
|
9605
|
-
peg$fail(peg$
|
|
9936
|
+
peg$fail(peg$c113);
|
|
9606
9937
|
}
|
|
9607
9938
|
}
|
|
9608
9939
|
}
|
|
@@ -9611,7 +9942,7 @@ function peg$parse(input, options) {
|
|
|
9611
9942
|
}
|
|
9612
9943
|
if (s1 !== peg$FAILED) {
|
|
9613
9944
|
peg$savedPos = s0;
|
|
9614
|
-
s1 = peg$
|
|
9945
|
+
s1 = peg$c114();
|
|
9615
9946
|
}
|
|
9616
9947
|
s0 = s1;
|
|
9617
9948
|
return s0;
|
|
@@ -9619,55 +9950,101 @@ function peg$parse(input, options) {
|
|
|
9619
9950
|
function peg$parsebang() {
|
|
9620
9951
|
var s0;
|
|
9621
9952
|
if (input.charCodeAt(peg$currPos) === 33) {
|
|
9622
|
-
s0 = peg$
|
|
9953
|
+
s0 = peg$c115;
|
|
9623
9954
|
peg$currPos++;
|
|
9624
9955
|
} else {
|
|
9625
9956
|
s0 = peg$FAILED;
|
|
9626
9957
|
if (peg$silentFails === 0) {
|
|
9627
|
-
peg$fail(peg$
|
|
9958
|
+
peg$fail(peg$c116);
|
|
9628
9959
|
}
|
|
9629
9960
|
}
|
|
9630
9961
|
return s0;
|
|
9631
9962
|
}
|
|
9632
9963
|
function peg$parseEqualityOperator() {
|
|
9633
9964
|
var s0;
|
|
9634
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
9635
|
-
s0 = peg$
|
|
9965
|
+
if (input.substr(peg$currPos, 3) === peg$c117) {
|
|
9966
|
+
s0 = peg$c117;
|
|
9636
9967
|
peg$currPos += 3;
|
|
9637
9968
|
} else {
|
|
9638
9969
|
s0 = peg$FAILED;
|
|
9639
9970
|
if (peg$silentFails === 0) {
|
|
9640
|
-
peg$fail(peg$
|
|
9971
|
+
peg$fail(peg$c118);
|
|
9641
9972
|
}
|
|
9642
9973
|
}
|
|
9643
9974
|
if (s0 === peg$FAILED) {
|
|
9644
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
9645
|
-
s0 = peg$
|
|
9975
|
+
if (input.substr(peg$currPos, 3) === peg$c119) {
|
|
9976
|
+
s0 = peg$c119;
|
|
9646
9977
|
peg$currPos += 3;
|
|
9647
9978
|
} else {
|
|
9648
9979
|
s0 = peg$FAILED;
|
|
9649
9980
|
if (peg$silentFails === 0) {
|
|
9650
|
-
peg$fail(peg$
|
|
9981
|
+
peg$fail(peg$c120);
|
|
9651
9982
|
}
|
|
9652
9983
|
}
|
|
9653
9984
|
if (s0 === peg$FAILED) {
|
|
9654
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
9655
|
-
s0 = peg$
|
|
9985
|
+
if (input.substr(peg$currPos, 2) === peg$c121) {
|
|
9986
|
+
s0 = peg$c121;
|
|
9656
9987
|
peg$currPos += 2;
|
|
9657
9988
|
} else {
|
|
9658
9989
|
s0 = peg$FAILED;
|
|
9659
9990
|
if (peg$silentFails === 0) {
|
|
9660
|
-
peg$fail(peg$
|
|
9991
|
+
peg$fail(peg$c122);
|
|
9661
9992
|
}
|
|
9662
9993
|
}
|
|
9663
9994
|
if (s0 === peg$FAILED) {
|
|
9664
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
9665
|
-
s0 = peg$
|
|
9995
|
+
if (input.substr(peg$currPos, 2) === peg$c123) {
|
|
9996
|
+
s0 = peg$c123;
|
|
9666
9997
|
peg$currPos += 2;
|
|
9667
9998
|
} else {
|
|
9668
9999
|
s0 = peg$FAILED;
|
|
9669
10000
|
if (peg$silentFails === 0) {
|
|
9670
|
-
peg$fail(peg$
|
|
10001
|
+
peg$fail(peg$c124);
|
|
10002
|
+
}
|
|
10003
|
+
}
|
|
10004
|
+
}
|
|
10005
|
+
}
|
|
10006
|
+
}
|
|
10007
|
+
return s0;
|
|
10008
|
+
}
|
|
10009
|
+
function peg$parseOrderingOperator() {
|
|
10010
|
+
var s0;
|
|
10011
|
+
if (input.substr(peg$currPos, 2) === peg$c125) {
|
|
10012
|
+
s0 = peg$c125;
|
|
10013
|
+
peg$currPos += 2;
|
|
10014
|
+
} else {
|
|
10015
|
+
s0 = peg$FAILED;
|
|
10016
|
+
if (peg$silentFails === 0) {
|
|
10017
|
+
peg$fail(peg$c126);
|
|
10018
|
+
}
|
|
10019
|
+
}
|
|
10020
|
+
if (s0 === peg$FAILED) {
|
|
10021
|
+
if (input.substr(peg$currPos, 2) === peg$c127) {
|
|
10022
|
+
s0 = peg$c127;
|
|
10023
|
+
peg$currPos += 2;
|
|
10024
|
+
} else {
|
|
10025
|
+
s0 = peg$FAILED;
|
|
10026
|
+
if (peg$silentFails === 0) {
|
|
10027
|
+
peg$fail(peg$c128);
|
|
10028
|
+
}
|
|
10029
|
+
}
|
|
10030
|
+
if (s0 === peg$FAILED) {
|
|
10031
|
+
if (input.charCodeAt(peg$currPos) === 60) {
|
|
10032
|
+
s0 = peg$c129;
|
|
10033
|
+
peg$currPos++;
|
|
10034
|
+
} else {
|
|
10035
|
+
s0 = peg$FAILED;
|
|
10036
|
+
if (peg$silentFails === 0) {
|
|
10037
|
+
peg$fail(peg$c130);
|
|
10038
|
+
}
|
|
10039
|
+
}
|
|
10040
|
+
if (s0 === peg$FAILED) {
|
|
10041
|
+
if (input.charCodeAt(peg$currPos) === 62) {
|
|
10042
|
+
s0 = peg$c131;
|
|
10043
|
+
peg$currPos++;
|
|
10044
|
+
} else {
|
|
10045
|
+
s0 = peg$FAILED;
|
|
10046
|
+
if (peg$silentFails === 0) {
|
|
10047
|
+
peg$fail(peg$c132);
|
|
9671
10048
|
}
|
|
9672
10049
|
}
|
|
9673
10050
|
}
|
|
@@ -9692,7 +10069,7 @@ function peg$parse(input, options) {
|
|
|
9692
10069
|
s2 = peg$parseIdentifierName();
|
|
9693
10070
|
if (s2 !== peg$FAILED) {
|
|
9694
10071
|
peg$savedPos = s0;
|
|
9695
|
-
s1 = peg$
|
|
10072
|
+
s1 = peg$c133();
|
|
9696
10073
|
s0 = s1;
|
|
9697
10074
|
} else {
|
|
9698
10075
|
peg$currPos = s0;
|
|
@@ -9718,7 +10095,7 @@ function peg$parse(input, options) {
|
|
|
9718
10095
|
}
|
|
9719
10096
|
if (s2 !== peg$FAILED) {
|
|
9720
10097
|
peg$savedPos = s0;
|
|
9721
|
-
s1 = peg$
|
|
10098
|
+
s1 = peg$c135(s1, s2);
|
|
9722
10099
|
s0 = s1;
|
|
9723
10100
|
} else {
|
|
9724
10101
|
peg$currPos = s0;
|
|
@@ -9732,7 +10109,7 @@ function peg$parse(input, options) {
|
|
|
9732
10109
|
if (s0 === peg$FAILED) {
|
|
9733
10110
|
s1 = peg$FAILED;
|
|
9734
10111
|
if (peg$silentFails === 0) {
|
|
9735
|
-
peg$fail(peg$
|
|
10112
|
+
peg$fail(peg$c134);
|
|
9736
10113
|
}
|
|
9737
10114
|
}
|
|
9738
10115
|
return s0;
|
|
@@ -9742,40 +10119,40 @@ function peg$parse(input, options) {
|
|
|
9742
10119
|
s0 = peg$parseUnicodeLetter();
|
|
9743
10120
|
if (s0 === peg$FAILED) {
|
|
9744
10121
|
if (input.charCodeAt(peg$currPos) === 36) {
|
|
9745
|
-
s0 = peg$
|
|
10122
|
+
s0 = peg$c136;
|
|
9746
10123
|
peg$currPos++;
|
|
9747
10124
|
} else {
|
|
9748
10125
|
s0 = peg$FAILED;
|
|
9749
10126
|
if (peg$silentFails === 0) {
|
|
9750
|
-
peg$fail(peg$
|
|
10127
|
+
peg$fail(peg$c137);
|
|
9751
10128
|
}
|
|
9752
10129
|
}
|
|
9753
10130
|
if (s0 === peg$FAILED) {
|
|
9754
10131
|
if (input.charCodeAt(peg$currPos) === 95) {
|
|
9755
|
-
s0 = peg$
|
|
10132
|
+
s0 = peg$c138;
|
|
9756
10133
|
peg$currPos++;
|
|
9757
10134
|
} else {
|
|
9758
10135
|
s0 = peg$FAILED;
|
|
9759
10136
|
if (peg$silentFails === 0) {
|
|
9760
|
-
peg$fail(peg$
|
|
10137
|
+
peg$fail(peg$c139);
|
|
9761
10138
|
}
|
|
9762
10139
|
}
|
|
9763
10140
|
if (s0 === peg$FAILED) {
|
|
9764
10141
|
s0 = peg$currPos;
|
|
9765
10142
|
if (input.charCodeAt(peg$currPos) === 92) {
|
|
9766
|
-
s1 = peg$
|
|
10143
|
+
s1 = peg$c140;
|
|
9767
10144
|
peg$currPos++;
|
|
9768
10145
|
} else {
|
|
9769
10146
|
s1 = peg$FAILED;
|
|
9770
10147
|
if (peg$silentFails === 0) {
|
|
9771
|
-
peg$fail(peg$
|
|
10148
|
+
peg$fail(peg$c141);
|
|
9772
10149
|
}
|
|
9773
10150
|
}
|
|
9774
10151
|
if (s1 !== peg$FAILED) {
|
|
9775
10152
|
s2 = peg$parseUnicodeEscapeSequence();
|
|
9776
10153
|
if (s2 !== peg$FAILED) {
|
|
9777
10154
|
peg$savedPos = s0;
|
|
9778
|
-
s1 = peg$
|
|
10155
|
+
s1 = peg$c142(s2);
|
|
9779
10156
|
s0 = s1;
|
|
9780
10157
|
} else {
|
|
9781
10158
|
peg$currPos = s0;
|
|
@@ -9801,22 +10178,22 @@ function peg$parse(input, options) {
|
|
|
9801
10178
|
s0 = peg$parsePc();
|
|
9802
10179
|
if (s0 === peg$FAILED) {
|
|
9803
10180
|
if (input.charCodeAt(peg$currPos) === 8204) {
|
|
9804
|
-
s0 = peg$
|
|
10181
|
+
s0 = peg$c143;
|
|
9805
10182
|
peg$currPos++;
|
|
9806
10183
|
} else {
|
|
9807
10184
|
s0 = peg$FAILED;
|
|
9808
10185
|
if (peg$silentFails === 0) {
|
|
9809
|
-
peg$fail(peg$
|
|
10186
|
+
peg$fail(peg$c144);
|
|
9810
10187
|
}
|
|
9811
10188
|
}
|
|
9812
10189
|
if (s0 === peg$FAILED) {
|
|
9813
10190
|
if (input.charCodeAt(peg$currPos) === 8205) {
|
|
9814
|
-
s0 = peg$
|
|
10191
|
+
s0 = peg$c145;
|
|
9815
10192
|
peg$currPos++;
|
|
9816
10193
|
} else {
|
|
9817
10194
|
s0 = peg$FAILED;
|
|
9818
10195
|
if (peg$silentFails === 0) {
|
|
9819
|
-
peg$fail(peg$
|
|
10196
|
+
peg$fail(peg$c146);
|
|
9820
10197
|
}
|
|
9821
10198
|
}
|
|
9822
10199
|
}
|
|
@@ -9864,12 +10241,12 @@ function peg$parse(input, options) {
|
|
|
9864
10241
|
var s0, s1, s2, s3, s4, s5, s6, s7;
|
|
9865
10242
|
s0 = peg$currPos;
|
|
9866
10243
|
if (input.charCodeAt(peg$currPos) === 117) {
|
|
9867
|
-
s1 = peg$
|
|
10244
|
+
s1 = peg$c147;
|
|
9868
10245
|
peg$currPos++;
|
|
9869
10246
|
} else {
|
|
9870
10247
|
s1 = peg$FAILED;
|
|
9871
10248
|
if (peg$silentFails === 0) {
|
|
9872
|
-
peg$fail(peg$
|
|
10249
|
+
peg$fail(peg$c148);
|
|
9873
10250
|
}
|
|
9874
10251
|
}
|
|
9875
10252
|
if (s1 !== peg$FAILED) {
|
|
@@ -9908,7 +10285,7 @@ function peg$parse(input, options) {
|
|
|
9908
10285
|
}
|
|
9909
10286
|
if (s2 !== peg$FAILED) {
|
|
9910
10287
|
peg$savedPos = s0;
|
|
9911
|
-
s1 = peg$
|
|
10288
|
+
s1 = peg$c149(s2);
|
|
9912
10289
|
s0 = s1;
|
|
9913
10290
|
} else {
|
|
9914
10291
|
peg$currPos = s0;
|
|
@@ -10037,7 +10414,7 @@ function peg$parse(input, options) {
|
|
|
10037
10414
|
s1 = peg$parseNullToken();
|
|
10038
10415
|
if (s1 !== peg$FAILED) {
|
|
10039
10416
|
peg$savedPos = s0;
|
|
10040
|
-
s1 = peg$
|
|
10417
|
+
s1 = peg$c150();
|
|
10041
10418
|
}
|
|
10042
10419
|
s0 = s1;
|
|
10043
10420
|
return s0;
|
|
@@ -10048,7 +10425,7 @@ function peg$parse(input, options) {
|
|
|
10048
10425
|
s1 = peg$parseTrueToken();
|
|
10049
10426
|
if (s1 !== peg$FAILED) {
|
|
10050
10427
|
peg$savedPos = s0;
|
|
10051
|
-
s1 = peg$
|
|
10428
|
+
s1 = peg$c151();
|
|
10052
10429
|
}
|
|
10053
10430
|
s0 = s1;
|
|
10054
10431
|
if (s0 === peg$FAILED) {
|
|
@@ -10056,7 +10433,7 @@ function peg$parse(input, options) {
|
|
|
10056
10433
|
s1 = peg$parseFalseToken();
|
|
10057
10434
|
if (s1 !== peg$FAILED) {
|
|
10058
10435
|
peg$savedPos = s0;
|
|
10059
|
-
s1 = peg$
|
|
10436
|
+
s1 = peg$c152();
|
|
10060
10437
|
}
|
|
10061
10438
|
s0 = s1;
|
|
10062
10439
|
}
|
|
@@ -10064,143 +10441,143 @@ function peg$parse(input, options) {
|
|
|
10064
10441
|
}
|
|
10065
10442
|
function peg$parseLu() {
|
|
10066
10443
|
var s0;
|
|
10067
|
-
if (peg$
|
|
10444
|
+
if (peg$c153.test(input.charAt(peg$currPos))) {
|
|
10068
10445
|
s0 = input.charAt(peg$currPos);
|
|
10069
10446
|
peg$currPos++;
|
|
10070
10447
|
} else {
|
|
10071
10448
|
s0 = peg$FAILED;
|
|
10072
10449
|
if (peg$silentFails === 0) {
|
|
10073
|
-
peg$fail(peg$
|
|
10450
|
+
peg$fail(peg$c154);
|
|
10074
10451
|
}
|
|
10075
10452
|
}
|
|
10076
10453
|
return s0;
|
|
10077
10454
|
}
|
|
10078
10455
|
function peg$parseLl() {
|
|
10079
10456
|
var s0;
|
|
10080
|
-
if (peg$
|
|
10457
|
+
if (peg$c155.test(input.charAt(peg$currPos))) {
|
|
10081
10458
|
s0 = input.charAt(peg$currPos);
|
|
10082
10459
|
peg$currPos++;
|
|
10083
10460
|
} else {
|
|
10084
10461
|
s0 = peg$FAILED;
|
|
10085
10462
|
if (peg$silentFails === 0) {
|
|
10086
|
-
peg$fail(peg$
|
|
10463
|
+
peg$fail(peg$c156);
|
|
10087
10464
|
}
|
|
10088
10465
|
}
|
|
10089
10466
|
return s0;
|
|
10090
10467
|
}
|
|
10091
10468
|
function peg$parseLt() {
|
|
10092
10469
|
var s0;
|
|
10093
|
-
if (peg$
|
|
10470
|
+
if (peg$c157.test(input.charAt(peg$currPos))) {
|
|
10094
10471
|
s0 = input.charAt(peg$currPos);
|
|
10095
10472
|
peg$currPos++;
|
|
10096
10473
|
} else {
|
|
10097
10474
|
s0 = peg$FAILED;
|
|
10098
10475
|
if (peg$silentFails === 0) {
|
|
10099
|
-
peg$fail(peg$
|
|
10476
|
+
peg$fail(peg$c158);
|
|
10100
10477
|
}
|
|
10101
10478
|
}
|
|
10102
10479
|
return s0;
|
|
10103
10480
|
}
|
|
10104
10481
|
function peg$parseLm() {
|
|
10105
10482
|
var s0;
|
|
10106
|
-
if (peg$
|
|
10483
|
+
if (peg$c159.test(input.charAt(peg$currPos))) {
|
|
10107
10484
|
s0 = input.charAt(peg$currPos);
|
|
10108
10485
|
peg$currPos++;
|
|
10109
10486
|
} else {
|
|
10110
10487
|
s0 = peg$FAILED;
|
|
10111
10488
|
if (peg$silentFails === 0) {
|
|
10112
|
-
peg$fail(peg$
|
|
10489
|
+
peg$fail(peg$c160);
|
|
10113
10490
|
}
|
|
10114
10491
|
}
|
|
10115
10492
|
return s0;
|
|
10116
10493
|
}
|
|
10117
10494
|
function peg$parseLo() {
|
|
10118
10495
|
var s0;
|
|
10119
|
-
if (peg$
|
|
10496
|
+
if (peg$c161.test(input.charAt(peg$currPos))) {
|
|
10120
10497
|
s0 = input.charAt(peg$currPos);
|
|
10121
10498
|
peg$currPos++;
|
|
10122
10499
|
} else {
|
|
10123
10500
|
s0 = peg$FAILED;
|
|
10124
10501
|
if (peg$silentFails === 0) {
|
|
10125
|
-
peg$fail(peg$
|
|
10502
|
+
peg$fail(peg$c162);
|
|
10126
10503
|
}
|
|
10127
10504
|
}
|
|
10128
10505
|
return s0;
|
|
10129
10506
|
}
|
|
10130
10507
|
function peg$parseNl() {
|
|
10131
10508
|
var s0;
|
|
10132
|
-
if (peg$
|
|
10509
|
+
if (peg$c163.test(input.charAt(peg$currPos))) {
|
|
10133
10510
|
s0 = input.charAt(peg$currPos);
|
|
10134
10511
|
peg$currPos++;
|
|
10135
10512
|
} else {
|
|
10136
10513
|
s0 = peg$FAILED;
|
|
10137
10514
|
if (peg$silentFails === 0) {
|
|
10138
|
-
peg$fail(peg$
|
|
10515
|
+
peg$fail(peg$c164);
|
|
10139
10516
|
}
|
|
10140
10517
|
}
|
|
10141
10518
|
return s0;
|
|
10142
10519
|
}
|
|
10143
10520
|
function peg$parseMn() {
|
|
10144
10521
|
var s0;
|
|
10145
|
-
if (peg$
|
|
10522
|
+
if (peg$c165.test(input.charAt(peg$currPos))) {
|
|
10146
10523
|
s0 = input.charAt(peg$currPos);
|
|
10147
10524
|
peg$currPos++;
|
|
10148
10525
|
} else {
|
|
10149
10526
|
s0 = peg$FAILED;
|
|
10150
10527
|
if (peg$silentFails === 0) {
|
|
10151
|
-
peg$fail(peg$
|
|
10528
|
+
peg$fail(peg$c166);
|
|
10152
10529
|
}
|
|
10153
10530
|
}
|
|
10154
10531
|
return s0;
|
|
10155
10532
|
}
|
|
10156
10533
|
function peg$parseMc() {
|
|
10157
10534
|
var s0;
|
|
10158
|
-
if (peg$
|
|
10535
|
+
if (peg$c167.test(input.charAt(peg$currPos))) {
|
|
10159
10536
|
s0 = input.charAt(peg$currPos);
|
|
10160
10537
|
peg$currPos++;
|
|
10161
10538
|
} else {
|
|
10162
10539
|
s0 = peg$FAILED;
|
|
10163
10540
|
if (peg$silentFails === 0) {
|
|
10164
|
-
peg$fail(peg$
|
|
10541
|
+
peg$fail(peg$c168);
|
|
10165
10542
|
}
|
|
10166
10543
|
}
|
|
10167
10544
|
return s0;
|
|
10168
10545
|
}
|
|
10169
10546
|
function peg$parseNd() {
|
|
10170
10547
|
var s0;
|
|
10171
|
-
if (peg$
|
|
10548
|
+
if (peg$c169.test(input.charAt(peg$currPos))) {
|
|
10172
10549
|
s0 = input.charAt(peg$currPos);
|
|
10173
10550
|
peg$currPos++;
|
|
10174
10551
|
} else {
|
|
10175
10552
|
s0 = peg$FAILED;
|
|
10176
10553
|
if (peg$silentFails === 0) {
|
|
10177
|
-
peg$fail(peg$
|
|
10554
|
+
peg$fail(peg$c170);
|
|
10178
10555
|
}
|
|
10179
10556
|
}
|
|
10180
10557
|
return s0;
|
|
10181
10558
|
}
|
|
10182
10559
|
function peg$parsePc() {
|
|
10183
10560
|
var s0;
|
|
10184
|
-
if (peg$
|
|
10561
|
+
if (peg$c171.test(input.charAt(peg$currPos))) {
|
|
10185
10562
|
s0 = input.charAt(peg$currPos);
|
|
10186
10563
|
peg$currPos++;
|
|
10187
10564
|
} else {
|
|
10188
10565
|
s0 = peg$FAILED;
|
|
10189
10566
|
if (peg$silentFails === 0) {
|
|
10190
|
-
peg$fail(peg$
|
|
10567
|
+
peg$fail(peg$c172);
|
|
10191
10568
|
}
|
|
10192
10569
|
}
|
|
10193
10570
|
return s0;
|
|
10194
10571
|
}
|
|
10195
10572
|
function peg$parseHexDigit() {
|
|
10196
10573
|
var s0;
|
|
10197
|
-
if (peg$
|
|
10574
|
+
if (peg$c175.test(input.charAt(peg$currPos))) {
|
|
10198
10575
|
s0 = input.charAt(peg$currPos);
|
|
10199
10576
|
peg$currPos++;
|
|
10200
10577
|
} else {
|
|
10201
10578
|
s0 = peg$FAILED;
|
|
10202
10579
|
if (peg$silentFails === 0) {
|
|
10203
|
-
peg$fail(peg$
|
|
10580
|
+
peg$fail(peg$c176);
|
|
10204
10581
|
}
|
|
10205
10582
|
}
|
|
10206
10583
|
return s0;
|
|
@@ -10208,13 +10585,13 @@ function peg$parse(input, options) {
|
|
|
10208
10585
|
function peg$parseBreakToken() {
|
|
10209
10586
|
var s0, s1, s2, s3;
|
|
10210
10587
|
s0 = peg$currPos;
|
|
10211
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10212
|
-
s1 = peg$
|
|
10588
|
+
if (input.substr(peg$currPos, 5) === peg$c177) {
|
|
10589
|
+
s1 = peg$c177;
|
|
10213
10590
|
peg$currPos += 5;
|
|
10214
10591
|
} else {
|
|
10215
10592
|
s1 = peg$FAILED;
|
|
10216
10593
|
if (peg$silentFails === 0) {
|
|
10217
|
-
peg$fail(peg$
|
|
10594
|
+
peg$fail(peg$c178);
|
|
10218
10595
|
}
|
|
10219
10596
|
}
|
|
10220
10597
|
if (s1 !== peg$FAILED) {
|
|
@@ -10244,13 +10621,13 @@ function peg$parse(input, options) {
|
|
|
10244
10621
|
function peg$parseCaseToken() {
|
|
10245
10622
|
var s0, s1, s2, s3;
|
|
10246
10623
|
s0 = peg$currPos;
|
|
10247
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
10248
|
-
s1 = peg$
|
|
10624
|
+
if (input.substr(peg$currPos, 4) === peg$c179) {
|
|
10625
|
+
s1 = peg$c179;
|
|
10249
10626
|
peg$currPos += 4;
|
|
10250
10627
|
} else {
|
|
10251
10628
|
s1 = peg$FAILED;
|
|
10252
10629
|
if (peg$silentFails === 0) {
|
|
10253
|
-
peg$fail(peg$
|
|
10630
|
+
peg$fail(peg$c180);
|
|
10254
10631
|
}
|
|
10255
10632
|
}
|
|
10256
10633
|
if (s1 !== peg$FAILED) {
|
|
@@ -10280,13 +10657,13 @@ function peg$parse(input, options) {
|
|
|
10280
10657
|
function peg$parseCatchToken() {
|
|
10281
10658
|
var s0, s1, s2, s3;
|
|
10282
10659
|
s0 = peg$currPos;
|
|
10283
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10284
|
-
s1 = peg$
|
|
10660
|
+
if (input.substr(peg$currPos, 5) === peg$c181) {
|
|
10661
|
+
s1 = peg$c181;
|
|
10285
10662
|
peg$currPos += 5;
|
|
10286
10663
|
} else {
|
|
10287
10664
|
s1 = peg$FAILED;
|
|
10288
10665
|
if (peg$silentFails === 0) {
|
|
10289
|
-
peg$fail(peg$
|
|
10666
|
+
peg$fail(peg$c182);
|
|
10290
10667
|
}
|
|
10291
10668
|
}
|
|
10292
10669
|
if (s1 !== peg$FAILED) {
|
|
@@ -10316,13 +10693,13 @@ function peg$parse(input, options) {
|
|
|
10316
10693
|
function peg$parseClassToken() {
|
|
10317
10694
|
var s0, s1, s2, s3;
|
|
10318
10695
|
s0 = peg$currPos;
|
|
10319
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10320
|
-
s1 = peg$
|
|
10696
|
+
if (input.substr(peg$currPos, 5) === peg$c183) {
|
|
10697
|
+
s1 = peg$c183;
|
|
10321
10698
|
peg$currPos += 5;
|
|
10322
10699
|
} else {
|
|
10323
10700
|
s1 = peg$FAILED;
|
|
10324
10701
|
if (peg$silentFails === 0) {
|
|
10325
|
-
peg$fail(peg$
|
|
10702
|
+
peg$fail(peg$c184);
|
|
10326
10703
|
}
|
|
10327
10704
|
}
|
|
10328
10705
|
if (s1 !== peg$FAILED) {
|
|
@@ -10352,13 +10729,13 @@ function peg$parse(input, options) {
|
|
|
10352
10729
|
function peg$parseConstToken() {
|
|
10353
10730
|
var s0, s1, s2, s3;
|
|
10354
10731
|
s0 = peg$currPos;
|
|
10355
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10356
|
-
s1 = peg$
|
|
10732
|
+
if (input.substr(peg$currPos, 5) === peg$c185) {
|
|
10733
|
+
s1 = peg$c185;
|
|
10357
10734
|
peg$currPos += 5;
|
|
10358
10735
|
} else {
|
|
10359
10736
|
s1 = peg$FAILED;
|
|
10360
10737
|
if (peg$silentFails === 0) {
|
|
10361
|
-
peg$fail(peg$
|
|
10738
|
+
peg$fail(peg$c186);
|
|
10362
10739
|
}
|
|
10363
10740
|
}
|
|
10364
10741
|
if (s1 !== peg$FAILED) {
|
|
@@ -10388,13 +10765,13 @@ function peg$parse(input, options) {
|
|
|
10388
10765
|
function peg$parseContinueToken() {
|
|
10389
10766
|
var s0, s1, s2, s3;
|
|
10390
10767
|
s0 = peg$currPos;
|
|
10391
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
10392
|
-
s1 = peg$
|
|
10768
|
+
if (input.substr(peg$currPos, 8) === peg$c187) {
|
|
10769
|
+
s1 = peg$c187;
|
|
10393
10770
|
peg$currPos += 8;
|
|
10394
10771
|
} else {
|
|
10395
10772
|
s1 = peg$FAILED;
|
|
10396
10773
|
if (peg$silentFails === 0) {
|
|
10397
|
-
peg$fail(peg$
|
|
10774
|
+
peg$fail(peg$c188);
|
|
10398
10775
|
}
|
|
10399
10776
|
}
|
|
10400
10777
|
if (s1 !== peg$FAILED) {
|
|
@@ -10424,13 +10801,13 @@ function peg$parse(input, options) {
|
|
|
10424
10801
|
function peg$parseDebuggerToken() {
|
|
10425
10802
|
var s0, s1, s2, s3;
|
|
10426
10803
|
s0 = peg$currPos;
|
|
10427
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
10428
|
-
s1 = peg$
|
|
10804
|
+
if (input.substr(peg$currPos, 8) === peg$c189) {
|
|
10805
|
+
s1 = peg$c189;
|
|
10429
10806
|
peg$currPos += 8;
|
|
10430
10807
|
} else {
|
|
10431
10808
|
s1 = peg$FAILED;
|
|
10432
10809
|
if (peg$silentFails === 0) {
|
|
10433
|
-
peg$fail(peg$
|
|
10810
|
+
peg$fail(peg$c190);
|
|
10434
10811
|
}
|
|
10435
10812
|
}
|
|
10436
10813
|
if (s1 !== peg$FAILED) {
|
|
@@ -10460,13 +10837,13 @@ function peg$parse(input, options) {
|
|
|
10460
10837
|
function peg$parseDefaultToken() {
|
|
10461
10838
|
var s0, s1, s2, s3;
|
|
10462
10839
|
s0 = peg$currPos;
|
|
10463
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
10464
|
-
s1 = peg$
|
|
10840
|
+
if (input.substr(peg$currPos, 7) === peg$c191) {
|
|
10841
|
+
s1 = peg$c191;
|
|
10465
10842
|
peg$currPos += 7;
|
|
10466
10843
|
} else {
|
|
10467
10844
|
s1 = peg$FAILED;
|
|
10468
10845
|
if (peg$silentFails === 0) {
|
|
10469
|
-
peg$fail(peg$
|
|
10846
|
+
peg$fail(peg$c192);
|
|
10470
10847
|
}
|
|
10471
10848
|
}
|
|
10472
10849
|
if (s1 !== peg$FAILED) {
|
|
@@ -10496,13 +10873,13 @@ function peg$parse(input, options) {
|
|
|
10496
10873
|
function peg$parseDeleteToken() {
|
|
10497
10874
|
var s0, s1, s2, s3;
|
|
10498
10875
|
s0 = peg$currPos;
|
|
10499
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
10500
|
-
s1 = peg$
|
|
10876
|
+
if (input.substr(peg$currPos, 6) === peg$c193) {
|
|
10877
|
+
s1 = peg$c193;
|
|
10501
10878
|
peg$currPos += 6;
|
|
10502
10879
|
} else {
|
|
10503
10880
|
s1 = peg$FAILED;
|
|
10504
10881
|
if (peg$silentFails === 0) {
|
|
10505
|
-
peg$fail(peg$
|
|
10882
|
+
peg$fail(peg$c194);
|
|
10506
10883
|
}
|
|
10507
10884
|
}
|
|
10508
10885
|
if (s1 !== peg$FAILED) {
|
|
@@ -10532,13 +10909,13 @@ function peg$parse(input, options) {
|
|
|
10532
10909
|
function peg$parseDoToken() {
|
|
10533
10910
|
var s0, s1, s2, s3;
|
|
10534
10911
|
s0 = peg$currPos;
|
|
10535
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10536
|
-
s1 = peg$
|
|
10912
|
+
if (input.substr(peg$currPos, 2) === peg$c195) {
|
|
10913
|
+
s1 = peg$c195;
|
|
10537
10914
|
peg$currPos += 2;
|
|
10538
10915
|
} else {
|
|
10539
10916
|
s1 = peg$FAILED;
|
|
10540
10917
|
if (peg$silentFails === 0) {
|
|
10541
|
-
peg$fail(peg$
|
|
10918
|
+
peg$fail(peg$c196);
|
|
10542
10919
|
}
|
|
10543
10920
|
}
|
|
10544
10921
|
if (s1 !== peg$FAILED) {
|
|
@@ -10568,13 +10945,13 @@ function peg$parse(input, options) {
|
|
|
10568
10945
|
function peg$parseElseToken() {
|
|
10569
10946
|
var s0, s1, s2, s3;
|
|
10570
10947
|
s0 = peg$currPos;
|
|
10571
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
10572
|
-
s1 = peg$
|
|
10948
|
+
if (input.substr(peg$currPos, 4) === peg$c197) {
|
|
10949
|
+
s1 = peg$c197;
|
|
10573
10950
|
peg$currPos += 4;
|
|
10574
10951
|
} else {
|
|
10575
10952
|
s1 = peg$FAILED;
|
|
10576
10953
|
if (peg$silentFails === 0) {
|
|
10577
|
-
peg$fail(peg$
|
|
10954
|
+
peg$fail(peg$c198);
|
|
10578
10955
|
}
|
|
10579
10956
|
}
|
|
10580
10957
|
if (s1 !== peg$FAILED) {
|
|
@@ -10640,13 +11017,13 @@ function peg$parse(input, options) {
|
|
|
10640
11017
|
function peg$parseExportToken() {
|
|
10641
11018
|
var s0, s1, s2, s3;
|
|
10642
11019
|
s0 = peg$currPos;
|
|
10643
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
10644
|
-
s1 = peg$
|
|
11020
|
+
if (input.substr(peg$currPos, 6) === peg$c199) {
|
|
11021
|
+
s1 = peg$c199;
|
|
10645
11022
|
peg$currPos += 6;
|
|
10646
11023
|
} else {
|
|
10647
11024
|
s1 = peg$FAILED;
|
|
10648
11025
|
if (peg$silentFails === 0) {
|
|
10649
|
-
peg$fail(peg$
|
|
11026
|
+
peg$fail(peg$c200);
|
|
10650
11027
|
}
|
|
10651
11028
|
}
|
|
10652
11029
|
if (s1 !== peg$FAILED) {
|
|
@@ -10676,13 +11053,13 @@ function peg$parse(input, options) {
|
|
|
10676
11053
|
function peg$parseExtendsToken() {
|
|
10677
11054
|
var s0, s1, s2, s3;
|
|
10678
11055
|
s0 = peg$currPos;
|
|
10679
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
10680
|
-
s1 = peg$
|
|
11056
|
+
if (input.substr(peg$currPos, 7) === peg$c201) {
|
|
11057
|
+
s1 = peg$c201;
|
|
10681
11058
|
peg$currPos += 7;
|
|
10682
11059
|
} else {
|
|
10683
11060
|
s1 = peg$FAILED;
|
|
10684
11061
|
if (peg$silentFails === 0) {
|
|
10685
|
-
peg$fail(peg$
|
|
11062
|
+
peg$fail(peg$c202);
|
|
10686
11063
|
}
|
|
10687
11064
|
}
|
|
10688
11065
|
if (s1 !== peg$FAILED) {
|
|
@@ -10712,13 +11089,13 @@ function peg$parse(input, options) {
|
|
|
10712
11089
|
function peg$parseFalseToken() {
|
|
10713
11090
|
var s0, s1, s2, s3;
|
|
10714
11091
|
s0 = peg$currPos;
|
|
10715
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10716
|
-
s1 = peg$
|
|
11092
|
+
if (input.substr(peg$currPos, 5) === peg$c203) {
|
|
11093
|
+
s1 = peg$c203;
|
|
10717
11094
|
peg$currPos += 5;
|
|
10718
11095
|
} else {
|
|
10719
11096
|
s1 = peg$FAILED;
|
|
10720
11097
|
if (peg$silentFails === 0) {
|
|
10721
|
-
peg$fail(peg$
|
|
11098
|
+
peg$fail(peg$c204);
|
|
10722
11099
|
}
|
|
10723
11100
|
}
|
|
10724
11101
|
if (s1 !== peg$FAILED) {
|
|
@@ -10748,13 +11125,13 @@ function peg$parse(input, options) {
|
|
|
10748
11125
|
function peg$parseFinallyToken() {
|
|
10749
11126
|
var s0, s1, s2, s3;
|
|
10750
11127
|
s0 = peg$currPos;
|
|
10751
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
10752
|
-
s1 = peg$
|
|
11128
|
+
if (input.substr(peg$currPos, 7) === peg$c205) {
|
|
11129
|
+
s1 = peg$c205;
|
|
10753
11130
|
peg$currPos += 7;
|
|
10754
11131
|
} else {
|
|
10755
11132
|
s1 = peg$FAILED;
|
|
10756
11133
|
if (peg$silentFails === 0) {
|
|
10757
|
-
peg$fail(peg$
|
|
11134
|
+
peg$fail(peg$c206);
|
|
10758
11135
|
}
|
|
10759
11136
|
}
|
|
10760
11137
|
if (s1 !== peg$FAILED) {
|
|
@@ -10784,13 +11161,13 @@ function peg$parse(input, options) {
|
|
|
10784
11161
|
function peg$parseForToken() {
|
|
10785
11162
|
var s0, s1, s2, s3;
|
|
10786
11163
|
s0 = peg$currPos;
|
|
10787
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
10788
|
-
s1 = peg$
|
|
11164
|
+
if (input.substr(peg$currPos, 3) === peg$c207) {
|
|
11165
|
+
s1 = peg$c207;
|
|
10789
11166
|
peg$currPos += 3;
|
|
10790
11167
|
} else {
|
|
10791
11168
|
s1 = peg$FAILED;
|
|
10792
11169
|
if (peg$silentFails === 0) {
|
|
10793
|
-
peg$fail(peg$
|
|
11170
|
+
peg$fail(peg$c208);
|
|
10794
11171
|
}
|
|
10795
11172
|
}
|
|
10796
11173
|
if (s1 !== peg$FAILED) {
|
|
@@ -10820,13 +11197,13 @@ function peg$parse(input, options) {
|
|
|
10820
11197
|
function peg$parseFunctionToken() {
|
|
10821
11198
|
var s0, s1, s2, s3;
|
|
10822
11199
|
s0 = peg$currPos;
|
|
10823
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
10824
|
-
s1 = peg$
|
|
11200
|
+
if (input.substr(peg$currPos, 8) === peg$c209) {
|
|
11201
|
+
s1 = peg$c209;
|
|
10825
11202
|
peg$currPos += 8;
|
|
10826
11203
|
} else {
|
|
10827
11204
|
s1 = peg$FAILED;
|
|
10828
11205
|
if (peg$silentFails === 0) {
|
|
10829
|
-
peg$fail(peg$
|
|
11206
|
+
peg$fail(peg$c210);
|
|
10830
11207
|
}
|
|
10831
11208
|
}
|
|
10832
11209
|
if (s1 !== peg$FAILED) {
|
|
@@ -10856,13 +11233,13 @@ function peg$parse(input, options) {
|
|
|
10856
11233
|
function peg$parseIfToken() {
|
|
10857
11234
|
var s0, s1, s2, s3;
|
|
10858
11235
|
s0 = peg$currPos;
|
|
10859
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10860
|
-
s1 = peg$
|
|
11236
|
+
if (input.substr(peg$currPos, 2) === peg$c213) {
|
|
11237
|
+
s1 = peg$c213;
|
|
10861
11238
|
peg$currPos += 2;
|
|
10862
11239
|
} else {
|
|
10863
11240
|
s1 = peg$FAILED;
|
|
10864
11241
|
if (peg$silentFails === 0) {
|
|
10865
|
-
peg$fail(peg$
|
|
11242
|
+
peg$fail(peg$c214);
|
|
10866
11243
|
}
|
|
10867
11244
|
}
|
|
10868
11245
|
if (s1 !== peg$FAILED) {
|
|
@@ -10892,13 +11269,13 @@ function peg$parse(input, options) {
|
|
|
10892
11269
|
function peg$parseImportToken() {
|
|
10893
11270
|
var s0, s1, s2, s3;
|
|
10894
11271
|
s0 = peg$currPos;
|
|
10895
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
10896
|
-
s1 = peg$
|
|
11272
|
+
if (input.substr(peg$currPos, 6) === peg$c215) {
|
|
11273
|
+
s1 = peg$c215;
|
|
10897
11274
|
peg$currPos += 6;
|
|
10898
11275
|
} else {
|
|
10899
11276
|
s1 = peg$FAILED;
|
|
10900
11277
|
if (peg$silentFails === 0) {
|
|
10901
|
-
peg$fail(peg$
|
|
11278
|
+
peg$fail(peg$c216);
|
|
10902
11279
|
}
|
|
10903
11280
|
}
|
|
10904
11281
|
if (s1 !== peg$FAILED) {
|
|
@@ -10928,13 +11305,13 @@ function peg$parse(input, options) {
|
|
|
10928
11305
|
function peg$parseInstanceofToken() {
|
|
10929
11306
|
var s0, s1, s2, s3;
|
|
10930
11307
|
s0 = peg$currPos;
|
|
10931
|
-
if (input.substr(peg$currPos, 10) === peg$
|
|
10932
|
-
s1 = peg$
|
|
11308
|
+
if (input.substr(peg$currPos, 10) === peg$c217) {
|
|
11309
|
+
s1 = peg$c217;
|
|
10933
11310
|
peg$currPos += 10;
|
|
10934
11311
|
} else {
|
|
10935
11312
|
s1 = peg$FAILED;
|
|
10936
11313
|
if (peg$silentFails === 0) {
|
|
10937
|
-
peg$fail(peg$
|
|
11314
|
+
peg$fail(peg$c218);
|
|
10938
11315
|
}
|
|
10939
11316
|
}
|
|
10940
11317
|
if (s1 !== peg$FAILED) {
|
|
@@ -10964,13 +11341,13 @@ function peg$parse(input, options) {
|
|
|
10964
11341
|
function peg$parseInToken() {
|
|
10965
11342
|
var s0, s1, s2, s3;
|
|
10966
11343
|
s0 = peg$currPos;
|
|
10967
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10968
|
-
s1 = peg$
|
|
11344
|
+
if (input.substr(peg$currPos, 2) === peg$c219) {
|
|
11345
|
+
s1 = peg$c219;
|
|
10969
11346
|
peg$currPos += 2;
|
|
10970
11347
|
} else {
|
|
10971
11348
|
s1 = peg$FAILED;
|
|
10972
11349
|
if (peg$silentFails === 0) {
|
|
10973
|
-
peg$fail(peg$
|
|
11350
|
+
peg$fail(peg$c220);
|
|
10974
11351
|
}
|
|
10975
11352
|
}
|
|
10976
11353
|
if (s1 !== peg$FAILED) {
|
|
@@ -11000,13 +11377,13 @@ function peg$parse(input, options) {
|
|
|
11000
11377
|
function peg$parseNewToken() {
|
|
11001
11378
|
var s0, s1, s2, s3;
|
|
11002
11379
|
s0 = peg$currPos;
|
|
11003
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
11004
|
-
s1 = peg$
|
|
11380
|
+
if (input.substr(peg$currPos, 3) === peg$c221) {
|
|
11381
|
+
s1 = peg$c221;
|
|
11005
11382
|
peg$currPos += 3;
|
|
11006
11383
|
} else {
|
|
11007
11384
|
s1 = peg$FAILED;
|
|
11008
11385
|
if (peg$silentFails === 0) {
|
|
11009
|
-
peg$fail(peg$
|
|
11386
|
+
peg$fail(peg$c222);
|
|
11010
11387
|
}
|
|
11011
11388
|
}
|
|
11012
11389
|
if (s1 !== peg$FAILED) {
|
|
@@ -11036,13 +11413,13 @@ function peg$parse(input, options) {
|
|
|
11036
11413
|
function peg$parseNullToken() {
|
|
11037
11414
|
var s0, s1, s2, s3;
|
|
11038
11415
|
s0 = peg$currPos;
|
|
11039
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11040
|
-
s1 = peg$
|
|
11416
|
+
if (input.substr(peg$currPos, 4) === peg$c223) {
|
|
11417
|
+
s1 = peg$c223;
|
|
11041
11418
|
peg$currPos += 4;
|
|
11042
11419
|
} else {
|
|
11043
11420
|
s1 = peg$FAILED;
|
|
11044
11421
|
if (peg$silentFails === 0) {
|
|
11045
|
-
peg$fail(peg$
|
|
11422
|
+
peg$fail(peg$c224);
|
|
11046
11423
|
}
|
|
11047
11424
|
}
|
|
11048
11425
|
if (s1 !== peg$FAILED) {
|
|
@@ -11072,13 +11449,13 @@ function peg$parse(input, options) {
|
|
|
11072
11449
|
function peg$parseReturnToken() {
|
|
11073
11450
|
var s0, s1, s2, s3;
|
|
11074
11451
|
s0 = peg$currPos;
|
|
11075
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
11076
|
-
s1 = peg$
|
|
11452
|
+
if (input.substr(peg$currPos, 6) === peg$c225) {
|
|
11453
|
+
s1 = peg$c225;
|
|
11077
11454
|
peg$currPos += 6;
|
|
11078
11455
|
} else {
|
|
11079
11456
|
s1 = peg$FAILED;
|
|
11080
11457
|
if (peg$silentFails === 0) {
|
|
11081
|
-
peg$fail(peg$
|
|
11458
|
+
peg$fail(peg$c226);
|
|
11082
11459
|
}
|
|
11083
11460
|
}
|
|
11084
11461
|
if (s1 !== peg$FAILED) {
|
|
@@ -11108,13 +11485,13 @@ function peg$parse(input, options) {
|
|
|
11108
11485
|
function peg$parseSuperToken() {
|
|
11109
11486
|
var s0, s1, s2, s3;
|
|
11110
11487
|
s0 = peg$currPos;
|
|
11111
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11112
|
-
s1 = peg$
|
|
11488
|
+
if (input.substr(peg$currPos, 5) === peg$c229) {
|
|
11489
|
+
s1 = peg$c229;
|
|
11113
11490
|
peg$currPos += 5;
|
|
11114
11491
|
} else {
|
|
11115
11492
|
s1 = peg$FAILED;
|
|
11116
11493
|
if (peg$silentFails === 0) {
|
|
11117
|
-
peg$fail(peg$
|
|
11494
|
+
peg$fail(peg$c230);
|
|
11118
11495
|
}
|
|
11119
11496
|
}
|
|
11120
11497
|
if (s1 !== peg$FAILED) {
|
|
@@ -11144,13 +11521,13 @@ function peg$parse(input, options) {
|
|
|
11144
11521
|
function peg$parseSwitchToken() {
|
|
11145
11522
|
var s0, s1, s2, s3;
|
|
11146
11523
|
s0 = peg$currPos;
|
|
11147
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
11148
|
-
s1 = peg$
|
|
11524
|
+
if (input.substr(peg$currPos, 6) === peg$c231) {
|
|
11525
|
+
s1 = peg$c231;
|
|
11149
11526
|
peg$currPos += 6;
|
|
11150
11527
|
} else {
|
|
11151
11528
|
s1 = peg$FAILED;
|
|
11152
11529
|
if (peg$silentFails === 0) {
|
|
11153
|
-
peg$fail(peg$
|
|
11530
|
+
peg$fail(peg$c232);
|
|
11154
11531
|
}
|
|
11155
11532
|
}
|
|
11156
11533
|
if (s1 !== peg$FAILED) {
|
|
@@ -11180,13 +11557,13 @@ function peg$parse(input, options) {
|
|
|
11180
11557
|
function peg$parseThisToken() {
|
|
11181
11558
|
var s0, s1, s2, s3;
|
|
11182
11559
|
s0 = peg$currPos;
|
|
11183
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11184
|
-
s1 = peg$
|
|
11560
|
+
if (input.substr(peg$currPos, 4) === peg$c233) {
|
|
11561
|
+
s1 = peg$c233;
|
|
11185
11562
|
peg$currPos += 4;
|
|
11186
11563
|
} else {
|
|
11187
11564
|
s1 = peg$FAILED;
|
|
11188
11565
|
if (peg$silentFails === 0) {
|
|
11189
|
-
peg$fail(peg$
|
|
11566
|
+
peg$fail(peg$c234);
|
|
11190
11567
|
}
|
|
11191
11568
|
}
|
|
11192
11569
|
if (s1 !== peg$FAILED) {
|
|
@@ -11216,13 +11593,13 @@ function peg$parse(input, options) {
|
|
|
11216
11593
|
function peg$parseThrowToken() {
|
|
11217
11594
|
var s0, s1, s2, s3;
|
|
11218
11595
|
s0 = peg$currPos;
|
|
11219
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11220
|
-
s1 = peg$
|
|
11596
|
+
if (input.substr(peg$currPos, 5) === peg$c235) {
|
|
11597
|
+
s1 = peg$c235;
|
|
11221
11598
|
peg$currPos += 5;
|
|
11222
11599
|
} else {
|
|
11223
11600
|
s1 = peg$FAILED;
|
|
11224
11601
|
if (peg$silentFails === 0) {
|
|
11225
|
-
peg$fail(peg$
|
|
11602
|
+
peg$fail(peg$c236);
|
|
11226
11603
|
}
|
|
11227
11604
|
}
|
|
11228
11605
|
if (s1 !== peg$FAILED) {
|
|
@@ -11252,13 +11629,13 @@ function peg$parse(input, options) {
|
|
|
11252
11629
|
function peg$parseTrueToken() {
|
|
11253
11630
|
var s0, s1, s2, s3;
|
|
11254
11631
|
s0 = peg$currPos;
|
|
11255
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11256
|
-
s1 = peg$
|
|
11632
|
+
if (input.substr(peg$currPos, 4) === peg$c237) {
|
|
11633
|
+
s1 = peg$c237;
|
|
11257
11634
|
peg$currPos += 4;
|
|
11258
11635
|
} else {
|
|
11259
11636
|
s1 = peg$FAILED;
|
|
11260
11637
|
if (peg$silentFails === 0) {
|
|
11261
|
-
peg$fail(peg$
|
|
11638
|
+
peg$fail(peg$c238);
|
|
11262
11639
|
}
|
|
11263
11640
|
}
|
|
11264
11641
|
if (s1 !== peg$FAILED) {
|
|
@@ -11288,13 +11665,13 @@ function peg$parse(input, options) {
|
|
|
11288
11665
|
function peg$parseTryToken() {
|
|
11289
11666
|
var s0, s1, s2, s3;
|
|
11290
11667
|
s0 = peg$currPos;
|
|
11291
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
11292
|
-
s1 = peg$
|
|
11668
|
+
if (input.substr(peg$currPos, 3) === peg$c239) {
|
|
11669
|
+
s1 = peg$c239;
|
|
11293
11670
|
peg$currPos += 3;
|
|
11294
11671
|
} else {
|
|
11295
11672
|
s1 = peg$FAILED;
|
|
11296
11673
|
if (peg$silentFails === 0) {
|
|
11297
|
-
peg$fail(peg$
|
|
11674
|
+
peg$fail(peg$c240);
|
|
11298
11675
|
}
|
|
11299
11676
|
}
|
|
11300
11677
|
if (s1 !== peg$FAILED) {
|
|
@@ -11324,13 +11701,13 @@ function peg$parse(input, options) {
|
|
|
11324
11701
|
function peg$parseTypeofToken() {
|
|
11325
11702
|
var s0, s1, s2, s3;
|
|
11326
11703
|
s0 = peg$currPos;
|
|
11327
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
11328
|
-
s1 = peg$
|
|
11704
|
+
if (input.substr(peg$currPos, 6) === peg$c241) {
|
|
11705
|
+
s1 = peg$c241;
|
|
11329
11706
|
peg$currPos += 6;
|
|
11330
11707
|
} else {
|
|
11331
11708
|
s1 = peg$FAILED;
|
|
11332
11709
|
if (peg$silentFails === 0) {
|
|
11333
|
-
peg$fail(peg$
|
|
11710
|
+
peg$fail(peg$c242);
|
|
11334
11711
|
}
|
|
11335
11712
|
}
|
|
11336
11713
|
if (s1 !== peg$FAILED) {
|
|
@@ -11360,13 +11737,13 @@ function peg$parse(input, options) {
|
|
|
11360
11737
|
function peg$parseVarToken() {
|
|
11361
11738
|
var s0, s1, s2, s3;
|
|
11362
11739
|
s0 = peg$currPos;
|
|
11363
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
11364
|
-
s1 = peg$
|
|
11740
|
+
if (input.substr(peg$currPos, 3) === peg$c243) {
|
|
11741
|
+
s1 = peg$c243;
|
|
11365
11742
|
peg$currPos += 3;
|
|
11366
11743
|
} else {
|
|
11367
11744
|
s1 = peg$FAILED;
|
|
11368
11745
|
if (peg$silentFails === 0) {
|
|
11369
|
-
peg$fail(peg$
|
|
11746
|
+
peg$fail(peg$c244);
|
|
11370
11747
|
}
|
|
11371
11748
|
}
|
|
11372
11749
|
if (s1 !== peg$FAILED) {
|
|
@@ -11396,13 +11773,13 @@ function peg$parse(input, options) {
|
|
|
11396
11773
|
function peg$parseVoidToken() {
|
|
11397
11774
|
var s0, s1, s2, s3;
|
|
11398
11775
|
s0 = peg$currPos;
|
|
11399
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11400
|
-
s1 = peg$
|
|
11776
|
+
if (input.substr(peg$currPos, 4) === peg$c245) {
|
|
11777
|
+
s1 = peg$c245;
|
|
11401
11778
|
peg$currPos += 4;
|
|
11402
11779
|
} else {
|
|
11403
11780
|
s1 = peg$FAILED;
|
|
11404
11781
|
if (peg$silentFails === 0) {
|
|
11405
|
-
peg$fail(peg$
|
|
11782
|
+
peg$fail(peg$c246);
|
|
11406
11783
|
}
|
|
11407
11784
|
}
|
|
11408
11785
|
if (s1 !== peg$FAILED) {
|
|
@@ -11432,13 +11809,13 @@ function peg$parse(input, options) {
|
|
|
11432
11809
|
function peg$parseWhileToken() {
|
|
11433
11810
|
var s0, s1, s2, s3;
|
|
11434
11811
|
s0 = peg$currPos;
|
|
11435
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11436
|
-
s1 = peg$
|
|
11812
|
+
if (input.substr(peg$currPos, 5) === peg$c247) {
|
|
11813
|
+
s1 = peg$c247;
|
|
11437
11814
|
peg$currPos += 5;
|
|
11438
11815
|
} else {
|
|
11439
11816
|
s1 = peg$FAILED;
|
|
11440
11817
|
if (peg$silentFails === 0) {
|
|
11441
|
-
peg$fail(peg$
|
|
11818
|
+
peg$fail(peg$c248);
|
|
11442
11819
|
}
|
|
11443
11820
|
}
|
|
11444
11821
|
if (s1 !== peg$FAILED) {
|
|
@@ -11468,13 +11845,13 @@ function peg$parse(input, options) {
|
|
|
11468
11845
|
function peg$parseWithToken() {
|
|
11469
11846
|
var s0, s1, s2, s3;
|
|
11470
11847
|
s0 = peg$currPos;
|
|
11471
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11472
|
-
s1 = peg$
|
|
11848
|
+
if (input.substr(peg$currPos, 4) === peg$c249) {
|
|
11849
|
+
s1 = peg$c249;
|
|
11473
11850
|
peg$currPos += 4;
|
|
11474
11851
|
} else {
|
|
11475
11852
|
s1 = peg$FAILED;
|
|
11476
11853
|
if (peg$silentFails === 0) {
|
|
11477
|
-
peg$fail(peg$
|
|
11854
|
+
peg$fail(peg$c250);
|
|
11478
11855
|
}
|
|
11479
11856
|
}
|
|
11480
11857
|
if (s1 !== peg$FAILED) {
|
|
@@ -11604,6 +11981,92 @@ class Variables {
|
|
|
11604
11981
|
}
|
|
11605
11982
|
}
|
|
11606
11983
|
}
|
|
11984
|
+
function getExpressionHelp(startRule) {
|
|
11985
|
+
switch (startRule) {
|
|
11986
|
+
case "booleanAttribute":
|
|
11987
|
+
return `
|
|
11988
|
+
Boolean attributes use condition-style syntax (no curly braces).
|
|
11989
|
+
Examples:
|
|
11990
|
+
✓ disabled="isDisabled"
|
|
11991
|
+
✓ disabled="!isValid"
|
|
11992
|
+
✓ disabled="status == pending" (enum comparison)
|
|
11993
|
+
✓ disabled="count <= 0" (numeric comparison)
|
|
11994
|
+
✓ disabled="count == 5" (equality with number)
|
|
11995
|
+
✓ disabled="a >= b.value" (field-to-field comparison)
|
|
11996
|
+
✓ disabled="isLoading || !isValid"
|
|
11997
|
+
✓ disabled (bare attribute for always-present)
|
|
11998
|
+
✗ disabled="{isDisabled}" (no curly braces)`;
|
|
11999
|
+
case "dynamicAttribute":
|
|
12000
|
+
case "dynamicProperty":
|
|
12001
|
+
return `
|
|
12002
|
+
Dynamic attributes/properties use template-style syntax with curly braces.
|
|
12003
|
+
Examples:
|
|
12004
|
+
✓ value="{inputValue}"
|
|
12005
|
+
✓ href="/users/{userId}"
|
|
12006
|
+
✓ data-count="{items.length}"
|
|
12007
|
+
✓ title="Hello {name}!"`;
|
|
12008
|
+
case "classExpression":
|
|
12009
|
+
case "reactClassExpression":
|
|
12010
|
+
return `
|
|
12011
|
+
Class expressions support static classes and conditional classes.
|
|
12012
|
+
Examples:
|
|
12013
|
+
✓ class="button primary"
|
|
12014
|
+
✓ class="{isActive ? active}"
|
|
12015
|
+
✓ class="{isActive ? active : inactive}"
|
|
12016
|
+
✓ class="button {isPrimary ? primary : secondary}"
|
|
12017
|
+
✓ class="{status == active ? active-class}"
|
|
12018
|
+
✓ class="{count > 0 ? has-items}"`;
|
|
12019
|
+
case "conditionFunc":
|
|
12020
|
+
case "condition":
|
|
12021
|
+
return `
|
|
12022
|
+
Conditions support boolean properties, negation, comparisons, and logical operators.
|
|
12023
|
+
Examples:
|
|
12024
|
+
✓ if="isVisible"
|
|
12025
|
+
✓ if="!isHidden"
|
|
12026
|
+
✓ if="status == active" (enum comparison)
|
|
12027
|
+
✓ if="count > 0" (numeric comparison)
|
|
12028
|
+
✓ if="count == 5" (equality with number)
|
|
12029
|
+
✓ if="page <= 1" (<=, >=, <, > supported)
|
|
12030
|
+
✓ if="current >= other.value" (field-to-field comparison)
|
|
12031
|
+
✓ if="isEnabled && status != disabled"
|
|
12032
|
+
✓ if="hasItems || count > 0"`;
|
|
12033
|
+
case "dynamicText":
|
|
12034
|
+
case "reactDynamicText":
|
|
12035
|
+
return `
|
|
12036
|
+
Dynamic text uses curly braces for interpolation.
|
|
12037
|
+
Examples:
|
|
12038
|
+
✓ {title}
|
|
12039
|
+
✓ Hello, {user.name}!
|
|
12040
|
+
✓ Count: {items.length}`;
|
|
12041
|
+
case "accessor":
|
|
12042
|
+
return `
|
|
12043
|
+
Accessors reference view state properties.
|
|
12044
|
+
Examples:
|
|
12045
|
+
✓ propertyName
|
|
12046
|
+
✓ nested.property
|
|
12047
|
+
✓ . (self-reference)`;
|
|
12048
|
+
case "importNames":
|
|
12049
|
+
return `
|
|
12050
|
+
Import names are comma-separated identifiers with optional renaming.
|
|
12051
|
+
Examples:
|
|
12052
|
+
✓ MyComponent
|
|
12053
|
+
✓ Component1, Component2
|
|
12054
|
+
✓ Original as Renamed`;
|
|
12055
|
+
case "enum":
|
|
12056
|
+
return `
|
|
12057
|
+
Enum values are defined with pipe-separated identifiers.
|
|
12058
|
+
Examples:
|
|
12059
|
+
✓ enum(active | inactive | pending)`;
|
|
12060
|
+
case "styleDeclarations":
|
|
12061
|
+
return `
|
|
12062
|
+
Style declarations use CSS syntax with optional dynamic bindings.
|
|
12063
|
+
Examples:
|
|
12064
|
+
✓ style="color: red; padding: 10px"
|
|
12065
|
+
✓ style="background: {bgColor}; width: {size}px"`;
|
|
12066
|
+
default:
|
|
12067
|
+
return "";
|
|
12068
|
+
}
|
|
12069
|
+
}
|
|
11607
12070
|
function doParse(expression, startRule, vars) {
|
|
11608
12071
|
try {
|
|
11609
12072
|
return expressionParser.parse(expression, {
|
|
@@ -11617,7 +12080,13 @@ function doParse(expression, startRule, vars) {
|
|
|
11617
12080
|
startRule
|
|
11618
12081
|
});
|
|
11619
12082
|
} catch (e2) {
|
|
11620
|
-
|
|
12083
|
+
const help = getExpressionHelp(startRule);
|
|
12084
|
+
const contextInfo = help ? `
|
|
12085
|
+
|
|
12086
|
+
Expected format for ${startRule}:${help}` : "";
|
|
12087
|
+
throw new Error(`Failed to parse expression [${expression}].
|
|
12088
|
+
|
|
12089
|
+
Parse error: ${e2.message}${contextInfo}`);
|
|
11621
12090
|
}
|
|
11622
12091
|
}
|
|
11623
12092
|
function parseAccessor(expression, vars) {
|
|
@@ -11700,6 +12169,27 @@ function isConditional(node2) {
|
|
|
11700
12169
|
function isForEach(node2) {
|
|
11701
12170
|
return node2.nodeType !== NodeType.TEXT_NODE && node2.hasAttribute("forEach");
|
|
11702
12171
|
}
|
|
12172
|
+
function isSlowForEach(node2) {
|
|
12173
|
+
return node2.nodeType !== NodeType.TEXT_NODE && node2.hasAttribute("slowForEach");
|
|
12174
|
+
}
|
|
12175
|
+
function getSlowForEachInfo(node2) {
|
|
12176
|
+
if (!isSlowForEach(node2))
|
|
12177
|
+
return void 0;
|
|
12178
|
+
const element = node2;
|
|
12179
|
+
const arrayName = element.getAttribute("slowForEach");
|
|
12180
|
+
const jayIndex = element.getAttribute("jayIndex");
|
|
12181
|
+
const jayTrackBy = element.getAttribute("jayTrackBy");
|
|
12182
|
+
const trackBy = element.getAttribute("trackBy") || "id";
|
|
12183
|
+
if (!arrayName || jayIndex === null || !jayTrackBy) {
|
|
12184
|
+
return void 0;
|
|
12185
|
+
}
|
|
12186
|
+
return {
|
|
12187
|
+
arrayName,
|
|
12188
|
+
jayIndex: parseInt(jayIndex, 10),
|
|
12189
|
+
jayTrackBy,
|
|
12190
|
+
trackBy
|
|
12191
|
+
};
|
|
12192
|
+
}
|
|
11703
12193
|
function isRecurse(node2) {
|
|
11704
12194
|
return node2.nodeType !== NodeType.TEXT_NODE && node2.rawTagName?.toLowerCase() === "recurse";
|
|
11705
12195
|
}
|
|
@@ -12098,7 +12588,7 @@ function markAutoOnImportedRefs(deDuplicated, headlessImports) {
|
|
|
12098
12588
|
const isRefOfImportedHeadlessContract = !!importKeys.find(
|
|
12099
12589
|
(key) => ref.originalName.startsWith(`${key}.`)
|
|
12100
12590
|
);
|
|
12101
|
-
if (isRefOfImportedHeadlessContract)
|
|
12591
|
+
if (isRefOfImportedHeadlessContract && ref.autoRef !== false)
|
|
12102
12592
|
return mkRef(
|
|
12103
12593
|
ref.ref,
|
|
12104
12594
|
ref.originalName,
|
|
@@ -12125,6 +12615,80 @@ function markAutoOnImportedRefs(deDuplicated, headlessImports) {
|
|
|
12125
12615
|
deDuplicated?.imported?.repeatedRefsTypeName
|
|
12126
12616
|
);
|
|
12127
12617
|
}
|
|
12618
|
+
function markAllRefsAsAutoRef(refsTree) {
|
|
12619
|
+
const mappedRefs = refsTree.refs.map(
|
|
12620
|
+
(ref) => mkRef(
|
|
12621
|
+
ref.ref,
|
|
12622
|
+
ref.originalName,
|
|
12623
|
+
ref.constName,
|
|
12624
|
+
ref.repeated,
|
|
12625
|
+
true,
|
|
12626
|
+
// autoRef = true
|
|
12627
|
+
ref.viewStateType,
|
|
12628
|
+
ref.elementType
|
|
12629
|
+
)
|
|
12630
|
+
);
|
|
12631
|
+
const mappedChildren = Object.fromEntries(
|
|
12632
|
+
Object.entries(refsTree.children).map(([key, value]) => [key, markAllRefsAsAutoRef(value)])
|
|
12633
|
+
);
|
|
12634
|
+
return mkRefsTree(
|
|
12635
|
+
mappedRefs,
|
|
12636
|
+
mappedChildren,
|
|
12637
|
+
refsTree.repeated,
|
|
12638
|
+
refsTree?.imported?.refsTypeName,
|
|
12639
|
+
refsTree?.imported?.repeatedRefsTypeName
|
|
12640
|
+
);
|
|
12641
|
+
}
|
|
12642
|
+
function collectTemplateRefsByOriginalName(tree) {
|
|
12643
|
+
const result = /* @__PURE__ */ new Map();
|
|
12644
|
+
for (const ref of tree.refs) {
|
|
12645
|
+
if (!ref.autoRef) {
|
|
12646
|
+
result.set(ref.originalName, ref);
|
|
12647
|
+
}
|
|
12648
|
+
}
|
|
12649
|
+
for (const childTree of Object.values(tree.children)) {
|
|
12650
|
+
const childRefs = collectTemplateRefsByOriginalName(childTree);
|
|
12651
|
+
for (const [key, ref] of childRefs) {
|
|
12652
|
+
result.set(key, ref);
|
|
12653
|
+
}
|
|
12654
|
+
}
|
|
12655
|
+
return result;
|
|
12656
|
+
}
|
|
12657
|
+
function updateImportRefsWithTemplateConstNames(importTree, templateRefsByOriginalName, path2 = []) {
|
|
12658
|
+
const updatedRefs = importTree.refs.map((ref) => {
|
|
12659
|
+
const fullPath = [...path2, ref.ref].join(".");
|
|
12660
|
+
const templateRef = templateRefsByOriginalName.get(fullPath);
|
|
12661
|
+
if (templateRef) {
|
|
12662
|
+
return mkRef(
|
|
12663
|
+
ref.ref,
|
|
12664
|
+
ref.originalName,
|
|
12665
|
+
templateRef.constName,
|
|
12666
|
+
ref.repeated,
|
|
12667
|
+
false,
|
|
12668
|
+
// Not autoRef since it's used in template
|
|
12669
|
+
ref.viewStateType,
|
|
12670
|
+
ref.elementType
|
|
12671
|
+
);
|
|
12672
|
+
}
|
|
12673
|
+
return ref;
|
|
12674
|
+
});
|
|
12675
|
+
const updatedChildren = Object.fromEntries(
|
|
12676
|
+
Object.entries(importTree.children).map(([childKey, childTree]) => [
|
|
12677
|
+
childKey,
|
|
12678
|
+
updateImportRefsWithTemplateConstNames(childTree, templateRefsByOriginalName, [
|
|
12679
|
+
...path2,
|
|
12680
|
+
childKey
|
|
12681
|
+
])
|
|
12682
|
+
])
|
|
12683
|
+
);
|
|
12684
|
+
return mkRefsTree(
|
|
12685
|
+
updatedRefs,
|
|
12686
|
+
updatedChildren,
|
|
12687
|
+
importTree.repeated,
|
|
12688
|
+
importTree?.imported?.refsTypeName,
|
|
12689
|
+
importTree?.imported?.repeatedRefsTypeName
|
|
12690
|
+
);
|
|
12691
|
+
}
|
|
12128
12692
|
function optimizeRefs({ rendered, imports, validations, refs, recursiveRegions }, headlessImports = []) {
|
|
12129
12693
|
const deDuplicateRefsTree = (refs2) => {
|
|
12130
12694
|
const mergedRefsMap = refs2.refs.reduce((refsMap, ref) => {
|
|
@@ -12171,10 +12735,31 @@ function optimizeRefs({ rendered, imports, validations, refs, recursiveRegions }
|
|
|
12171
12735
|
};
|
|
12172
12736
|
const deDuplicated = deDuplicateRefsTree(refs);
|
|
12173
12737
|
const markedAutoOnImported = markAutoOnImportedRefs(deDuplicated, headlessImports);
|
|
12174
|
-
const
|
|
12738
|
+
const templateRefsByOriginalName = collectTemplateRefsByOriginalName(markedAutoOnImported);
|
|
12739
|
+
const importedRefsUpdated = Object.fromEntries(
|
|
12740
|
+
headlessImports.map((_) => {
|
|
12741
|
+
const markedAuto = markAllRefsAsAutoRef(_.refs);
|
|
12742
|
+
const updated = updateImportRefsWithTemplateConstNames(
|
|
12743
|
+
markedAuto,
|
|
12744
|
+
templateRefsByOriginalName,
|
|
12745
|
+
[_.key]
|
|
12746
|
+
);
|
|
12747
|
+
return [_.key, updated];
|
|
12748
|
+
})
|
|
12749
|
+
);
|
|
12750
|
+
const mergedChildren = {};
|
|
12751
|
+
const importKeys = new Set(headlessImports.map((_) => _.key));
|
|
12752
|
+
for (const [key, child] of Object.entries(markedAutoOnImported.children)) {
|
|
12753
|
+
if (!importKeys.has(key)) {
|
|
12754
|
+
mergedChildren[key] = child;
|
|
12755
|
+
}
|
|
12756
|
+
}
|
|
12757
|
+
for (const [key, child] of Object.entries(importedRefsUpdated)) {
|
|
12758
|
+
mergedChildren[key] = child;
|
|
12759
|
+
}
|
|
12175
12760
|
const combined = mkRefsTree(
|
|
12176
12761
|
markedAutoOnImported.refs,
|
|
12177
|
-
|
|
12762
|
+
mergedChildren,
|
|
12178
12763
|
markedAutoOnImported.repeated
|
|
12179
12764
|
);
|
|
12180
12765
|
return new RenderFragment(rendered, imports, validations, combined, recursiveRegions);
|
|
@@ -12213,6 +12798,17 @@ function renderReferenceManager(refs, target) {
|
|
|
12213
12798
|
const options = target === 0 ? "options, " : "";
|
|
12214
12799
|
const usedRefManagerNames = /* @__PURE__ */ new Set();
|
|
12215
12800
|
const usedRefConstNames = /* @__PURE__ */ new Set();
|
|
12801
|
+
const collectReservedConstNames = (refsTree) => {
|
|
12802
|
+
for (const ref of refsTree.refs) {
|
|
12803
|
+
if (!ref.autoRef) {
|
|
12804
|
+
usedRefConstNames.add(ref.constName);
|
|
12805
|
+
}
|
|
12806
|
+
}
|
|
12807
|
+
for (const child of Object.values(refsTree.children)) {
|
|
12808
|
+
collectReservedConstNames(child);
|
|
12809
|
+
}
|
|
12810
|
+
};
|
|
12811
|
+
collectReservedConstNames(refs);
|
|
12216
12812
|
const getUniqueRefManagerName = (baseName) => {
|
|
12217
12813
|
const baseCamelCase = camelCase(`${baseName}RefManager`);
|
|
12218
12814
|
if (!usedRefManagerNames.has(baseCamelCase)) {
|
|
@@ -12228,7 +12824,11 @@ function renderReferenceManager(refs, target) {
|
|
|
12228
12824
|
usedRefManagerNames.add(uniqueName);
|
|
12229
12825
|
return uniqueName;
|
|
12230
12826
|
};
|
|
12231
|
-
const getUniqueRefConstName = (
|
|
12827
|
+
const getUniqueRefConstName = (ref) => {
|
|
12828
|
+
const constName = ref.constName;
|
|
12829
|
+
if (!ref.autoRef) {
|
|
12830
|
+
return constName;
|
|
12831
|
+
}
|
|
12232
12832
|
if (!usedRefConstNames.has(constName)) {
|
|
12233
12833
|
usedRefConstNames.add(constName);
|
|
12234
12834
|
return constName;
|
|
@@ -12256,10 +12856,10 @@ function renderReferenceManager(refs, target) {
|
|
|
12256
12856
|
const compRefsDeclarations = compRefs.map((ref) => `'${ref.ref}'`).join(", ");
|
|
12257
12857
|
const compCollectionRefsDeclarations = compCollectionRefs.map((ref) => `'${ref.ref}'`).join(", ");
|
|
12258
12858
|
const refVariables = [
|
|
12259
|
-
...elemRefs.map((ref) => getUniqueRefConstName(ref
|
|
12260
|
-
...elemCollectionRefs.map((ref) => getUniqueRefConstName(ref
|
|
12261
|
-
...compRefs.map((ref) => getUniqueRefConstName(ref
|
|
12262
|
-
...compCollectionRefs.map((ref) => getUniqueRefConstName(ref
|
|
12859
|
+
...elemRefs.map((ref) => getUniqueRefConstName(ref)),
|
|
12860
|
+
...elemCollectionRefs.map((ref) => getUniqueRefConstName(ref)),
|
|
12861
|
+
...compRefs.map((ref) => getUniqueRefConstName(ref)),
|
|
12862
|
+
...compCollectionRefs.map((ref) => getUniqueRefConstName(ref))
|
|
12263
12863
|
].join(", ");
|
|
12264
12864
|
const childRenderedRefManagers = [];
|
|
12265
12865
|
const childRefManagerMembers = [];
|
|
@@ -12453,9 +13053,34 @@ function renderTextNode(variables, text2, indent) {
|
|
|
12453
13053
|
}
|
|
12454
13054
|
const PROPERTY = 1, BOOLEAN_ATTRIBUTE = 3;
|
|
12455
13055
|
const propertyMapping = {
|
|
13056
|
+
// DOM properties (use template-style parsing with dp())
|
|
12456
13057
|
value: { type: PROPERTY },
|
|
12457
13058
|
checked: { type: PROPERTY },
|
|
12458
|
-
|
|
13059
|
+
// Boolean attributes (use condition-style parsing with ba())
|
|
13060
|
+
// The presence/absence of these attributes is controlled by a condition expression
|
|
13061
|
+
disabled: { type: BOOLEAN_ATTRIBUTE },
|
|
13062
|
+
selected: { type: BOOLEAN_ATTRIBUTE },
|
|
13063
|
+
readonly: { type: BOOLEAN_ATTRIBUTE },
|
|
13064
|
+
required: { type: BOOLEAN_ATTRIBUTE },
|
|
13065
|
+
hidden: { type: BOOLEAN_ATTRIBUTE },
|
|
13066
|
+
autofocus: { type: BOOLEAN_ATTRIBUTE },
|
|
13067
|
+
multiple: { type: BOOLEAN_ATTRIBUTE },
|
|
13068
|
+
open: { type: BOOLEAN_ATTRIBUTE },
|
|
13069
|
+
novalidate: { type: BOOLEAN_ATTRIBUTE },
|
|
13070
|
+
formnovalidate: { type: BOOLEAN_ATTRIBUTE },
|
|
13071
|
+
// Media attributes
|
|
13072
|
+
autoplay: { type: BOOLEAN_ATTRIBUTE },
|
|
13073
|
+
controls: { type: BOOLEAN_ATTRIBUTE },
|
|
13074
|
+
loop: { type: BOOLEAN_ATTRIBUTE },
|
|
13075
|
+
muted: { type: BOOLEAN_ATTRIBUTE },
|
|
13076
|
+
playsinline: { type: BOOLEAN_ATTRIBUTE },
|
|
13077
|
+
// Other
|
|
13078
|
+
reversed: { type: BOOLEAN_ATTRIBUTE },
|
|
13079
|
+
ismap: { type: BOOLEAN_ATTRIBUTE },
|
|
13080
|
+
defer: { type: BOOLEAN_ATTRIBUTE },
|
|
13081
|
+
async: { type: BOOLEAN_ATTRIBUTE },
|
|
13082
|
+
default: { type: BOOLEAN_ATTRIBUTE },
|
|
13083
|
+
inert: { type: BOOLEAN_ATTRIBUTE }
|
|
12459
13084
|
};
|
|
12460
13085
|
const attributesRequiresQuotes$1 = /[- ]/;
|
|
12461
13086
|
function renderStyleAttribute(styleString, variables) {
|
|
@@ -12478,7 +13103,7 @@ function renderAttributes$1(element, { variables }) {
|
|
|
12478
13103
|
Object.keys(attributes2).forEach((attrName) => {
|
|
12479
13104
|
let attrCanonical = attrName.toLowerCase();
|
|
12480
13105
|
let attrKey = attrCanonical.match(attributesRequiresQuotes$1) ? `"${attrCanonical}"` : attrCanonical;
|
|
12481
|
-
if (attrCanonical === "if" || attrCanonical === "foreach" || attrCanonical === "trackby" || attrCanonical === "ref" || attrCanonical === AsyncDirectiveTypes.loading.directive || attrCanonical === AsyncDirectiveTypes.resolved.directive || attrCanonical === AsyncDirectiveTypes.rejected.directive)
|
|
13106
|
+
if (attrCanonical === "if" || attrCanonical === "foreach" || attrCanonical === "trackby" || attrCanonical === "ref" || attrCanonical === "slowforeach" || attrCanonical === "jayindex" || attrCanonical === "jaytrackby" || attrCanonical === AsyncDirectiveTypes.loading.directive || attrCanonical === AsyncDirectiveTypes.resolved.directive || attrCanonical === AsyncDirectiveTypes.rejected.directive)
|
|
12482
13107
|
return;
|
|
12483
13108
|
if (attrCanonical === "style") {
|
|
12484
13109
|
renderedAttributes.push(renderStyleAttribute(attributes2[attrName], variables));
|
|
@@ -12489,11 +13114,13 @@ function renderAttributes$1(element, { variables }) {
|
|
|
12489
13114
|
let attributeExpression = parsePropertyExpression(attributes2[attrName], variables);
|
|
12490
13115
|
renderedAttributes.push(attributeExpression.map((_) => `${attrKey}: ${_}`));
|
|
12491
13116
|
} else if (propertyMapping[attrCanonical]?.type === BOOLEAN_ATTRIBUTE) {
|
|
12492
|
-
|
|
12493
|
-
|
|
12494
|
-
|
|
12495
|
-
|
|
12496
|
-
|
|
13117
|
+
const attrValue = attributes2[attrName];
|
|
13118
|
+
if (attrValue === "") {
|
|
13119
|
+
renderedAttributes.push(new RenderFragment(`${attrKey}: ''`, Imports.none()));
|
|
13120
|
+
} else {
|
|
13121
|
+
let attributeExpression = parseBooleanAttributeExpression(attrValue, variables);
|
|
13122
|
+
renderedAttributes.push(attributeExpression.map((_) => `${attrKey}: ${_}`));
|
|
13123
|
+
}
|
|
12497
13124
|
} else {
|
|
12498
13125
|
let attributeExpression = parseAttributeExpression(attributes2[attrName], variables);
|
|
12499
13126
|
renderedAttributes.push(attributeExpression.map((_) => `${attrKey}: ${_}`));
|
|
@@ -12507,9 +13134,36 @@ function renderAttributes$1(element, { variables }) {
|
|
|
12507
13134
|
function renderElementRef$1(element, { dynamicRef, variables, importedRefNameToRef, refNameGenerator }) {
|
|
12508
13135
|
if (element.attributes.ref) {
|
|
12509
13136
|
if (importedRefNameToRef.has(element.attributes.ref)) {
|
|
12510
|
-
const
|
|
12511
|
-
refNameGenerator.
|
|
12512
|
-
|
|
13137
|
+
const importedRef = importedRefNameToRef.get(element.attributes.ref);
|
|
13138
|
+
const uniqueConstName = refNameGenerator.newConstantName(importedRef.ref, variables);
|
|
13139
|
+
const refWithUniqueConstName = mkRef(
|
|
13140
|
+
importedRef.ref,
|
|
13141
|
+
element.attributes.ref,
|
|
13142
|
+
// Full path from template, e.g., "filters.filter2.categories.isSelected"
|
|
13143
|
+
uniqueConstName,
|
|
13144
|
+
importedRef.repeated,
|
|
13145
|
+
false,
|
|
13146
|
+
// Not autoRef - it's explicitly used in template
|
|
13147
|
+
importedRef.viewStateType,
|
|
13148
|
+
importedRef.elementType
|
|
13149
|
+
);
|
|
13150
|
+
const refPath = element.attributes.ref.split(".");
|
|
13151
|
+
const nestingPath = refPath.slice(0, -1);
|
|
13152
|
+
const nestedRefs = nestRefs(
|
|
13153
|
+
nestingPath,
|
|
13154
|
+
new RenderFragment(
|
|
13155
|
+
"",
|
|
13156
|
+
Imports.none(),
|
|
13157
|
+
[],
|
|
13158
|
+
mkRefsTree([refWithUniqueConstName], {})
|
|
13159
|
+
)
|
|
13160
|
+
);
|
|
13161
|
+
return new RenderFragment(
|
|
13162
|
+
`${uniqueConstName}()`,
|
|
13163
|
+
nestedRefs.imports,
|
|
13164
|
+
nestedRefs.validations,
|
|
13165
|
+
nestedRefs.refs
|
|
13166
|
+
);
|
|
12513
13167
|
}
|
|
12514
13168
|
let originalName = element.attributes.ref;
|
|
12515
13169
|
let refName = camelCase(originalName);
|
|
@@ -12564,9 +13218,31 @@ function renderChildCompProps$1(element, { variables }) {
|
|
|
12564
13218
|
}
|
|
12565
13219
|
function renderChildCompRef$1(element, { dynamicRef, variables, refNameGenerator, importedRefNameToRef }) {
|
|
12566
13220
|
if (importedRefNameToRef.has(element.attributes.ref)) {
|
|
12567
|
-
const
|
|
12568
|
-
refNameGenerator.
|
|
12569
|
-
|
|
13221
|
+
const importedRef = importedRefNameToRef.get(element.attributes.ref);
|
|
13222
|
+
const uniqueConstName = refNameGenerator.newConstantName(importedRef.ref, variables);
|
|
13223
|
+
const refWithUniqueConstName = mkRef(
|
|
13224
|
+
importedRef.ref,
|
|
13225
|
+
element.attributes.ref,
|
|
13226
|
+
// Full path from template, e.g., "filters.filter2.categories.isSelected"
|
|
13227
|
+
uniqueConstName,
|
|
13228
|
+
importedRef.repeated,
|
|
13229
|
+
false,
|
|
13230
|
+
// Not autoRef - it's explicitly used in template
|
|
13231
|
+
importedRef.viewStateType,
|
|
13232
|
+
importedRef.elementType
|
|
13233
|
+
);
|
|
13234
|
+
const refPath = element.attributes.ref.split(".");
|
|
13235
|
+
const nestingPath = refPath.slice(0, -1);
|
|
13236
|
+
const nestedRefs = nestRefs(
|
|
13237
|
+
nestingPath,
|
|
13238
|
+
new RenderFragment("", Imports.none(), [], mkRefsTree([refWithUniqueConstName], {}))
|
|
13239
|
+
);
|
|
13240
|
+
return new RenderFragment(
|
|
13241
|
+
`${uniqueConstName}()`,
|
|
13242
|
+
nestedRefs.imports,
|
|
13243
|
+
nestedRefs.validations,
|
|
13244
|
+
nestedRefs.refs
|
|
13245
|
+
);
|
|
12570
13246
|
}
|
|
12571
13247
|
let originalName = element.attributes.ref || refNameGenerator.newAutoRefNameGenerator();
|
|
12572
13248
|
let refName = camelCase(originalName);
|
|
@@ -12635,7 +13311,7 @@ function renderNode(node2, context) {
|
|
|
12635
13311
|
if (childNodes.length === 1 && childNodes[0].nodeType === NodeType.TEXT_NODE)
|
|
12636
13312
|
childIndent = childIndent.noFirstLineBreak();
|
|
12637
13313
|
let needDynamicElement = childNodes.map(
|
|
12638
|
-
(_) => isConditional(_) || isForEach(_) || isRecurseWithData(_) || isWithData(_) || checkAsync(_).isAsync
|
|
13314
|
+
(_) => isConditional(_) || isForEach(_) || isSlowForEach(_) || isRecurseWithData(_) || isWithData(_) || checkAsync(_).isAsync
|
|
12639
13315
|
).reduce((prev, current) => prev || current, false);
|
|
12640
13316
|
let childRenders = childNodes.length === 0 ? RenderFragment.empty() : childNodes.map((_) => renderNode(_, contextForChildren)).reduce(
|
|
12641
13317
|
(prev, current) => RenderFragment.merge(prev, current, ",\n"),
|
|
@@ -12836,6 +13512,7 @@ ${indent.curr}return ${childElement.rendered}}, '${trackBy}')`,
|
|
|
12836
13512
|
const paramType = variables.currentType.name;
|
|
12837
13513
|
const forEachFragment = forEachAccessor.render().map((_) => `(${paramName}: ${paramType}) => ${_}`);
|
|
12838
13514
|
let forEachVariables = variables.childVariableFor(forEachAccessor);
|
|
13515
|
+
context.usedComponentImports.add(forEachVariables.currentType.name);
|
|
12839
13516
|
let newContext = {
|
|
12840
13517
|
...context,
|
|
12841
13518
|
variables: forEachVariables,
|
|
@@ -12849,6 +13526,46 @@ ${indent.curr}return ${childElement.rendered}}, '${trackBy}')`,
|
|
|
12849
13526
|
forEachAccessPath,
|
|
12850
13527
|
renderForEach(forEachFragment, forEachVariables, trackBy, childElement)
|
|
12851
13528
|
);
|
|
13529
|
+
} else if (isSlowForEach(htmlElement)) {
|
|
13530
|
+
const slowForEachInfo = getSlowForEachInfo(htmlElement);
|
|
13531
|
+
if (!slowForEachInfo) {
|
|
13532
|
+
return new RenderFragment("", Imports.none(), [
|
|
13533
|
+
`slowForEach element is missing required attributes (slowForEach, jayIndex, jayTrackBy)`
|
|
13534
|
+
]);
|
|
13535
|
+
}
|
|
13536
|
+
const { arrayName, jayIndex, jayTrackBy } = slowForEachInfo;
|
|
13537
|
+
const arrayAccessor = parseAccessor(arrayName, variables);
|
|
13538
|
+
if (arrayAccessor.resolvedType === JayUnknown)
|
|
13539
|
+
return new RenderFragment("", Imports.none(), [
|
|
13540
|
+
`slowForEach directive - failed to resolve array type [slowForEach=${arrayName}]`
|
|
13541
|
+
]);
|
|
13542
|
+
if (!isArrayType$1(arrayAccessor.resolvedType))
|
|
13543
|
+
return new RenderFragment("", Imports.none(), [
|
|
13544
|
+
`slowForEach directive - resolved type is not an array [slowForEach=${arrayName}]`
|
|
13545
|
+
]);
|
|
13546
|
+
let slowForEachVariables = variables.childVariableFor(arrayAccessor);
|
|
13547
|
+
context.usedComponentImports.add(slowForEachVariables.currentType.name);
|
|
13548
|
+
let newContext = {
|
|
13549
|
+
...context,
|
|
13550
|
+
variables: slowForEachVariables,
|
|
13551
|
+
indent: indent.child().noFirstLineBreak().withLastLineBreak(),
|
|
13552
|
+
dynamicRef: true,
|
|
13553
|
+
isInsideGuard: true
|
|
13554
|
+
// Mark that we're inside a guard
|
|
13555
|
+
};
|
|
13556
|
+
let childElement = renderHtmlElement(htmlElement, newContext);
|
|
13557
|
+
const parentTypeName = variables.currentType.name;
|
|
13558
|
+
const itemTypeName = slowForEachVariables.currentType.name;
|
|
13559
|
+
const slowForEachFragment = new RenderFragment(
|
|
13560
|
+
`${indent.firstLine}slowForEachItem<${parentTypeName}, ${itemTypeName}>('${arrayName}', ${jayIndex}, '${jayTrackBy}',
|
|
13561
|
+
${indent.firstLine}() => ${childElement.rendered}
|
|
13562
|
+
${indent.firstLine})`,
|
|
13563
|
+
childElement.imports.plus(Import.slowForEachItem),
|
|
13564
|
+
childElement.validations,
|
|
13565
|
+
childElement.refs,
|
|
13566
|
+
childElement.recursiveRegions
|
|
13567
|
+
);
|
|
13568
|
+
return nestRefs([arrayName], slowForEachFragment);
|
|
12852
13569
|
} else if (checkAsync(htmlElement).isAsync) {
|
|
12853
13570
|
const asyncDirective = checkAsync(htmlElement);
|
|
12854
13571
|
const asyncProperty = htmlElement.getAttribute(asyncDirective.directive);
|
|
@@ -12954,6 +13671,7 @@ function renderFunctionImplementation$1(types2, rootBodyElement, importStatement
|
|
|
12954
13671
|
const importedRefNameToRef = processImportedHeadless(headlessImports);
|
|
12955
13672
|
const rootElement = ensureSingleChildElement(rootBodyElement);
|
|
12956
13673
|
let renderedRoot;
|
|
13674
|
+
const usedComponentImports = /* @__PURE__ */ new Set();
|
|
12957
13675
|
if (rootElement.val) {
|
|
12958
13676
|
const needsWrapper = isWithData(rootElement.val) || isForEach(rootElement.val) || isConditional(rootElement.val) || isRecurse(rootElement.val) || checkAsync(rootElement.val).isAsync;
|
|
12959
13677
|
const indent = needsWrapper ? new Indent(" ") : new Indent(" ");
|
|
@@ -12969,8 +13687,10 @@ function renderFunctionImplementation$1(types2, rootBodyElement, importStatement
|
|
|
12969
13687
|
importedRefNameToRef,
|
|
12970
13688
|
recursiveRegions: [],
|
|
12971
13689
|
// Initialize empty recursive regions stack
|
|
12972
|
-
isInsideGuard: false
|
|
13690
|
+
isInsideGuard: false,
|
|
12973
13691
|
// Not inside any guard initially
|
|
13692
|
+
usedComponentImports
|
|
13693
|
+
// Track which component types are used
|
|
12974
13694
|
});
|
|
12975
13695
|
if (needsWrapper) {
|
|
12976
13696
|
renderedRoot = new RenderFragment(
|
|
@@ -13036,7 +13756,9 @@ ${headLinksInjection}${recursiveFunctionsSection} const render = (viewState:
|
|
|
13036
13756
|
elementType,
|
|
13037
13757
|
preRenderType,
|
|
13038
13758
|
refsType,
|
|
13039
|
-
renderedImplementation: new RenderFragment(body, imports, renderedRoot.validations)
|
|
13759
|
+
renderedImplementation: new RenderFragment(body, imports, renderedRoot.validations),
|
|
13760
|
+
usedComponentImports
|
|
13761
|
+
// Track which component types were used
|
|
13040
13762
|
};
|
|
13041
13763
|
}
|
|
13042
13764
|
function renderElementBridgeNode(node2, context) {
|
|
@@ -13143,8 +13865,10 @@ function renderBridge(types2, rootBodyElement, importStatements, elementType, pr
|
|
|
13143
13865
|
importedRefNameToRef,
|
|
13144
13866
|
recursiveRegions: [],
|
|
13145
13867
|
// Initialize empty recursive regions stack
|
|
13146
|
-
isInsideGuard: false
|
|
13868
|
+
isInsideGuard: false,
|
|
13147
13869
|
// Not inside any guard initially
|
|
13870
|
+
usedComponentImports: /* @__PURE__ */ new Set()
|
|
13871
|
+
// Not used for bridge
|
|
13148
13872
|
});
|
|
13149
13873
|
renderedBridge = optimizeRefs(renderedBridge, headlessImports);
|
|
13150
13874
|
const { renderedRefsManager, refsManagerImport } = renderReferenceManager(
|
|
@@ -13180,8 +13904,10 @@ function renderSandboxRoot(types2, rootBodyElement, importStatements, headlessIm
|
|
|
13180
13904
|
importedRefNameToRef,
|
|
13181
13905
|
recursiveRegions: [],
|
|
13182
13906
|
// Initialize empty recursive regions stack
|
|
13183
|
-
isInsideGuard: false
|
|
13907
|
+
isInsideGuard: false,
|
|
13184
13908
|
// Not inside any guard initially
|
|
13909
|
+
usedComponentImports: /* @__PURE__ */ new Set()
|
|
13910
|
+
// Not used for sandbox
|
|
13185
13911
|
});
|
|
13186
13912
|
let refsPart = renderedBridge.rendered.length > 0 ? `
|
|
13187
13913
|
${renderedBridge.rendered}
|
|
@@ -13279,7 +14005,7 @@ function generateElementDefinitionFile(parsedFile) {
|
|
|
13279
14005
|
}
|
|
13280
14006
|
function generateElementFile(jayFile, importerMode) {
|
|
13281
14007
|
const types2 = generateTypes(jayFile.types);
|
|
13282
|
-
let { renderedRefs, renderedElement, renderedImplementation } = renderFunctionImplementation$1(
|
|
14008
|
+
let { renderedRefs, renderedElement, renderedImplementation, usedComponentImports } = renderFunctionImplementation$1(
|
|
13283
14009
|
jayFile.types,
|
|
13284
14010
|
jayFile.body,
|
|
13285
14011
|
jayFile.imports,
|
|
@@ -13307,11 +14033,36 @@ function generateElementFile(jayFile, importerMode) {
|
|
|
13307
14033
|
>;`;
|
|
13308
14034
|
});
|
|
13309
14035
|
}
|
|
14036
|
+
const usedHeadlessTypeNames = new Set(usedComponentImports);
|
|
14037
|
+
const headlessModules = /* @__PURE__ */ new Set();
|
|
14038
|
+
for (const headless of jayFile.headlessImports) {
|
|
14039
|
+
usedHeadlessTypeNames.add(headless.rootType.name);
|
|
14040
|
+
for (const link of headless.contractLinks) {
|
|
14041
|
+
headlessModules.add(link.module);
|
|
14042
|
+
for (const name of link.names) {
|
|
14043
|
+
if (name.name.endsWith("Refs") || isEnumType(name.type)) {
|
|
14044
|
+
usedHeadlessTypeNames.add(name.name);
|
|
14045
|
+
}
|
|
14046
|
+
}
|
|
14047
|
+
}
|
|
14048
|
+
}
|
|
14049
|
+
const filteredImports = jayFile.imports.map((importLink) => {
|
|
14050
|
+
if (!headlessModules.has(importLink.module)) {
|
|
14051
|
+
return importLink;
|
|
14052
|
+
}
|
|
14053
|
+
const filteredNames = importLink.names.filter(
|
|
14054
|
+
(name) => usedHeadlessTypeNames.has(name.as || name.name)
|
|
14055
|
+
);
|
|
14056
|
+
if (filteredNames.length === 0) {
|
|
14057
|
+
return null;
|
|
14058
|
+
}
|
|
14059
|
+
return { ...importLink, names: filteredNames };
|
|
14060
|
+
}).filter((imp) => imp !== null);
|
|
13310
14061
|
const renderedFile = [
|
|
13311
14062
|
renderImports$1(
|
|
13312
14063
|
renderedImplementation.imports.plus(Import.element).plus(Import.jayElement),
|
|
13313
14064
|
ImportsFor.implementation,
|
|
13314
|
-
|
|
14065
|
+
filteredImports,
|
|
13315
14066
|
importerMode
|
|
13316
14067
|
),
|
|
13317
14068
|
cssImport,
|
|
@@ -13589,11 +14340,37 @@ function inlineStyleToReact(inlineStyle) {
|
|
|
13589
14340
|
const reactRenamedAttributes = {
|
|
13590
14341
|
for: "htmlFor"
|
|
13591
14342
|
};
|
|
14343
|
+
const booleanAttributes = /* @__PURE__ */ new Set([
|
|
14344
|
+
"disabled",
|
|
14345
|
+
"selected",
|
|
14346
|
+
"readonly",
|
|
14347
|
+
"required",
|
|
14348
|
+
"hidden",
|
|
14349
|
+
"autofocus",
|
|
14350
|
+
"multiple",
|
|
14351
|
+
"open",
|
|
14352
|
+
"novalidate",
|
|
14353
|
+
"formnovalidate",
|
|
14354
|
+
// Media attributes
|
|
14355
|
+
"autoplay",
|
|
14356
|
+
"controls",
|
|
14357
|
+
"loop",
|
|
14358
|
+
"muted",
|
|
14359
|
+
"playsinline",
|
|
14360
|
+
// Other
|
|
14361
|
+
"reversed",
|
|
14362
|
+
"ismap",
|
|
14363
|
+
"defer",
|
|
14364
|
+
"async",
|
|
14365
|
+
"default",
|
|
14366
|
+
"inert"
|
|
14367
|
+
]);
|
|
13592
14368
|
function renderAttributes(element, { variables }) {
|
|
13593
14369
|
let attributes2 = element.attributes;
|
|
13594
14370
|
let renderedAttributes = [];
|
|
13595
14371
|
Object.keys(attributes2).forEach((attrName) => {
|
|
13596
14372
|
const reactAttributeName = reactRenamedAttributes[attrName] || attrName;
|
|
14373
|
+
const attrCanonical = attrName.toLowerCase();
|
|
13597
14374
|
if (attrName === `trackBy`)
|
|
13598
14375
|
renderedAttributes.push(
|
|
13599
14376
|
new RenderFragment(`key={${variables.currentVar}.${attributes2[attrName]}}`)
|
|
@@ -13607,6 +14384,16 @@ function renderAttributes(element, { variables }) {
|
|
|
13607
14384
|
else if (attrName === "class") {
|
|
13608
14385
|
let classExpression = parseReactClassExpression(attributes2[attrName], variables);
|
|
13609
14386
|
renderedAttributes.push(classExpression.map((_) => `className=${_}`));
|
|
14387
|
+
} else if (booleanAttributes.has(attrCanonical)) {
|
|
14388
|
+
const attrValue = attributes2[attrName];
|
|
14389
|
+
if (attrValue === "") {
|
|
14390
|
+
renderedAttributes.push(new RenderFragment(`${reactAttributeName}`));
|
|
14391
|
+
} else {
|
|
14392
|
+
let conditionExpression = parseReactCondition(attrValue, variables);
|
|
14393
|
+
renderedAttributes.push(
|
|
14394
|
+
conditionExpression.map((_) => `${reactAttributeName}={${_}}`)
|
|
14395
|
+
);
|
|
14396
|
+
}
|
|
13610
14397
|
} else {
|
|
13611
14398
|
let attributeExpression = parseReactPropertyExpression(attributes2[attrName], variables);
|
|
13612
14399
|
if (attributeExpression.rendered === "''")
|
|
@@ -17576,6 +18363,21 @@ function resolveImportedType(imports, type2) {
|
|
|
17576
18363
|
function isRecursiveReference(typeString) {
|
|
17577
18364
|
return typeof typeString === "string" && typeString.startsWith("$/");
|
|
17578
18365
|
}
|
|
18366
|
+
function collectNestedTypeNames(type2) {
|
|
18367
|
+
const names = [];
|
|
18368
|
+
if (type2 instanceof JayObjectType) {
|
|
18369
|
+
names.push(type2.name);
|
|
18370
|
+
for (const propType of Object.values(type2.props)) {
|
|
18371
|
+
names.push(...collectNestedTypeNames(propType));
|
|
18372
|
+
}
|
|
18373
|
+
} else if (type2 instanceof JayArrayType) {
|
|
18374
|
+
names.push(...collectNestedTypeNames(type2.itemType));
|
|
18375
|
+
} else if (type2 instanceof JayPromiseType) {
|
|
18376
|
+
names.push(...collectNestedTypeNames(type2.itemType));
|
|
18377
|
+
} else
|
|
18378
|
+
;
|
|
18379
|
+
return names;
|
|
18380
|
+
}
|
|
17579
18381
|
function parseArrayRecursiveReference(typeString) {
|
|
17580
18382
|
if (typeof typeString !== "string")
|
|
17581
18383
|
return null;
|
|
@@ -17949,11 +18751,14 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
|
|
|
17949
18751
|
);
|
|
17950
18752
|
const relativeContractPath = path.relative(filePath, contractPath);
|
|
17951
18753
|
const enumsFromContract = enumsToImportRelativeToJayHtml.filter((_) => _.declaringModule === relativeContractPath).map((_) => _.type);
|
|
18754
|
+
const nestedTypeNames = collectNestedTypeNames(type2);
|
|
18755
|
+
const nestedTypeImports = nestedTypeNames.filter((name2) => name2 !== type2.name).map((name2) => ({ name: name2, type: JayUnknown }));
|
|
17952
18756
|
const contractLink = {
|
|
17953
18757
|
module: relativeContractPath,
|
|
17954
18758
|
names: [
|
|
17955
18759
|
{ name: type2.name, type: type2 },
|
|
17956
18760
|
{ name: refsTypeName, type: JayUnknown },
|
|
18761
|
+
...nestedTypeImports,
|
|
17957
18762
|
...enumsFromContract.map((_) => ({ name: _.name, type: _ }))
|
|
17958
18763
|
]
|
|
17959
18764
|
};
|
|
@@ -18021,6 +18826,7 @@ function parseHeadLinks(root, excludeCssLinks = false) {
|
|
|
18021
18826
|
async function extractCss(root, filePath) {
|
|
18022
18827
|
const cssParts = [];
|
|
18023
18828
|
const validations = [];
|
|
18829
|
+
const linkedCssFiles = [];
|
|
18024
18830
|
const styleLinks = root.querySelectorAll('head link[rel="stylesheet"]');
|
|
18025
18831
|
for (const link of styleLinks) {
|
|
18026
18832
|
const href = link.getAttribute("href");
|
|
@@ -18029,8 +18835,9 @@ async function extractCss(root, filePath) {
|
|
|
18029
18835
|
continue;
|
|
18030
18836
|
}
|
|
18031
18837
|
if (filePath) {
|
|
18838
|
+
const cssFilePath = path.resolve(filePath, href);
|
|
18839
|
+
linkedCssFiles.push(cssFilePath);
|
|
18032
18840
|
try {
|
|
18033
|
-
const cssFilePath = path.resolve(filePath, href);
|
|
18034
18841
|
const cssContent = await fs.readFile(cssFilePath, "utf-8");
|
|
18035
18842
|
cssParts.push(`/* External CSS: ${href} */
|
|
18036
18843
|
${cssContent}`);
|
|
@@ -18050,7 +18857,7 @@ ${cssContent}`);
|
|
|
18050
18857
|
}
|
|
18051
18858
|
}
|
|
18052
18859
|
const css = cssParts.length > 0 ? cssParts.join("\n\n") : void 0;
|
|
18053
|
-
return new WithValidations(css, validations);
|
|
18860
|
+
return new WithValidations({ css, linkedCssFiles }, validations);
|
|
18054
18861
|
}
|
|
18055
18862
|
function extractTrackByMaps(pageContract, headlessImports) {
|
|
18056
18863
|
const serverTrackByMap = {};
|
|
@@ -18143,7 +18950,8 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
|
|
|
18143
18950
|
namespaces,
|
|
18144
18951
|
headlessImports,
|
|
18145
18952
|
headLinks,
|
|
18146
|
-
css: cssResult.val,
|
|
18953
|
+
css: cssResult.val?.css,
|
|
18954
|
+
linkedCssFiles: cssResult.val?.linkedCssFiles.length > 0 ? cssResult.val.linkedCssFiles : void 0,
|
|
18147
18955
|
filename: normalizedFileName,
|
|
18148
18956
|
contract: jayYaml.parsedContract,
|
|
18149
18957
|
contractRef: jayYaml.contractRef,
|
|
@@ -18179,6 +18987,271 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
18179
18987
|
return resolvePluginComponent(projectRoot, pluginName, contractName);
|
|
18180
18988
|
}
|
|
18181
18989
|
};
|
|
18990
|
+
function buildPhaseMap(contract) {
|
|
18991
|
+
const phaseMap = /* @__PURE__ */ new Map();
|
|
18992
|
+
if (!contract) {
|
|
18993
|
+
return phaseMap;
|
|
18994
|
+
}
|
|
18995
|
+
function processTag(tag, path2, parentPhase = "slow") {
|
|
18996
|
+
const effectivePhase = tag.phase || parentPhase;
|
|
18997
|
+
const propertyName = toCamelCase(tag.tag);
|
|
18998
|
+
const currentPath = path2 ? `${path2}.${propertyName}` : propertyName;
|
|
18999
|
+
phaseMap.set(currentPath, {
|
|
19000
|
+
phase: effectivePhase,
|
|
19001
|
+
isArray: tag.repeated || false,
|
|
19002
|
+
trackBy: tag.trackBy
|
|
19003
|
+
});
|
|
19004
|
+
if (tag.tags) {
|
|
19005
|
+
for (const childTag of tag.tags) {
|
|
19006
|
+
processTag(childTag, currentPath, effectivePhase);
|
|
19007
|
+
}
|
|
19008
|
+
}
|
|
19009
|
+
}
|
|
19010
|
+
for (const tag of contract.tags) {
|
|
19011
|
+
processTag(tag, "", "slow");
|
|
19012
|
+
}
|
|
19013
|
+
return phaseMap;
|
|
19014
|
+
}
|
|
19015
|
+
function toCamelCase(str2) {
|
|
19016
|
+
return str2.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase()).replace(/^[A-Z]/, (letter) => letter.toLowerCase());
|
|
19017
|
+
}
|
|
19018
|
+
function isSlowPhase(path2, phaseMap) {
|
|
19019
|
+
const info = phaseMap.get(path2);
|
|
19020
|
+
return !info || info.phase === "slow";
|
|
19021
|
+
}
|
|
19022
|
+
function getValueByPath(obj, path2) {
|
|
19023
|
+
const parts = path2.split(".");
|
|
19024
|
+
let current = obj;
|
|
19025
|
+
for (const part of parts) {
|
|
19026
|
+
if (current === null || current === void 0) {
|
|
19027
|
+
return void 0;
|
|
19028
|
+
}
|
|
19029
|
+
if (typeof current !== "object") {
|
|
19030
|
+
return void 0;
|
|
19031
|
+
}
|
|
19032
|
+
current = current[part];
|
|
19033
|
+
}
|
|
19034
|
+
return current;
|
|
19035
|
+
}
|
|
19036
|
+
function parseBinding(text2) {
|
|
19037
|
+
const trimmed = text2.trim();
|
|
19038
|
+
if (!trimmed.startsWith("{") || !trimmed.endsWith("}")) {
|
|
19039
|
+
return null;
|
|
19040
|
+
}
|
|
19041
|
+
const inner = trimmed.slice(1, -1).trim();
|
|
19042
|
+
if (/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(inner)) {
|
|
19043
|
+
return inner;
|
|
19044
|
+
}
|
|
19045
|
+
return null;
|
|
19046
|
+
}
|
|
19047
|
+
function hasBindings(text2) {
|
|
19048
|
+
return /{[^}]+}/.test(text2);
|
|
19049
|
+
}
|
|
19050
|
+
function resolveTextBindings(text2, contextData, phaseMap, contextPath = "") {
|
|
19051
|
+
return text2.replace(/{([^}]+)}/g, (match, expr) => {
|
|
19052
|
+
const trimmedExpr = expr.trim();
|
|
19053
|
+
if (/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(trimmedExpr)) {
|
|
19054
|
+
const fullPath = contextPath ? `${contextPath}.${trimmedExpr}` : trimmedExpr;
|
|
19055
|
+
if (isSlowPhase(fullPath, phaseMap)) {
|
|
19056
|
+
const value = getValueByPath(contextData, trimmedExpr);
|
|
19057
|
+
if (value !== void 0 && value !== null) {
|
|
19058
|
+
return String(value);
|
|
19059
|
+
}
|
|
19060
|
+
}
|
|
19061
|
+
}
|
|
19062
|
+
return match;
|
|
19063
|
+
});
|
|
19064
|
+
}
|
|
19065
|
+
function transformElement(element, phaseMap, contextPath = "", contextData) {
|
|
19066
|
+
const forEachAttr = element.getAttribute("forEach");
|
|
19067
|
+
if (forEachAttr) {
|
|
19068
|
+
const fullPath = contextPath ? `${contextPath}.${forEachAttr}` : forEachAttr;
|
|
19069
|
+
const phaseInfo = phaseMap.get(fullPath);
|
|
19070
|
+
if (!phaseInfo || phaseInfo.phase === "slow") {
|
|
19071
|
+
const arrayValue = getValueByPath(contextData, forEachAttr);
|
|
19072
|
+
if (Array.isArray(arrayValue)) {
|
|
19073
|
+
const trackBy = element.getAttribute("trackBy") || "id";
|
|
19074
|
+
const results = [];
|
|
19075
|
+
arrayValue.forEach((item, index) => {
|
|
19076
|
+
const cloned = element.clone();
|
|
19077
|
+
cloned.removeAttribute("forEach");
|
|
19078
|
+
cloned.removeAttribute("foreach");
|
|
19079
|
+
cloned.removeAttribute("trackBy");
|
|
19080
|
+
cloned.removeAttribute("trackby");
|
|
19081
|
+
cloned.setAttribute("slowForEach", forEachAttr);
|
|
19082
|
+
cloned.setAttribute("jayIndex", String(index));
|
|
19083
|
+
const trackByValue = item && typeof item === "object" ? String(item[trackBy] || index) : String(index);
|
|
19084
|
+
cloned.setAttribute("jayTrackBy", trackByValue);
|
|
19085
|
+
const newContextPath = fullPath;
|
|
19086
|
+
const itemData = item;
|
|
19087
|
+
const transformedChildren2 = transformChildren(
|
|
19088
|
+
cloned,
|
|
19089
|
+
phaseMap,
|
|
19090
|
+
newContextPath,
|
|
19091
|
+
itemData
|
|
19092
|
+
);
|
|
19093
|
+
cloned.innerHTML = "";
|
|
19094
|
+
for (const child of transformedChildren2) {
|
|
19095
|
+
cloned.appendChild(child);
|
|
19096
|
+
}
|
|
19097
|
+
results.push(cloned);
|
|
19098
|
+
});
|
|
19099
|
+
return results;
|
|
19100
|
+
}
|
|
19101
|
+
}
|
|
19102
|
+
}
|
|
19103
|
+
const ifAttr = element.getAttribute("if");
|
|
19104
|
+
if (ifAttr) {
|
|
19105
|
+
const binding = parseBinding(`{${ifAttr}}`);
|
|
19106
|
+
if (binding) {
|
|
19107
|
+
const fullPath = contextPath ? `${contextPath}.${binding}` : binding;
|
|
19108
|
+
if (isSlowPhase(fullPath, phaseMap)) {
|
|
19109
|
+
const value = getValueByPath(contextData, binding);
|
|
19110
|
+
if (!value) {
|
|
19111
|
+
return [];
|
|
19112
|
+
}
|
|
19113
|
+
element.removeAttribute("if");
|
|
19114
|
+
}
|
|
19115
|
+
}
|
|
19116
|
+
}
|
|
19117
|
+
for (const attrName of Object.keys(element.attributes)) {
|
|
19118
|
+
if (["foreach", "trackby", "slowforeach", "jayindex", "jaytrackby", "if", "ref"].includes(
|
|
19119
|
+
attrName.toLowerCase()
|
|
19120
|
+
)) {
|
|
19121
|
+
continue;
|
|
19122
|
+
}
|
|
19123
|
+
const attrValue = element.getAttribute(attrName);
|
|
19124
|
+
if (attrValue && hasBindings(attrValue)) {
|
|
19125
|
+
const resolved = resolveTextBindings(attrValue, contextData, phaseMap, contextPath);
|
|
19126
|
+
element.setAttribute(attrName, resolved);
|
|
19127
|
+
}
|
|
19128
|
+
}
|
|
19129
|
+
const transformedChildren = transformChildren(element, phaseMap, contextPath, contextData);
|
|
19130
|
+
element.innerHTML = "";
|
|
19131
|
+
for (const child of transformedChildren) {
|
|
19132
|
+
element.appendChild(child);
|
|
19133
|
+
}
|
|
19134
|
+
return [element];
|
|
19135
|
+
}
|
|
19136
|
+
function transformChildren(parent, phaseMap, contextPath = "", contextData) {
|
|
19137
|
+
const results = [];
|
|
19138
|
+
for (const child of parent.childNodes) {
|
|
19139
|
+
if (child.nodeType === NodeType.ELEMENT_NODE) {
|
|
19140
|
+
const transformed = transformElement(
|
|
19141
|
+
child,
|
|
19142
|
+
phaseMap,
|
|
19143
|
+
contextPath,
|
|
19144
|
+
contextData
|
|
19145
|
+
);
|
|
19146
|
+
results.push(...transformed);
|
|
19147
|
+
} else if (child.nodeType === NodeType.TEXT_NODE) {
|
|
19148
|
+
const text2 = child.rawText;
|
|
19149
|
+
if (hasBindings(text2)) {
|
|
19150
|
+
const resolved = resolveTextBindings(text2, contextData, phaseMap, contextPath);
|
|
19151
|
+
child._rawText = resolved;
|
|
19152
|
+
}
|
|
19153
|
+
results.push(child);
|
|
19154
|
+
} else {
|
|
19155
|
+
results.push(child);
|
|
19156
|
+
}
|
|
19157
|
+
}
|
|
19158
|
+
return results;
|
|
19159
|
+
}
|
|
19160
|
+
function resolveRelativePaths(root, sourceDir) {
|
|
19161
|
+
const jayDataScripts = root.querySelectorAll('script[type="application/jay-data"]');
|
|
19162
|
+
for (const script of jayDataScripts) {
|
|
19163
|
+
const contract = script.getAttribute("contract");
|
|
19164
|
+
if (contract && isRelativePath(contract)) {
|
|
19165
|
+
script.setAttribute("contract", path.resolve(sourceDir, contract));
|
|
19166
|
+
}
|
|
19167
|
+
}
|
|
19168
|
+
const headlessScripts = root.querySelectorAll('script[type="application/jay-headless"]');
|
|
19169
|
+
for (const script of headlessScripts) {
|
|
19170
|
+
const src = script.getAttribute("src");
|
|
19171
|
+
if (src && isRelativePath(src)) {
|
|
19172
|
+
script.setAttribute("src", path.resolve(sourceDir, src));
|
|
19173
|
+
}
|
|
19174
|
+
}
|
|
19175
|
+
const links = root.querySelectorAll('link[rel="stylesheet"]');
|
|
19176
|
+
for (const link of links) {
|
|
19177
|
+
const href = link.getAttribute("href");
|
|
19178
|
+
if (href && isRelativePath(href)) {
|
|
19179
|
+
link.setAttribute("href", path.resolve(sourceDir, href));
|
|
19180
|
+
}
|
|
19181
|
+
}
|
|
19182
|
+
const scripts = root.querySelectorAll("script[src]");
|
|
19183
|
+
for (const script of scripts) {
|
|
19184
|
+
const scriptType = script.getAttribute("type");
|
|
19185
|
+
if (scriptType === "application/jay-data" || scriptType === "application/jay-headless") {
|
|
19186
|
+
continue;
|
|
19187
|
+
}
|
|
19188
|
+
const src = script.getAttribute("src");
|
|
19189
|
+
if (src && isRelativePath(src)) {
|
|
19190
|
+
script.setAttribute("src", path.resolve(sourceDir, src));
|
|
19191
|
+
}
|
|
19192
|
+
}
|
|
19193
|
+
}
|
|
19194
|
+
function isRelativePath(p) {
|
|
19195
|
+
return p.startsWith("./") || p.startsWith("../");
|
|
19196
|
+
}
|
|
19197
|
+
function slowRenderTransform(input) {
|
|
19198
|
+
const validations = [];
|
|
19199
|
+
try {
|
|
19200
|
+
const root = parse_2(input.jayHtmlContent, {
|
|
19201
|
+
comment: true,
|
|
19202
|
+
blockTextElements: {
|
|
19203
|
+
script: true,
|
|
19204
|
+
style: true
|
|
19205
|
+
}
|
|
19206
|
+
});
|
|
19207
|
+
const phaseMap = buildPhaseMap(input.contract);
|
|
19208
|
+
const body = root.querySelector("body");
|
|
19209
|
+
if (!body) {
|
|
19210
|
+
validations.push("jay-html must have a body element");
|
|
19211
|
+
return new WithValidations(void 0, validations);
|
|
19212
|
+
}
|
|
19213
|
+
const transformedChildren = transformChildren(body, phaseMap, "", input.slowViewState);
|
|
19214
|
+
body.innerHTML = "";
|
|
19215
|
+
for (const child of transformedChildren) {
|
|
19216
|
+
body.appendChild(child);
|
|
19217
|
+
}
|
|
19218
|
+
if (input.sourceDir) {
|
|
19219
|
+
resolveRelativePaths(root, input.sourceDir);
|
|
19220
|
+
}
|
|
19221
|
+
const output = {
|
|
19222
|
+
preRenderedJayHtml: root.toString()
|
|
19223
|
+
};
|
|
19224
|
+
return new WithValidations(output, validations);
|
|
19225
|
+
} catch (error) {
|
|
19226
|
+
validations.push(`Slow render transform failed: ${error.message}`);
|
|
19227
|
+
return new WithValidations(void 0, validations);
|
|
19228
|
+
}
|
|
19229
|
+
}
|
|
19230
|
+
function hasSlowPhaseProperties(contract) {
|
|
19231
|
+
if (!contract) {
|
|
19232
|
+
return false;
|
|
19233
|
+
}
|
|
19234
|
+
function checkTag(tag, parentPhase = "slow") {
|
|
19235
|
+
const effectivePhase = tag.phase || parentPhase;
|
|
19236
|
+
if (effectivePhase === "slow") {
|
|
19237
|
+
return true;
|
|
19238
|
+
}
|
|
19239
|
+
if (tag.tags) {
|
|
19240
|
+
for (const childTag of tag.tags) {
|
|
19241
|
+
if (checkTag(childTag, effectivePhase)) {
|
|
19242
|
+
return true;
|
|
19243
|
+
}
|
|
19244
|
+
}
|
|
19245
|
+
}
|
|
19246
|
+
return false;
|
|
19247
|
+
}
|
|
19248
|
+
for (const tag of contract.tags) {
|
|
19249
|
+
if (checkTag(tag)) {
|
|
19250
|
+
return true;
|
|
19251
|
+
}
|
|
19252
|
+
}
|
|
19253
|
+
return false;
|
|
19254
|
+
}
|
|
18182
19255
|
export {
|
|
18183
19256
|
ContractTagType,
|
|
18184
19257
|
JAY_IMPORT_RESOLVER,
|
|
@@ -18193,9 +19266,11 @@ export {
|
|
|
18193
19266
|
generateSandboxRootFile,
|
|
18194
19267
|
generateTypes,
|
|
18195
19268
|
getJayHtmlImports,
|
|
19269
|
+
hasSlowPhaseProperties,
|
|
18196
19270
|
parseContract,
|
|
18197
19271
|
parseEnumValues,
|
|
18198
19272
|
parseIsEnum,
|
|
18199
19273
|
parseJayFile,
|
|
18200
|
-
renderRefsType
|
|
19274
|
+
renderRefsType,
|
|
19275
|
+
slowRenderTransform
|
|
18201
19276
|
};
|