@jay-framework/compiler-jay-html 0.22.2 → 0.23.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 +1 -0
- package/dist/index.js +817 -403
- package/docs/jay-html-docs.md +66 -0
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { JayImportedType, isObjectType as isObjectType$1, isImportedType, isRecursiveType, JayUnknown, RenderFragment, Imports, Import, WithValidations, isArrayType as isArrayType$1, isAtomicType, isPromiseType, isEnumType, hasRefs, GenerateTarget, JayTypeAlias, JayUnionType, mkRefsTree, JayComponentType, JayHTMLType, mkRef, equalJayTypes, getModeFileExtension, isHtmlStringType, RuntimeMode, nestRefs, mergeRefsTrees, SourceFileFormat, JayEnumType, JayObjectType, JayArrayType, JayPromiseType, resolvePrimitiveType, JayRecursiveType, JAY_CONTRACT_EXTENSION as JAY_CONTRACT_EXTENSION$1, ImportsFor, JAY_FULLSTACK_COMPONENTS, JayErrorType, JayOptionalType, JayRecordType, isOptionalType, isRecordType, resolvePluginComponent, resolvePluginManifest } from "@jay-framework/compiler-shared";
|
|
1
|
+
import { camelCase as camelCase$1, JayImportedType, JayString, isObjectType as isObjectType$1, isImportedType, isRecursiveType, JayUnknown, RenderFragment, Imports, Import, WithValidations, isArrayType as isArrayType$1, isAtomicType, isPromiseType, isEnumType, hasRefs, GenerateTarget, JayTypeAlias, JayUnionType, mkRefsTree, JayComponentType, JayHTMLType, mkRef, equalJayTypes, getModeFileExtension, isHtmlStringType, RuntimeMode, nestRefs, mergeRefsTrees, SourceFileFormat, JayEnumType, JayObjectType, JayArrayType, JayPromiseType, resolvePrimitiveType, JayRecursiveType, JAY_CONTRACT_EXTENSION as JAY_CONTRACT_EXTENSION$1, ImportsFor, JAY_FULLSTACK_COMPONENTS, JayErrorType, JayOptionalType, JayRecordType, isOptionalType, isRecordType, resolvePluginComponent, resolvePluginManifest } from "@jay-framework/compiler-shared";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { getLogger } from "@jay-framework/logger";
|
|
4
|
-
import fs from "fs/promises";
|
|
5
|
-
import fs
|
|
4
|
+
import fs$1 from "fs/promises";
|
|
5
|
+
import fs from "fs";
|
|
6
6
|
import { analyzeExportedTypes } from "@jay-framework/compiler-analyze-exported-types";
|
|
7
7
|
import { createRequire } from "module";
|
|
8
8
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
@@ -6139,7 +6139,7 @@ function camelCaseTransform(input, index) {
|
|
|
6139
6139
|
return input.toLowerCase();
|
|
6140
6140
|
return pascalCaseTransform(input, index);
|
|
6141
6141
|
}
|
|
6142
|
-
function camelCase
|
|
6142
|
+
function camelCase(input, options) {
|
|
6143
6143
|
if (options === void 0) {
|
|
6144
6144
|
options = {};
|
|
6145
6145
|
}
|
|
@@ -6157,22 +6157,6 @@ function capitalCase(input, options) {
|
|
|
6157
6157
|
}
|
|
6158
6158
|
return noCase(input, __assign({ delimiter: " ", transform: capitalCaseTransform }, options));
|
|
6159
6159
|
}
|
|
6160
|
-
function camelCase(str2) {
|
|
6161
|
-
let leadingUnderscores = 0;
|
|
6162
|
-
for (const char of str2) {
|
|
6163
|
-
if (char === "_") {
|
|
6164
|
-
leadingUnderscores++;
|
|
6165
|
-
} else {
|
|
6166
|
-
break;
|
|
6167
|
-
}
|
|
6168
|
-
}
|
|
6169
|
-
if (leadingUnderscores === 0) {
|
|
6170
|
-
return camelCase$1(str2);
|
|
6171
|
-
}
|
|
6172
|
-
const withoutLeadingUnderscores = str2.slice(leadingUnderscores);
|
|
6173
|
-
const camelCased = camelCase$1(withoutLeadingUnderscores);
|
|
6174
|
-
return "_".repeat(leadingUnderscores) + camelCased;
|
|
6175
|
-
}
|
|
6176
6160
|
function shouldIncludeInPhase(propertyPhase, targetPhase) {
|
|
6177
6161
|
if (targetPhase === "slow") {
|
|
6178
6162
|
return propertyPhase === "slow";
|
|
@@ -6192,7 +6176,7 @@ function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], paren
|
|
|
6192
6176
|
continue;
|
|
6193
6177
|
}
|
|
6194
6178
|
const effectivePhase = getEffectivePhase(tag, parentPhase);
|
|
6195
|
-
const propertyName = camelCase(tag.tag);
|
|
6179
|
+
const propertyName = camelCase$1(tag.tag);
|
|
6196
6180
|
const currentPath = [...parentPath, propertyName];
|
|
6197
6181
|
const isArray = tag.repeated || false;
|
|
6198
6182
|
const isAsync = tag.async || false;
|
|
@@ -6244,7 +6228,7 @@ function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], paren
|
|
|
6244
6228
|
trackByForChildren,
|
|
6245
6229
|
childLinkedContext
|
|
6246
6230
|
);
|
|
6247
|
-
const hasOnlyTrackBy = isArray && trackByForChildren && result.paths.length === 1 && result.paths[0].propertyName === camelCase(trackByForChildren);
|
|
6231
|
+
const hasOnlyTrackBy = isArray && trackByForChildren && result.paths.length === 1 && result.paths[0].propertyName === camelCase$1(trackByForChildren);
|
|
6248
6232
|
if (result.paths.length > 0 && !hasOnlyTrackBy) {
|
|
6249
6233
|
paths.push(...result.paths);
|
|
6250
6234
|
arrays.push(...result.arrays);
|
|
@@ -6287,7 +6271,7 @@ function countTotalProperties(tags, targetPath, currentPath = [], linkedContext)
|
|
|
6287
6271
|
if (tag.type.includes(ContractTagType.interactive) && !tag.dataType) {
|
|
6288
6272
|
continue;
|
|
6289
6273
|
}
|
|
6290
|
-
const propertyName = camelCase(tag.tag);
|
|
6274
|
+
const propertyName = camelCase$1(tag.tag);
|
|
6291
6275
|
const newPath = [...currentPath, propertyName];
|
|
6292
6276
|
const pathKey = newPath.join(".");
|
|
6293
6277
|
const targetKey = targetPath.join(".");
|
|
@@ -6804,7 +6788,9 @@ function peg$parse(input, options) {
|
|
|
6804
6788
|
if (tail.length === 0)
|
|
6805
6789
|
return head;
|
|
6806
6790
|
return tail.reduce((acc, curr) => combineAnd(acc, curr[3]), head);
|
|
6807
|
-
}, peg$c100 = function(left,
|
|
6791
|
+
}, peg$c100 = "^=", peg$c101 = peg$literalExpectation("^=", false), peg$c102 = function(left, right) {
|
|
6792
|
+
return applyStartsWith(left, right);
|
|
6793
|
+
}, peg$c103 = function(left, op, right) {
|
|
6808
6794
|
if (left.type === "resolved" && left.propertyPath && right.type === "code" && right.isSimpleIdentifier) {
|
|
6809
6795
|
const phaseInfo = getPhaseInfo(left.propertyPath);
|
|
6810
6796
|
if (phaseInfo && phaseInfo.enumValues) {
|
|
@@ -6815,19 +6801,33 @@ function peg$parse(input, options) {
|
|
|
6815
6801
|
}
|
|
6816
6802
|
}
|
|
6817
6803
|
return applyComparison(left, op, right);
|
|
6818
|
-
}, peg$
|
|
6804
|
+
}, peg$c104 = "!", peg$c105 = peg$literalExpectation("!", false), peg$c106 = function(operand) {
|
|
6819
6805
|
return applyNot(operand);
|
|
6820
|
-
}, peg$
|
|
6806
|
+
}, peg$c107 = function(cond) {
|
|
6821
6807
|
return cond;
|
|
6822
|
-
}, peg$
|
|
6808
|
+
}, peg$c108 = function(chars) {
|
|
6809
|
+
return { type: "resolved", value: chars.join("") };
|
|
6810
|
+
}, peg$c109 = "-", peg$c110 = peg$literalExpectation("-", false), peg$c111 = /^[0-9]/, peg$c112 = peg$classExpectation([["0", "9"]], false, false), peg$c113 = ".", peg$c114 = peg$literalExpectation(".", false), peg$c115 = function(val) {
|
|
6823
6811
|
return { type: "resolved", value: parseFloat(text2()) };
|
|
6824
|
-
}, peg$
|
|
6812
|
+
}, peg$c116 = "true", peg$c117 = peg$literalExpectation("true", false), peg$c118 = function() {
|
|
6825
6813
|
return { type: "resolved", value: true };
|
|
6826
|
-
}, peg$
|
|
6814
|
+
}, peg$c119 = "false", peg$c120 = peg$literalExpectation("false", false), peg$c121 = function() {
|
|
6827
6815
|
return { type: "resolved", value: false };
|
|
6828
|
-
}, peg$
|
|
6816
|
+
}, peg$c122 = function(head, tail) {
|
|
6829
6817
|
const path2 = [head, ...tail.map((t) => t[3])].join(".");
|
|
6830
6818
|
const isSimple = tail.length === 0;
|
|
6819
|
+
if (head === "jay") {
|
|
6820
|
+
const jayTerms = ["__jay", ...tail.map((t) => t[3])];
|
|
6821
|
+
if (vars) {
|
|
6822
|
+
const accessor = vars.resolveAccessor(["jay", ...tail.map((t) => t[3])]);
|
|
6823
|
+
const fragment = accessor.render();
|
|
6824
|
+
return { type: "code", fragment, expr: path2, propertyPath: path2, isSimpleIdentifier: false };
|
|
6825
|
+
} else {
|
|
6826
|
+
const code = `vs.${jayTerms.join("?.")}`;
|
|
6827
|
+
const fragment = new RenderFragment2(code, none);
|
|
6828
|
+
return { type: "code", fragment, expr: path2, propertyPath: path2, isSimpleIdentifier: false };
|
|
6829
|
+
}
|
|
6830
|
+
}
|
|
6831
6831
|
if (isSlowPhase2(path2)) {
|
|
6832
6832
|
const value = getSlowValue(path2);
|
|
6833
6833
|
return { type: "resolved", value, propertyPath: path2 };
|
|
@@ -6841,7 +6841,7 @@ function peg$parse(input, options) {
|
|
|
6841
6841
|
const fragment = new RenderFragment2(code, none);
|
|
6842
6842
|
return { type: "code", fragment, expr: path2, propertyPath: path2, isSimpleIdentifier: isSimple };
|
|
6843
6843
|
}
|
|
6844
|
-
}, peg$
|
|
6844
|
+
}, 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 = ">=", peg$c134 = peg$literalExpectation(">=", false), peg$c135 = "<", peg$c136 = peg$literalExpectation("<", false), peg$c137 = ">", peg$c138 = peg$literalExpectation(">", false), peg$c139 = function(head, tail) {
|
|
6845
6845
|
if (tail.length === 0)
|
|
6846
6846
|
return head;
|
|
6847
6847
|
return tail.reduce((acc, curr) => {
|
|
@@ -6852,7 +6852,7 @@ function peg$parse(input, options) {
|
|
|
6852
6852
|
" || "
|
|
6853
6853
|
);
|
|
6854
6854
|
}, head);
|
|
6855
|
-
}, peg$
|
|
6855
|
+
}, peg$c140 = function(head, tail) {
|
|
6856
6856
|
if (tail.length === 0)
|
|
6857
6857
|
return head;
|
|
6858
6858
|
return tail.reduce((acc, curr) => {
|
|
@@ -6863,56 +6863,65 @@ function peg$parse(input, options) {
|
|
|
6863
6863
|
" && "
|
|
6864
6864
|
);
|
|
6865
6865
|
}, head);
|
|
6866
|
-
}, peg$
|
|
6866
|
+
}, peg$c141 = function(not, head) {
|
|
6867
6867
|
return not ? head.render().map((_) => `!${_}`) : head.render();
|
|
6868
|
-
}, peg$
|
|
6868
|
+
}, peg$c142 = function(head, oper, val) {
|
|
6869
6869
|
return head.render().map((_) => `${_} ${oper} ${val}`);
|
|
6870
|
-
}, peg$
|
|
6870
|
+
}, peg$c143 = function(acc) {
|
|
6871
6871
|
return acc.render().rendered;
|
|
6872
|
-
}, peg$
|
|
6872
|
+
}, peg$c144 = function(head, val) {
|
|
6873
|
+
return head.render().map((_) => `${_}.startsWith(${val})`);
|
|
6874
|
+
}, peg$c145 = function(head, oper, val) {
|
|
6873
6875
|
if (oper === "==")
|
|
6874
6876
|
oper = "===";
|
|
6875
6877
|
if (oper === "!=")
|
|
6876
6878
|
oper = "!==";
|
|
6877
6879
|
return head.render().map((_) => `${_} ${oper} ${val}`);
|
|
6878
|
-
}, peg$
|
|
6880
|
+
}, peg$c146 = function(head, tail) {
|
|
6879
6881
|
let terms = [head, ...tail.map((_) => _[3])];
|
|
6880
6882
|
return vars.resolveAccessor(terms);
|
|
6881
|
-
}, peg$
|
|
6883
|
+
}, peg$c147 = function(head, oper, val) {
|
|
6882
6884
|
if (oper.length === 2)
|
|
6883
6885
|
oper = oper + "=";
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6886
|
+
if (head.resolvedType.values) {
|
|
6887
|
+
const enumName = head.resolvedType.alias || head.resolvedType.name;
|
|
6888
|
+
const fragment2 = head.render().map((_) => `${_} ${oper} ${enumName}.${val}`);
|
|
6889
|
+
if (!head.resolvedType.values.includes(val)) {
|
|
6890
|
+
fragment2.validations = [...fragment2.validations, `Unknown enum value "${val}" for type ${head.resolvedType.name}. Valid values: ${head.resolvedType.values.join(", ")}`];
|
|
6891
|
+
}
|
|
6892
|
+
return fragment2;
|
|
6893
|
+
}
|
|
6894
|
+
const rightAccessor = vars.resolveAccessor([val]);
|
|
6895
|
+
const rightCode = rightAccessor.render();
|
|
6896
|
+
const fragment = head.render().map((_) => `${_} ${oper} ${rightCode.rendered}`);
|
|
6897
|
+
fragment.validations = [...fragment.validations, ...rightCode.validations];
|
|
6889
6898
|
return fragment;
|
|
6890
|
-
}, peg$
|
|
6899
|
+
}, peg$c148 = function() {
|
|
6891
6900
|
return vars.resolveAccessor(["."]);
|
|
6892
|
-
}, peg$
|
|
6901
|
+
}, peg$c149 = function(head, tail) {
|
|
6893
6902
|
let terms = [head, ...tail.map((_) => _[3])];
|
|
6894
6903
|
let accessor = vars.resolveAccessor(terms);
|
|
6895
6904
|
return accessor;
|
|
6896
|
-
}, peg$
|
|
6905
|
+
}, peg$c150 = peg$otherExpectation("integer"), peg$c151 = peg$otherExpectation("whitespace"), peg$c152 = /^[^{} \t\n\r]/, peg$c153 = peg$classExpectation(["{", "}", " ", " ", "\n", "\r"], true, false), peg$c154 = function() {
|
|
6897
6906
|
return text2();
|
|
6898
|
-
}, peg$
|
|
6907
|
+
}, peg$c155 = function(name) {
|
|
6899
6908
|
return text2();
|
|
6900
|
-
}, peg$
|
|
6909
|
+
}, peg$c156 = peg$otherExpectation("identifier"), peg$c157 = function(head, tail) {
|
|
6901
6910
|
return {
|
|
6902
6911
|
type: "Identifier",
|
|
6903
6912
|
name: head + tail.join("")
|
|
6904
6913
|
};
|
|
6905
|
-
}, peg$
|
|
6914
|
+
}, peg$c158 = "$", peg$c159 = peg$literalExpectation("$", false), peg$c160 = "_", peg$c161 = peg$literalExpectation("_", false), peg$c162 = "\\", peg$c163 = peg$literalExpectation("\\", false), peg$c164 = function(sequence) {
|
|
6906
6915
|
return sequence;
|
|
6907
|
-
}, peg$
|
|
6916
|
+
}, peg$c165 = "", peg$c166 = peg$literalExpectation("", false), peg$c167 = "", peg$c168 = peg$literalExpectation("", false), peg$c169 = "u", peg$c170 = peg$literalExpectation("u", false), peg$c171 = function(digits) {
|
|
6908
6917
|
return String.fromCharCode(parseInt(digits, 16));
|
|
6909
|
-
}, peg$
|
|
6918
|
+
}, peg$c172 = function() {
|
|
6910
6919
|
return { type: "Literal", value: null };
|
|
6911
|
-
}, peg$
|
|
6920
|
+
}, peg$c173 = function() {
|
|
6912
6921
|
return { type: "Literal", value: true };
|
|
6913
|
-
}, peg$
|
|
6922
|
+
}, peg$c174 = function() {
|
|
6914
6923
|
return { type: "Literal", value: false };
|
|
6915
|
-
}, peg$c170 = /^[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$c171 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c172 = /^[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$c173 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c174 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c175 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c176 = /^[\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$c177 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c178 = /^[\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$c179 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c180 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c181 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c182 = /^[\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$c183 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c184 = /^[\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$c185 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c186 = /^[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$c187 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c188 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c189 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c192 = /^[0-9a-f]/i, peg$c193 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c194 = "break", peg$c195 = peg$literalExpectation("break", false), peg$c196 = "case", peg$c197 = peg$literalExpectation("case", false), peg$c198 = "catch", peg$c199 = peg$literalExpectation("catch", false), peg$c200 = "class", peg$c201 = peg$literalExpectation("class", false), peg$c202 = "const", peg$c203 = peg$literalExpectation("const", false), peg$c204 = "continue", peg$c205 = peg$literalExpectation("continue", false), peg$c206 = "debugger", peg$c207 = peg$literalExpectation("debugger", false), peg$c208 = "default", peg$c209 = peg$literalExpectation("default", false), peg$c210 = "delete", peg$c211 = peg$literalExpectation("delete", false), peg$c212 = "do", peg$c213 = peg$literalExpectation("do", false), peg$c214 = "else", peg$c215 = peg$literalExpectation("else", false), peg$c216 = "export", peg$c217 = peg$literalExpectation("export", false), peg$c218 = "extends", peg$c219 = peg$literalExpectation("extends", false), peg$c220 = "finally", peg$c221 = peg$literalExpectation("finally", false), peg$c222 = "for", peg$c223 = peg$literalExpectation("for", false), peg$c224 = "function", peg$c225 = peg$literalExpectation("function", false), peg$c228 = "if", peg$c229 = peg$literalExpectation("if", false), peg$c230 = "import", peg$c231 = peg$literalExpectation("import", false), peg$c232 = "instanceof", peg$c233 = peg$literalExpectation("instanceof", false), peg$c234 = "in", peg$c235 = peg$literalExpectation("in", false), peg$c236 = "new", peg$c237 = peg$literalExpectation("new", false), peg$c238 = "null", peg$c239 = peg$literalExpectation("null", false), peg$c240 = "return", peg$c241 = peg$literalExpectation("return", false), peg$c244 = "super", peg$c245 = peg$literalExpectation("super", false), peg$c246 = "switch", peg$c247 = peg$literalExpectation("switch", false), peg$c248 = "this", peg$c249 = peg$literalExpectation("this", false), peg$c250 = "throw", peg$c251 = peg$literalExpectation("throw", false), peg$c252 = "try", peg$c253 = peg$literalExpectation("try", false), peg$c254 = "typeof", peg$c255 = peg$literalExpectation("typeof", false), peg$c256 = "var", peg$c257 = peg$literalExpectation("var", false), peg$c258 = "void", peg$c259 = peg$literalExpectation("void", false), peg$c260 = "while", peg$c261 = peg$literalExpectation("while", false), peg$c262 = "with", peg$c263 = 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;
|
|
6924
|
+
}, peg$c175 = /^[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$c176 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c177 = /^[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$c178 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c179 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c180 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c181 = /^[\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$c182 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c183 = /^[\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$c184 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c185 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c186 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c187 = /^[\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$c188 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c189 = /^[\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$c190 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c191 = /^[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$c192 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c193 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c194 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c197 = /^[0-9a-f]/i, peg$c198 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c199 = "break", peg$c200 = peg$literalExpectation("break", false), peg$c201 = "case", peg$c202 = peg$literalExpectation("case", false), peg$c203 = "catch", peg$c204 = peg$literalExpectation("catch", false), peg$c205 = "class", peg$c206 = peg$literalExpectation("class", false), peg$c207 = "const", peg$c208 = peg$literalExpectation("const", false), peg$c209 = "continue", peg$c210 = peg$literalExpectation("continue", false), peg$c211 = "debugger", peg$c212 = peg$literalExpectation("debugger", false), peg$c213 = "default", peg$c214 = peg$literalExpectation("default", false), peg$c215 = "delete", peg$c216 = peg$literalExpectation("delete", false), peg$c217 = "do", peg$c218 = peg$literalExpectation("do", false), peg$c219 = "else", peg$c220 = peg$literalExpectation("else", false), peg$c221 = "export", peg$c222 = peg$literalExpectation("export", false), peg$c223 = "extends", peg$c224 = peg$literalExpectation("extends", false), peg$c225 = "finally", peg$c226 = peg$literalExpectation("finally", false), peg$c227 = "for", peg$c228 = peg$literalExpectation("for", false), peg$c229 = "function", peg$c230 = peg$literalExpectation("function", false), peg$c233 = "if", peg$c234 = peg$literalExpectation("if", false), peg$c235 = "import", peg$c236 = peg$literalExpectation("import", false), peg$c237 = "instanceof", peg$c238 = peg$literalExpectation("instanceof", false), peg$c239 = "in", peg$c240 = peg$literalExpectation("in", false), peg$c241 = "new", peg$c242 = peg$literalExpectation("new", false), peg$c243 = "null", peg$c244 = peg$literalExpectation("null", false), peg$c245 = "return", peg$c246 = peg$literalExpectation("return", false), peg$c249 = "super", peg$c250 = peg$literalExpectation("super", false), peg$c251 = "switch", peg$c252 = peg$literalExpectation("switch", false), peg$c253 = "this", peg$c254 = peg$literalExpectation("this", false), peg$c255 = "throw", peg$c256 = peg$literalExpectation("throw", false), peg$c257 = "try", peg$c258 = peg$literalExpectation("try", false), peg$c259 = "typeof", peg$c260 = peg$literalExpectation("typeof", false), peg$c261 = "var", peg$c262 = peg$literalExpectation("var", false), peg$c263 = "void", peg$c264 = peg$literalExpectation("void", false), peg$c265 = "while", peg$c266 = peg$literalExpectation("while", false), peg$c267 = "with", peg$c268 = 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;
|
|
6916
6925
|
if ("startRule" in options) {
|
|
6917
6926
|
if (!(options.startRule in peg$startRuleFunctions)) {
|
|
6918
6927
|
throw new Error(`Can't start parsing from rule "` + options.startRule + '".');
|
|
@@ -9791,14 +9800,22 @@ function peg$parse(input, options) {
|
|
|
9791
9800
|
if (s1 !== peg$FAILED) {
|
|
9792
9801
|
s2 = peg$parse_();
|
|
9793
9802
|
if (s2 !== peg$FAILED) {
|
|
9794
|
-
|
|
9803
|
+
if (input.substr(peg$currPos, 2) === peg$c100) {
|
|
9804
|
+
s3 = peg$c100;
|
|
9805
|
+
peg$currPos += 2;
|
|
9806
|
+
} else {
|
|
9807
|
+
s3 = peg$FAILED;
|
|
9808
|
+
if (peg$silentFails === 0) {
|
|
9809
|
+
peg$fail(peg$c101);
|
|
9810
|
+
}
|
|
9811
|
+
}
|
|
9795
9812
|
if (s3 !== peg$FAILED) {
|
|
9796
9813
|
s4 = peg$parse_();
|
|
9797
9814
|
if (s4 !== peg$FAILED) {
|
|
9798
9815
|
s5 = peg$parseslowUnary();
|
|
9799
9816
|
if (s5 !== peg$FAILED) {
|
|
9800
9817
|
peg$savedPos = s0;
|
|
9801
|
-
s1 = peg$
|
|
9818
|
+
s1 = peg$c102(s1, s5);
|
|
9802
9819
|
s0 = s1;
|
|
9803
9820
|
} else {
|
|
9804
9821
|
peg$currPos = s0;
|
|
@@ -9821,7 +9838,43 @@ function peg$parse(input, options) {
|
|
|
9821
9838
|
s0 = peg$FAILED;
|
|
9822
9839
|
}
|
|
9823
9840
|
if (s0 === peg$FAILED) {
|
|
9824
|
-
s0 = peg$
|
|
9841
|
+
s0 = peg$currPos;
|
|
9842
|
+
s1 = peg$parseslowUnary();
|
|
9843
|
+
if (s1 !== peg$FAILED) {
|
|
9844
|
+
s2 = peg$parse_();
|
|
9845
|
+
if (s2 !== peg$FAILED) {
|
|
9846
|
+
s3 = peg$parseComparisonOperator();
|
|
9847
|
+
if (s3 !== peg$FAILED) {
|
|
9848
|
+
s4 = peg$parse_();
|
|
9849
|
+
if (s4 !== peg$FAILED) {
|
|
9850
|
+
s5 = peg$parseslowUnary();
|
|
9851
|
+
if (s5 !== peg$FAILED) {
|
|
9852
|
+
peg$savedPos = s0;
|
|
9853
|
+
s1 = peg$c103(s1, s3, s5);
|
|
9854
|
+
s0 = s1;
|
|
9855
|
+
} else {
|
|
9856
|
+
peg$currPos = s0;
|
|
9857
|
+
s0 = peg$FAILED;
|
|
9858
|
+
}
|
|
9859
|
+
} else {
|
|
9860
|
+
peg$currPos = s0;
|
|
9861
|
+
s0 = peg$FAILED;
|
|
9862
|
+
}
|
|
9863
|
+
} else {
|
|
9864
|
+
peg$currPos = s0;
|
|
9865
|
+
s0 = peg$FAILED;
|
|
9866
|
+
}
|
|
9867
|
+
} else {
|
|
9868
|
+
peg$currPos = s0;
|
|
9869
|
+
s0 = peg$FAILED;
|
|
9870
|
+
}
|
|
9871
|
+
} else {
|
|
9872
|
+
peg$currPos = s0;
|
|
9873
|
+
s0 = peg$FAILED;
|
|
9874
|
+
}
|
|
9875
|
+
if (s0 === peg$FAILED) {
|
|
9876
|
+
s0 = peg$parseslowUnary();
|
|
9877
|
+
}
|
|
9825
9878
|
}
|
|
9826
9879
|
return s0;
|
|
9827
9880
|
}
|
|
@@ -9829,12 +9882,12 @@ function peg$parse(input, options) {
|
|
|
9829
9882
|
var s0, s1, s2, s3;
|
|
9830
9883
|
s0 = peg$currPos;
|
|
9831
9884
|
if (input.charCodeAt(peg$currPos) === 33) {
|
|
9832
|
-
s1 = peg$
|
|
9885
|
+
s1 = peg$c104;
|
|
9833
9886
|
peg$currPos++;
|
|
9834
9887
|
} else {
|
|
9835
9888
|
s1 = peg$FAILED;
|
|
9836
9889
|
if (peg$silentFails === 0) {
|
|
9837
|
-
peg$fail(peg$
|
|
9890
|
+
peg$fail(peg$c105);
|
|
9838
9891
|
}
|
|
9839
9892
|
}
|
|
9840
9893
|
if (s1 !== peg$FAILED) {
|
|
@@ -9843,7 +9896,7 @@ function peg$parse(input, options) {
|
|
|
9843
9896
|
s3 = peg$parseslowUnary();
|
|
9844
9897
|
if (s3 !== peg$FAILED) {
|
|
9845
9898
|
peg$savedPos = s0;
|
|
9846
|
-
s1 = peg$
|
|
9899
|
+
s1 = peg$c106(s3);
|
|
9847
9900
|
s0 = s1;
|
|
9848
9901
|
} else {
|
|
9849
9902
|
peg$currPos = s0;
|
|
@@ -9892,7 +9945,7 @@ function peg$parse(input, options) {
|
|
|
9892
9945
|
}
|
|
9893
9946
|
if (s5 !== peg$FAILED) {
|
|
9894
9947
|
peg$savedPos = s0;
|
|
9895
|
-
s1 = peg$
|
|
9948
|
+
s1 = peg$c107(s3);
|
|
9896
9949
|
s0 = s1;
|
|
9897
9950
|
} else {
|
|
9898
9951
|
peg$currPos = s0;
|
|
@@ -9915,13 +9968,79 @@ function peg$parse(input, options) {
|
|
|
9915
9968
|
s0 = peg$FAILED;
|
|
9916
9969
|
}
|
|
9917
9970
|
if (s0 === peg$FAILED) {
|
|
9918
|
-
s0 = peg$
|
|
9971
|
+
s0 = peg$parseslowQuotedStringLiteral();
|
|
9919
9972
|
if (s0 === peg$FAILED) {
|
|
9920
|
-
s0 = peg$
|
|
9973
|
+
s0 = peg$parseslowNumericLiteral();
|
|
9921
9974
|
if (s0 === peg$FAILED) {
|
|
9922
|
-
s0 = peg$
|
|
9975
|
+
s0 = peg$parseslowBooleanLiteral();
|
|
9976
|
+
if (s0 === peg$FAILED) {
|
|
9977
|
+
s0 = peg$parseslowPropertyAccess();
|
|
9978
|
+
}
|
|
9979
|
+
}
|
|
9980
|
+
}
|
|
9981
|
+
}
|
|
9982
|
+
return s0;
|
|
9983
|
+
}
|
|
9984
|
+
function peg$parseslowQuotedStringLiteral() {
|
|
9985
|
+
var s0, s1, s2, s3;
|
|
9986
|
+
s0 = peg$currPos;
|
|
9987
|
+
if (input.charCodeAt(peg$currPos) === 39) {
|
|
9988
|
+
s1 = peg$c20;
|
|
9989
|
+
peg$currPos++;
|
|
9990
|
+
} else {
|
|
9991
|
+
s1 = peg$FAILED;
|
|
9992
|
+
if (peg$silentFails === 0) {
|
|
9993
|
+
peg$fail(peg$c21);
|
|
9994
|
+
}
|
|
9995
|
+
}
|
|
9996
|
+
if (s1 !== peg$FAILED) {
|
|
9997
|
+
s2 = [];
|
|
9998
|
+
if (peg$c22.test(input.charAt(peg$currPos))) {
|
|
9999
|
+
s3 = input.charAt(peg$currPos);
|
|
10000
|
+
peg$currPos++;
|
|
10001
|
+
} else {
|
|
10002
|
+
s3 = peg$FAILED;
|
|
10003
|
+
if (peg$silentFails === 0) {
|
|
10004
|
+
peg$fail(peg$c23);
|
|
10005
|
+
}
|
|
10006
|
+
}
|
|
10007
|
+
while (s3 !== peg$FAILED) {
|
|
10008
|
+
s2.push(s3);
|
|
10009
|
+
if (peg$c22.test(input.charAt(peg$currPos))) {
|
|
10010
|
+
s3 = input.charAt(peg$currPos);
|
|
10011
|
+
peg$currPos++;
|
|
10012
|
+
} else {
|
|
10013
|
+
s3 = peg$FAILED;
|
|
10014
|
+
if (peg$silentFails === 0) {
|
|
10015
|
+
peg$fail(peg$c23);
|
|
10016
|
+
}
|
|
10017
|
+
}
|
|
10018
|
+
}
|
|
10019
|
+
if (s2 !== peg$FAILED) {
|
|
10020
|
+
if (input.charCodeAt(peg$currPos) === 39) {
|
|
10021
|
+
s3 = peg$c20;
|
|
10022
|
+
peg$currPos++;
|
|
10023
|
+
} else {
|
|
10024
|
+
s3 = peg$FAILED;
|
|
10025
|
+
if (peg$silentFails === 0) {
|
|
10026
|
+
peg$fail(peg$c21);
|
|
10027
|
+
}
|
|
10028
|
+
}
|
|
10029
|
+
if (s3 !== peg$FAILED) {
|
|
10030
|
+
peg$savedPos = s0;
|
|
10031
|
+
s1 = peg$c108(s2);
|
|
10032
|
+
s0 = s1;
|
|
10033
|
+
} else {
|
|
10034
|
+
peg$currPos = s0;
|
|
10035
|
+
s0 = peg$FAILED;
|
|
9923
10036
|
}
|
|
10037
|
+
} else {
|
|
10038
|
+
peg$currPos = s0;
|
|
10039
|
+
s0 = peg$FAILED;
|
|
9924
10040
|
}
|
|
10041
|
+
} else {
|
|
10042
|
+
peg$currPos = s0;
|
|
10043
|
+
s0 = peg$FAILED;
|
|
9925
10044
|
}
|
|
9926
10045
|
return s0;
|
|
9927
10046
|
}
|
|
@@ -9930,12 +10049,12 @@ function peg$parse(input, options) {
|
|
|
9930
10049
|
s0 = peg$currPos;
|
|
9931
10050
|
s1 = peg$currPos;
|
|
9932
10051
|
if (input.charCodeAt(peg$currPos) === 45) {
|
|
9933
|
-
s2 = peg$
|
|
10052
|
+
s2 = peg$c109;
|
|
9934
10053
|
peg$currPos++;
|
|
9935
10054
|
} else {
|
|
9936
10055
|
s2 = peg$FAILED;
|
|
9937
10056
|
if (peg$silentFails === 0) {
|
|
9938
|
-
peg$fail(peg$
|
|
10057
|
+
peg$fail(peg$c110);
|
|
9939
10058
|
}
|
|
9940
10059
|
}
|
|
9941
10060
|
if (s2 === peg$FAILED) {
|
|
@@ -9943,25 +10062,25 @@ function peg$parse(input, options) {
|
|
|
9943
10062
|
}
|
|
9944
10063
|
if (s2 !== peg$FAILED) {
|
|
9945
10064
|
s3 = [];
|
|
9946
|
-
if (peg$
|
|
10065
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
9947
10066
|
s4 = input.charAt(peg$currPos);
|
|
9948
10067
|
peg$currPos++;
|
|
9949
10068
|
} else {
|
|
9950
10069
|
s4 = peg$FAILED;
|
|
9951
10070
|
if (peg$silentFails === 0) {
|
|
9952
|
-
peg$fail(peg$
|
|
10071
|
+
peg$fail(peg$c112);
|
|
9953
10072
|
}
|
|
9954
10073
|
}
|
|
9955
10074
|
if (s4 !== peg$FAILED) {
|
|
9956
10075
|
while (s4 !== peg$FAILED) {
|
|
9957
10076
|
s3.push(s4);
|
|
9958
|
-
if (peg$
|
|
10077
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
9959
10078
|
s4 = input.charAt(peg$currPos);
|
|
9960
10079
|
peg$currPos++;
|
|
9961
10080
|
} else {
|
|
9962
10081
|
s4 = peg$FAILED;
|
|
9963
10082
|
if (peg$silentFails === 0) {
|
|
9964
|
-
peg$fail(peg$
|
|
10083
|
+
peg$fail(peg$c112);
|
|
9965
10084
|
}
|
|
9966
10085
|
}
|
|
9967
10086
|
}
|
|
@@ -9971,35 +10090,35 @@ function peg$parse(input, options) {
|
|
|
9971
10090
|
if (s3 !== peg$FAILED) {
|
|
9972
10091
|
s4 = peg$currPos;
|
|
9973
10092
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
9974
|
-
s5 = peg$
|
|
10093
|
+
s5 = peg$c113;
|
|
9975
10094
|
peg$currPos++;
|
|
9976
10095
|
} else {
|
|
9977
10096
|
s5 = peg$FAILED;
|
|
9978
10097
|
if (peg$silentFails === 0) {
|
|
9979
|
-
peg$fail(peg$
|
|
10098
|
+
peg$fail(peg$c114);
|
|
9980
10099
|
}
|
|
9981
10100
|
}
|
|
9982
10101
|
if (s5 !== peg$FAILED) {
|
|
9983
10102
|
s6 = [];
|
|
9984
|
-
if (peg$
|
|
10103
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
9985
10104
|
s7 = input.charAt(peg$currPos);
|
|
9986
10105
|
peg$currPos++;
|
|
9987
10106
|
} else {
|
|
9988
10107
|
s7 = peg$FAILED;
|
|
9989
10108
|
if (peg$silentFails === 0) {
|
|
9990
|
-
peg$fail(peg$
|
|
10109
|
+
peg$fail(peg$c112);
|
|
9991
10110
|
}
|
|
9992
10111
|
}
|
|
9993
10112
|
if (s7 !== peg$FAILED) {
|
|
9994
10113
|
while (s7 !== peg$FAILED) {
|
|
9995
10114
|
s6.push(s7);
|
|
9996
|
-
if (peg$
|
|
10115
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
9997
10116
|
s7 = input.charAt(peg$currPos);
|
|
9998
10117
|
peg$currPos++;
|
|
9999
10118
|
} else {
|
|
10000
10119
|
s7 = peg$FAILED;
|
|
10001
10120
|
if (peg$silentFails === 0) {
|
|
10002
|
-
peg$fail(peg$
|
|
10121
|
+
peg$fail(peg$c112);
|
|
10003
10122
|
}
|
|
10004
10123
|
}
|
|
10005
10124
|
}
|
|
@@ -10037,7 +10156,7 @@ function peg$parse(input, options) {
|
|
|
10037
10156
|
}
|
|
10038
10157
|
if (s1 !== peg$FAILED) {
|
|
10039
10158
|
peg$savedPos = s0;
|
|
10040
|
-
s1 = peg$
|
|
10159
|
+
s1 = peg$c115();
|
|
10041
10160
|
}
|
|
10042
10161
|
s0 = s1;
|
|
10043
10162
|
return s0;
|
|
@@ -10045,13 +10164,13 @@ function peg$parse(input, options) {
|
|
|
10045
10164
|
function peg$parseslowBooleanLiteral() {
|
|
10046
10165
|
var s0, s1, s2, s3;
|
|
10047
10166
|
s0 = peg$currPos;
|
|
10048
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
10049
|
-
s1 = peg$
|
|
10167
|
+
if (input.substr(peg$currPos, 4) === peg$c116) {
|
|
10168
|
+
s1 = peg$c116;
|
|
10050
10169
|
peg$currPos += 4;
|
|
10051
10170
|
} else {
|
|
10052
10171
|
s1 = peg$FAILED;
|
|
10053
10172
|
if (peg$silentFails === 0) {
|
|
10054
|
-
peg$fail(peg$
|
|
10173
|
+
peg$fail(peg$c117);
|
|
10055
10174
|
}
|
|
10056
10175
|
}
|
|
10057
10176
|
if (s1 !== peg$FAILED) {
|
|
@@ -10067,7 +10186,7 @@ function peg$parse(input, options) {
|
|
|
10067
10186
|
}
|
|
10068
10187
|
if (s2 !== peg$FAILED) {
|
|
10069
10188
|
peg$savedPos = s0;
|
|
10070
|
-
s1 = peg$
|
|
10189
|
+
s1 = peg$c118();
|
|
10071
10190
|
s0 = s1;
|
|
10072
10191
|
} else {
|
|
10073
10192
|
peg$currPos = s0;
|
|
@@ -10079,13 +10198,13 @@ function peg$parse(input, options) {
|
|
|
10079
10198
|
}
|
|
10080
10199
|
if (s0 === peg$FAILED) {
|
|
10081
10200
|
s0 = peg$currPos;
|
|
10082
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
10083
|
-
s1 = peg$
|
|
10201
|
+
if (input.substr(peg$currPos, 5) === peg$c119) {
|
|
10202
|
+
s1 = peg$c119;
|
|
10084
10203
|
peg$currPos += 5;
|
|
10085
10204
|
} else {
|
|
10086
10205
|
s1 = peg$FAILED;
|
|
10087
10206
|
if (peg$silentFails === 0) {
|
|
10088
|
-
peg$fail(peg$
|
|
10207
|
+
peg$fail(peg$c120);
|
|
10089
10208
|
}
|
|
10090
10209
|
}
|
|
10091
10210
|
if (s1 !== peg$FAILED) {
|
|
@@ -10101,7 +10220,7 @@ function peg$parse(input, options) {
|
|
|
10101
10220
|
}
|
|
10102
10221
|
if (s2 !== peg$FAILED) {
|
|
10103
10222
|
peg$savedPos = s0;
|
|
10104
|
-
s1 = peg$
|
|
10223
|
+
s1 = peg$c121();
|
|
10105
10224
|
s0 = s1;
|
|
10106
10225
|
} else {
|
|
10107
10226
|
peg$currPos = s0;
|
|
@@ -10124,12 +10243,12 @@ function peg$parse(input, options) {
|
|
|
10124
10243
|
s4 = peg$parse_();
|
|
10125
10244
|
if (s4 !== peg$FAILED) {
|
|
10126
10245
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10127
|
-
s5 = peg$
|
|
10246
|
+
s5 = peg$c113;
|
|
10128
10247
|
peg$currPos++;
|
|
10129
10248
|
} else {
|
|
10130
10249
|
s5 = peg$FAILED;
|
|
10131
10250
|
if (peg$silentFails === 0) {
|
|
10132
|
-
peg$fail(peg$
|
|
10251
|
+
peg$fail(peg$c114);
|
|
10133
10252
|
}
|
|
10134
10253
|
}
|
|
10135
10254
|
if (s5 !== peg$FAILED) {
|
|
@@ -10161,12 +10280,12 @@ function peg$parse(input, options) {
|
|
|
10161
10280
|
s4 = peg$parse_();
|
|
10162
10281
|
if (s4 !== peg$FAILED) {
|
|
10163
10282
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10164
|
-
s5 = peg$
|
|
10283
|
+
s5 = peg$c113;
|
|
10165
10284
|
peg$currPos++;
|
|
10166
10285
|
} else {
|
|
10167
10286
|
s5 = peg$FAILED;
|
|
10168
10287
|
if (peg$silentFails === 0) {
|
|
10169
|
-
peg$fail(peg$
|
|
10288
|
+
peg$fail(peg$c114);
|
|
10170
10289
|
}
|
|
10171
10290
|
}
|
|
10172
10291
|
if (s5 !== peg$FAILED) {
|
|
@@ -10195,7 +10314,7 @@ function peg$parse(input, options) {
|
|
|
10195
10314
|
}
|
|
10196
10315
|
if (s2 !== peg$FAILED) {
|
|
10197
10316
|
peg$savedPos = s0;
|
|
10198
|
-
s1 = peg$
|
|
10317
|
+
s1 = peg$c122(s1, s2);
|
|
10199
10318
|
s0 = s1;
|
|
10200
10319
|
} else {
|
|
10201
10320
|
peg$currPos = s0;
|
|
@@ -10209,83 +10328,83 @@ function peg$parse(input, options) {
|
|
|
10209
10328
|
}
|
|
10210
10329
|
function peg$parseComparisonOperator() {
|
|
10211
10330
|
var s0;
|
|
10212
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
10213
|
-
s0 = peg$
|
|
10331
|
+
if (input.substr(peg$currPos, 3) === peg$c123) {
|
|
10332
|
+
s0 = peg$c123;
|
|
10214
10333
|
peg$currPos += 3;
|
|
10215
10334
|
} else {
|
|
10216
10335
|
s0 = peg$FAILED;
|
|
10217
10336
|
if (peg$silentFails === 0) {
|
|
10218
|
-
peg$fail(peg$
|
|
10337
|
+
peg$fail(peg$c124);
|
|
10219
10338
|
}
|
|
10220
10339
|
}
|
|
10221
10340
|
if (s0 === peg$FAILED) {
|
|
10222
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
10223
|
-
s0 = peg$
|
|
10341
|
+
if (input.substr(peg$currPos, 3) === peg$c125) {
|
|
10342
|
+
s0 = peg$c125;
|
|
10224
10343
|
peg$currPos += 3;
|
|
10225
10344
|
} else {
|
|
10226
10345
|
s0 = peg$FAILED;
|
|
10227
10346
|
if (peg$silentFails === 0) {
|
|
10228
|
-
peg$fail(peg$
|
|
10347
|
+
peg$fail(peg$c126);
|
|
10229
10348
|
}
|
|
10230
10349
|
}
|
|
10231
10350
|
if (s0 === peg$FAILED) {
|
|
10232
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10233
|
-
s0 = peg$
|
|
10351
|
+
if (input.substr(peg$currPos, 2) === peg$c127) {
|
|
10352
|
+
s0 = peg$c127;
|
|
10234
10353
|
peg$currPos += 2;
|
|
10235
10354
|
} else {
|
|
10236
10355
|
s0 = peg$FAILED;
|
|
10237
10356
|
if (peg$silentFails === 0) {
|
|
10238
|
-
peg$fail(peg$
|
|
10357
|
+
peg$fail(peg$c128);
|
|
10239
10358
|
}
|
|
10240
10359
|
}
|
|
10241
10360
|
if (s0 === peg$FAILED) {
|
|
10242
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10243
|
-
s0 = peg$
|
|
10361
|
+
if (input.substr(peg$currPos, 2) === peg$c129) {
|
|
10362
|
+
s0 = peg$c129;
|
|
10244
10363
|
peg$currPos += 2;
|
|
10245
10364
|
} else {
|
|
10246
10365
|
s0 = peg$FAILED;
|
|
10247
10366
|
if (peg$silentFails === 0) {
|
|
10248
|
-
peg$fail(peg$
|
|
10367
|
+
peg$fail(peg$c130);
|
|
10249
10368
|
}
|
|
10250
10369
|
}
|
|
10251
10370
|
if (s0 === peg$FAILED) {
|
|
10252
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10253
|
-
s0 = peg$
|
|
10371
|
+
if (input.substr(peg$currPos, 2) === peg$c131) {
|
|
10372
|
+
s0 = peg$c131;
|
|
10254
10373
|
peg$currPos += 2;
|
|
10255
10374
|
} else {
|
|
10256
10375
|
s0 = peg$FAILED;
|
|
10257
10376
|
if (peg$silentFails === 0) {
|
|
10258
|
-
peg$fail(peg$
|
|
10377
|
+
peg$fail(peg$c132);
|
|
10259
10378
|
}
|
|
10260
10379
|
}
|
|
10261
10380
|
if (s0 === peg$FAILED) {
|
|
10262
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
10263
|
-
s0 = peg$
|
|
10381
|
+
if (input.substr(peg$currPos, 2) === peg$c133) {
|
|
10382
|
+
s0 = peg$c133;
|
|
10264
10383
|
peg$currPos += 2;
|
|
10265
10384
|
} else {
|
|
10266
10385
|
s0 = peg$FAILED;
|
|
10267
10386
|
if (peg$silentFails === 0) {
|
|
10268
|
-
peg$fail(peg$
|
|
10387
|
+
peg$fail(peg$c134);
|
|
10269
10388
|
}
|
|
10270
10389
|
}
|
|
10271
10390
|
if (s0 === peg$FAILED) {
|
|
10272
10391
|
if (input.charCodeAt(peg$currPos) === 60) {
|
|
10273
|
-
s0 = peg$
|
|
10392
|
+
s0 = peg$c135;
|
|
10274
10393
|
peg$currPos++;
|
|
10275
10394
|
} else {
|
|
10276
10395
|
s0 = peg$FAILED;
|
|
10277
10396
|
if (peg$silentFails === 0) {
|
|
10278
|
-
peg$fail(peg$
|
|
10397
|
+
peg$fail(peg$c136);
|
|
10279
10398
|
}
|
|
10280
10399
|
}
|
|
10281
10400
|
if (s0 === peg$FAILED) {
|
|
10282
10401
|
if (input.charCodeAt(peg$currPos) === 62) {
|
|
10283
|
-
s0 = peg$
|
|
10402
|
+
s0 = peg$c137;
|
|
10284
10403
|
peg$currPos++;
|
|
10285
10404
|
} else {
|
|
10286
10405
|
s0 = peg$FAILED;
|
|
10287
10406
|
if (peg$silentFails === 0) {
|
|
10288
|
-
peg$fail(peg$
|
|
10407
|
+
peg$fail(peg$c138);
|
|
10289
10408
|
}
|
|
10290
10409
|
}
|
|
10291
10410
|
}
|
|
@@ -10383,7 +10502,7 @@ function peg$parse(input, options) {
|
|
|
10383
10502
|
}
|
|
10384
10503
|
if (s2 !== peg$FAILED) {
|
|
10385
10504
|
peg$savedPos = s0;
|
|
10386
|
-
s1 = peg$
|
|
10505
|
+
s1 = peg$c139(s1, s2);
|
|
10387
10506
|
s0 = s1;
|
|
10388
10507
|
} else {
|
|
10389
10508
|
peg$currPos = s0;
|
|
@@ -10476,7 +10595,7 @@ function peg$parse(input, options) {
|
|
|
10476
10595
|
}
|
|
10477
10596
|
if (s2 !== peg$FAILED) {
|
|
10478
10597
|
peg$savedPos = s0;
|
|
10479
|
-
s1 = peg$
|
|
10598
|
+
s1 = peg$c140(s1, s2);
|
|
10480
10599
|
s0 = s1;
|
|
10481
10600
|
} else {
|
|
10482
10601
|
peg$currPos = s0;
|
|
@@ -10518,7 +10637,7 @@ function peg$parse(input, options) {
|
|
|
10518
10637
|
}
|
|
10519
10638
|
if (s5 !== peg$FAILED) {
|
|
10520
10639
|
peg$savedPos = s0;
|
|
10521
|
-
s1 = peg$
|
|
10640
|
+
s1 = peg$c107(s3);
|
|
10522
10641
|
s0 = s1;
|
|
10523
10642
|
} else {
|
|
10524
10643
|
peg$currPos = s0;
|
|
@@ -10541,13 +10660,16 @@ function peg$parse(input, options) {
|
|
|
10541
10660
|
s0 = peg$FAILED;
|
|
10542
10661
|
}
|
|
10543
10662
|
if (s0 === peg$FAILED) {
|
|
10544
|
-
s0 = peg$
|
|
10663
|
+
s0 = peg$parsestartsWithCondition();
|
|
10545
10664
|
if (s0 === peg$FAILED) {
|
|
10546
|
-
s0 = peg$
|
|
10665
|
+
s0 = peg$parseorderingCondition();
|
|
10547
10666
|
if (s0 === peg$FAILED) {
|
|
10548
|
-
s0 = peg$
|
|
10667
|
+
s0 = peg$parseequalityComparisonCondition();
|
|
10549
10668
|
if (s0 === peg$FAILED) {
|
|
10550
|
-
s0 = peg$
|
|
10669
|
+
s0 = peg$parseenumCondition();
|
|
10670
|
+
if (s0 === peg$FAILED) {
|
|
10671
|
+
s0 = peg$parsebooleanCondition();
|
|
10672
|
+
}
|
|
10551
10673
|
}
|
|
10552
10674
|
}
|
|
10553
10675
|
}
|
|
@@ -10565,7 +10687,7 @@ function peg$parse(input, options) {
|
|
|
10565
10687
|
s2 = peg$parseaccessor();
|
|
10566
10688
|
if (s2 !== peg$FAILED) {
|
|
10567
10689
|
peg$savedPos = s0;
|
|
10568
|
-
s1 = peg$
|
|
10690
|
+
s1 = peg$c141(s1, s2);
|
|
10569
10691
|
s0 = s1;
|
|
10570
10692
|
} else {
|
|
10571
10693
|
peg$currPos = s0;
|
|
@@ -10591,7 +10713,7 @@ function peg$parse(input, options) {
|
|
|
10591
10713
|
s5 = peg$parseorderingValue();
|
|
10592
10714
|
if (s5 !== peg$FAILED) {
|
|
10593
10715
|
peg$savedPos = s0;
|
|
10594
|
-
s1 = peg$
|
|
10716
|
+
s1 = peg$c142(s1, s3, s5);
|
|
10595
10717
|
s0 = s1;
|
|
10596
10718
|
} else {
|
|
10597
10719
|
peg$currPos = s0;
|
|
@@ -10623,12 +10745,135 @@ function peg$parse(input, options) {
|
|
|
10623
10745
|
s1 = peg$parseaccessor();
|
|
10624
10746
|
if (s1 !== peg$FAILED) {
|
|
10625
10747
|
peg$savedPos = s0;
|
|
10626
|
-
s1 = peg$
|
|
10748
|
+
s1 = peg$c143(s1);
|
|
10749
|
+
}
|
|
10750
|
+
s0 = s1;
|
|
10751
|
+
}
|
|
10752
|
+
return s0;
|
|
10753
|
+
}
|
|
10754
|
+
function peg$parsestartsWithCondition() {
|
|
10755
|
+
var s0, s1, s2, s3, s4, s5;
|
|
10756
|
+
s0 = peg$currPos;
|
|
10757
|
+
s1 = peg$parseaccessor();
|
|
10758
|
+
if (s1 !== peg$FAILED) {
|
|
10759
|
+
s2 = peg$parse_();
|
|
10760
|
+
if (s2 !== peg$FAILED) {
|
|
10761
|
+
if (input.substr(peg$currPos, 2) === peg$c100) {
|
|
10762
|
+
s3 = peg$c100;
|
|
10763
|
+
peg$currPos += 2;
|
|
10764
|
+
} else {
|
|
10765
|
+
s3 = peg$FAILED;
|
|
10766
|
+
if (peg$silentFails === 0) {
|
|
10767
|
+
peg$fail(peg$c101);
|
|
10768
|
+
}
|
|
10769
|
+
}
|
|
10770
|
+
if (s3 !== peg$FAILED) {
|
|
10771
|
+
s4 = peg$parse_();
|
|
10772
|
+
if (s4 !== peg$FAILED) {
|
|
10773
|
+
s5 = peg$parsestartsWithValue();
|
|
10774
|
+
if (s5 !== peg$FAILED) {
|
|
10775
|
+
peg$savedPos = s0;
|
|
10776
|
+
s1 = peg$c144(s1, s5);
|
|
10777
|
+
s0 = s1;
|
|
10778
|
+
} else {
|
|
10779
|
+
peg$currPos = s0;
|
|
10780
|
+
s0 = peg$FAILED;
|
|
10781
|
+
}
|
|
10782
|
+
} else {
|
|
10783
|
+
peg$currPos = s0;
|
|
10784
|
+
s0 = peg$FAILED;
|
|
10785
|
+
}
|
|
10786
|
+
} else {
|
|
10787
|
+
peg$currPos = s0;
|
|
10788
|
+
s0 = peg$FAILED;
|
|
10789
|
+
}
|
|
10790
|
+
} else {
|
|
10791
|
+
peg$currPos = s0;
|
|
10792
|
+
s0 = peg$FAILED;
|
|
10793
|
+
}
|
|
10794
|
+
} else {
|
|
10795
|
+
peg$currPos = s0;
|
|
10796
|
+
s0 = peg$FAILED;
|
|
10797
|
+
}
|
|
10798
|
+
return s0;
|
|
10799
|
+
}
|
|
10800
|
+
function peg$parsestartsWithValue() {
|
|
10801
|
+
var s0, s1;
|
|
10802
|
+
s0 = peg$parsequotedStringLiteral();
|
|
10803
|
+
if (s0 === peg$FAILED) {
|
|
10804
|
+
s0 = peg$currPos;
|
|
10805
|
+
s1 = peg$parseaccessor();
|
|
10806
|
+
if (s1 !== peg$FAILED) {
|
|
10807
|
+
peg$savedPos = s0;
|
|
10808
|
+
s1 = peg$c143(s1);
|
|
10627
10809
|
}
|
|
10628
10810
|
s0 = s1;
|
|
10629
10811
|
}
|
|
10630
10812
|
return s0;
|
|
10631
10813
|
}
|
|
10814
|
+
function peg$parsequotedStringLiteral() {
|
|
10815
|
+
var s0, s1, s2, s3;
|
|
10816
|
+
s0 = peg$currPos;
|
|
10817
|
+
if (input.charCodeAt(peg$currPos) === 39) {
|
|
10818
|
+
s1 = peg$c20;
|
|
10819
|
+
peg$currPos++;
|
|
10820
|
+
} else {
|
|
10821
|
+
s1 = peg$FAILED;
|
|
10822
|
+
if (peg$silentFails === 0) {
|
|
10823
|
+
peg$fail(peg$c21);
|
|
10824
|
+
}
|
|
10825
|
+
}
|
|
10826
|
+
if (s1 !== peg$FAILED) {
|
|
10827
|
+
s2 = [];
|
|
10828
|
+
if (peg$c22.test(input.charAt(peg$currPos))) {
|
|
10829
|
+
s3 = input.charAt(peg$currPos);
|
|
10830
|
+
peg$currPos++;
|
|
10831
|
+
} else {
|
|
10832
|
+
s3 = peg$FAILED;
|
|
10833
|
+
if (peg$silentFails === 0) {
|
|
10834
|
+
peg$fail(peg$c23);
|
|
10835
|
+
}
|
|
10836
|
+
}
|
|
10837
|
+
while (s3 !== peg$FAILED) {
|
|
10838
|
+
s2.push(s3);
|
|
10839
|
+
if (peg$c22.test(input.charAt(peg$currPos))) {
|
|
10840
|
+
s3 = input.charAt(peg$currPos);
|
|
10841
|
+
peg$currPos++;
|
|
10842
|
+
} else {
|
|
10843
|
+
s3 = peg$FAILED;
|
|
10844
|
+
if (peg$silentFails === 0) {
|
|
10845
|
+
peg$fail(peg$c23);
|
|
10846
|
+
}
|
|
10847
|
+
}
|
|
10848
|
+
}
|
|
10849
|
+
if (s2 !== peg$FAILED) {
|
|
10850
|
+
if (input.charCodeAt(peg$currPos) === 39) {
|
|
10851
|
+
s3 = peg$c20;
|
|
10852
|
+
peg$currPos++;
|
|
10853
|
+
} else {
|
|
10854
|
+
s3 = peg$FAILED;
|
|
10855
|
+
if (peg$silentFails === 0) {
|
|
10856
|
+
peg$fail(peg$c21);
|
|
10857
|
+
}
|
|
10858
|
+
}
|
|
10859
|
+
if (s3 !== peg$FAILED) {
|
|
10860
|
+
peg$savedPos = s0;
|
|
10861
|
+
s1 = peg$c24(s2);
|
|
10862
|
+
s0 = s1;
|
|
10863
|
+
} else {
|
|
10864
|
+
peg$currPos = s0;
|
|
10865
|
+
s0 = peg$FAILED;
|
|
10866
|
+
}
|
|
10867
|
+
} else {
|
|
10868
|
+
peg$currPos = s0;
|
|
10869
|
+
s0 = peg$FAILED;
|
|
10870
|
+
}
|
|
10871
|
+
} else {
|
|
10872
|
+
peg$currPos = s0;
|
|
10873
|
+
s0 = peg$FAILED;
|
|
10874
|
+
}
|
|
10875
|
+
return s0;
|
|
10876
|
+
}
|
|
10632
10877
|
function peg$parseequalityComparisonCondition() {
|
|
10633
10878
|
var s0, s1, s2, s3, s4, s5;
|
|
10634
10879
|
s0 = peg$currPos;
|
|
@@ -10643,7 +10888,7 @@ function peg$parse(input, options) {
|
|
|
10643
10888
|
s5 = peg$parseequalityComparisonValue();
|
|
10644
10889
|
if (s5 !== peg$FAILED) {
|
|
10645
10890
|
peg$savedPos = s0;
|
|
10646
|
-
s1 = peg$
|
|
10891
|
+
s1 = peg$c145(s1, s3, s5);
|
|
10647
10892
|
s0 = s1;
|
|
10648
10893
|
} else {
|
|
10649
10894
|
peg$currPos = s0;
|
|
@@ -10671,13 +10916,16 @@ function peg$parse(input, options) {
|
|
|
10671
10916
|
var s0, s1;
|
|
10672
10917
|
s0 = peg$parsenumericValue();
|
|
10673
10918
|
if (s0 === peg$FAILED) {
|
|
10674
|
-
s0 = peg$
|
|
10675
|
-
|
|
10676
|
-
|
|
10677
|
-
|
|
10678
|
-
s1
|
|
10919
|
+
s0 = peg$parsequotedStringLiteral();
|
|
10920
|
+
if (s0 === peg$FAILED) {
|
|
10921
|
+
s0 = peg$currPos;
|
|
10922
|
+
s1 = peg$parsedottedAccessor();
|
|
10923
|
+
if (s1 !== peg$FAILED) {
|
|
10924
|
+
peg$savedPos = s0;
|
|
10925
|
+
s1 = peg$c143(s1);
|
|
10926
|
+
}
|
|
10927
|
+
s0 = s1;
|
|
10679
10928
|
}
|
|
10680
|
-
s0 = s1;
|
|
10681
10929
|
}
|
|
10682
10930
|
return s0;
|
|
10683
10931
|
}
|
|
@@ -10691,12 +10939,12 @@ function peg$parse(input, options) {
|
|
|
10691
10939
|
s4 = peg$parse_();
|
|
10692
10940
|
if (s4 !== peg$FAILED) {
|
|
10693
10941
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10694
|
-
s5 = peg$
|
|
10942
|
+
s5 = peg$c113;
|
|
10695
10943
|
peg$currPos++;
|
|
10696
10944
|
} else {
|
|
10697
10945
|
s5 = peg$FAILED;
|
|
10698
10946
|
if (peg$silentFails === 0) {
|
|
10699
|
-
peg$fail(peg$
|
|
10947
|
+
peg$fail(peg$c114);
|
|
10700
10948
|
}
|
|
10701
10949
|
}
|
|
10702
10950
|
if (s5 !== peg$FAILED) {
|
|
@@ -10729,12 +10977,12 @@ function peg$parse(input, options) {
|
|
|
10729
10977
|
s4 = peg$parse_();
|
|
10730
10978
|
if (s4 !== peg$FAILED) {
|
|
10731
10979
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10732
|
-
s5 = peg$
|
|
10980
|
+
s5 = peg$c113;
|
|
10733
10981
|
peg$currPos++;
|
|
10734
10982
|
} else {
|
|
10735
10983
|
s5 = peg$FAILED;
|
|
10736
10984
|
if (peg$silentFails === 0) {
|
|
10737
|
-
peg$fail(peg$
|
|
10985
|
+
peg$fail(peg$c114);
|
|
10738
10986
|
}
|
|
10739
10987
|
}
|
|
10740
10988
|
if (s5 !== peg$FAILED) {
|
|
@@ -10766,7 +11014,7 @@ function peg$parse(input, options) {
|
|
|
10766
11014
|
}
|
|
10767
11015
|
if (s2 !== peg$FAILED) {
|
|
10768
11016
|
peg$savedPos = s0;
|
|
10769
|
-
s1 = peg$
|
|
11017
|
+
s1 = peg$c146(s1, s2);
|
|
10770
11018
|
s0 = s1;
|
|
10771
11019
|
} else {
|
|
10772
11020
|
peg$currPos = s0;
|
|
@@ -10782,12 +11030,12 @@ function peg$parse(input, options) {
|
|
|
10782
11030
|
var s0, s1, s2, s3, s4, s5, s6;
|
|
10783
11031
|
s0 = peg$currPos;
|
|
10784
11032
|
if (input.charCodeAt(peg$currPos) === 45) {
|
|
10785
|
-
s1 = peg$
|
|
11033
|
+
s1 = peg$c109;
|
|
10786
11034
|
peg$currPos++;
|
|
10787
11035
|
} else {
|
|
10788
11036
|
s1 = peg$FAILED;
|
|
10789
11037
|
if (peg$silentFails === 0) {
|
|
10790
|
-
peg$fail(peg$
|
|
11038
|
+
peg$fail(peg$c110);
|
|
10791
11039
|
}
|
|
10792
11040
|
}
|
|
10793
11041
|
if (s1 === peg$FAILED) {
|
|
@@ -10795,25 +11043,25 @@ function peg$parse(input, options) {
|
|
|
10795
11043
|
}
|
|
10796
11044
|
if (s1 !== peg$FAILED) {
|
|
10797
11045
|
s2 = [];
|
|
10798
|
-
if (peg$
|
|
11046
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
10799
11047
|
s3 = input.charAt(peg$currPos);
|
|
10800
11048
|
peg$currPos++;
|
|
10801
11049
|
} else {
|
|
10802
11050
|
s3 = peg$FAILED;
|
|
10803
11051
|
if (peg$silentFails === 0) {
|
|
10804
|
-
peg$fail(peg$
|
|
11052
|
+
peg$fail(peg$c112);
|
|
10805
11053
|
}
|
|
10806
11054
|
}
|
|
10807
11055
|
if (s3 !== peg$FAILED) {
|
|
10808
11056
|
while (s3 !== peg$FAILED) {
|
|
10809
11057
|
s2.push(s3);
|
|
10810
|
-
if (peg$
|
|
11058
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
10811
11059
|
s3 = input.charAt(peg$currPos);
|
|
10812
11060
|
peg$currPos++;
|
|
10813
11061
|
} else {
|
|
10814
11062
|
s3 = peg$FAILED;
|
|
10815
11063
|
if (peg$silentFails === 0) {
|
|
10816
|
-
peg$fail(peg$
|
|
11064
|
+
peg$fail(peg$c112);
|
|
10817
11065
|
}
|
|
10818
11066
|
}
|
|
10819
11067
|
}
|
|
@@ -10823,35 +11071,35 @@ function peg$parse(input, options) {
|
|
|
10823
11071
|
if (s2 !== peg$FAILED) {
|
|
10824
11072
|
s3 = peg$currPos;
|
|
10825
11073
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10826
|
-
s4 = peg$
|
|
11074
|
+
s4 = peg$c113;
|
|
10827
11075
|
peg$currPos++;
|
|
10828
11076
|
} else {
|
|
10829
11077
|
s4 = peg$FAILED;
|
|
10830
11078
|
if (peg$silentFails === 0) {
|
|
10831
|
-
peg$fail(peg$
|
|
11079
|
+
peg$fail(peg$c114);
|
|
10832
11080
|
}
|
|
10833
11081
|
}
|
|
10834
11082
|
if (s4 !== peg$FAILED) {
|
|
10835
11083
|
s5 = [];
|
|
10836
|
-
if (peg$
|
|
11084
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
10837
11085
|
s6 = input.charAt(peg$currPos);
|
|
10838
11086
|
peg$currPos++;
|
|
10839
11087
|
} else {
|
|
10840
11088
|
s6 = peg$FAILED;
|
|
10841
11089
|
if (peg$silentFails === 0) {
|
|
10842
|
-
peg$fail(peg$
|
|
11090
|
+
peg$fail(peg$c112);
|
|
10843
11091
|
}
|
|
10844
11092
|
}
|
|
10845
11093
|
if (s6 !== peg$FAILED) {
|
|
10846
11094
|
while (s6 !== peg$FAILED) {
|
|
10847
11095
|
s5.push(s6);
|
|
10848
|
-
if (peg$
|
|
11096
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
10849
11097
|
s6 = input.charAt(peg$currPos);
|
|
10850
11098
|
peg$currPos++;
|
|
10851
11099
|
} else {
|
|
10852
11100
|
s6 = peg$FAILED;
|
|
10853
11101
|
if (peg$silentFails === 0) {
|
|
10854
|
-
peg$fail(peg$
|
|
11102
|
+
peg$fail(peg$c112);
|
|
10855
11103
|
}
|
|
10856
11104
|
}
|
|
10857
11105
|
}
|
|
@@ -10904,7 +11152,7 @@ function peg$parse(input, options) {
|
|
|
10904
11152
|
s5 = peg$parseIdentifier();
|
|
10905
11153
|
if (s5 !== peg$FAILED) {
|
|
10906
11154
|
peg$savedPos = s0;
|
|
10907
|
-
s1 = peg$
|
|
11155
|
+
s1 = peg$c147(s1, s3, s5);
|
|
10908
11156
|
s0 = s1;
|
|
10909
11157
|
} else {
|
|
10910
11158
|
peg$currPos = s0;
|
|
@@ -10940,17 +11188,17 @@ function peg$parse(input, options) {
|
|
|
10940
11188
|
var s0, s1;
|
|
10941
11189
|
s0 = peg$currPos;
|
|
10942
11190
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10943
|
-
s1 = peg$
|
|
11191
|
+
s1 = peg$c113;
|
|
10944
11192
|
peg$currPos++;
|
|
10945
11193
|
} else {
|
|
10946
11194
|
s1 = peg$FAILED;
|
|
10947
11195
|
if (peg$silentFails === 0) {
|
|
10948
|
-
peg$fail(peg$
|
|
11196
|
+
peg$fail(peg$c114);
|
|
10949
11197
|
}
|
|
10950
11198
|
}
|
|
10951
11199
|
if (s1 !== peg$FAILED) {
|
|
10952
11200
|
peg$savedPos = s0;
|
|
10953
|
-
s1 = peg$
|
|
11201
|
+
s1 = peg$c148();
|
|
10954
11202
|
}
|
|
10955
11203
|
s0 = s1;
|
|
10956
11204
|
return s0;
|
|
@@ -10965,12 +11213,12 @@ function peg$parse(input, options) {
|
|
|
10965
11213
|
s4 = peg$parse_();
|
|
10966
11214
|
if (s4 !== peg$FAILED) {
|
|
10967
11215
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
10968
|
-
s5 = peg$
|
|
11216
|
+
s5 = peg$c113;
|
|
10969
11217
|
peg$currPos++;
|
|
10970
11218
|
} else {
|
|
10971
11219
|
s5 = peg$FAILED;
|
|
10972
11220
|
if (peg$silentFails === 0) {
|
|
10973
|
-
peg$fail(peg$
|
|
11221
|
+
peg$fail(peg$c114);
|
|
10974
11222
|
}
|
|
10975
11223
|
}
|
|
10976
11224
|
if (s5 !== peg$FAILED) {
|
|
@@ -11002,12 +11250,12 @@ function peg$parse(input, options) {
|
|
|
11002
11250
|
s4 = peg$parse_();
|
|
11003
11251
|
if (s4 !== peg$FAILED) {
|
|
11004
11252
|
if (input.charCodeAt(peg$currPos) === 46) {
|
|
11005
|
-
s5 = peg$
|
|
11253
|
+
s5 = peg$c113;
|
|
11006
11254
|
peg$currPos++;
|
|
11007
11255
|
} else {
|
|
11008
11256
|
s5 = peg$FAILED;
|
|
11009
11257
|
if (peg$silentFails === 0) {
|
|
11010
|
-
peg$fail(peg$
|
|
11258
|
+
peg$fail(peg$c114);
|
|
11011
11259
|
}
|
|
11012
11260
|
}
|
|
11013
11261
|
if (s5 !== peg$FAILED) {
|
|
@@ -11036,7 +11284,7 @@ function peg$parse(input, options) {
|
|
|
11036
11284
|
}
|
|
11037
11285
|
if (s2 !== peg$FAILED) {
|
|
11038
11286
|
peg$savedPos = s0;
|
|
11039
|
-
s1 = peg$
|
|
11287
|
+
s1 = peg$c149(s1, s2);
|
|
11040
11288
|
s0 = s1;
|
|
11041
11289
|
} else {
|
|
11042
11290
|
peg$currPos = s0;
|
|
@@ -11055,25 +11303,25 @@ function peg$parse(input, options) {
|
|
|
11055
11303
|
s1 = peg$parse_();
|
|
11056
11304
|
if (s1 !== peg$FAILED) {
|
|
11057
11305
|
s2 = [];
|
|
11058
|
-
if (peg$
|
|
11306
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
11059
11307
|
s3 = input.charAt(peg$currPos);
|
|
11060
11308
|
peg$currPos++;
|
|
11061
11309
|
} else {
|
|
11062
11310
|
s3 = peg$FAILED;
|
|
11063
11311
|
if (peg$silentFails === 0) {
|
|
11064
|
-
peg$fail(peg$
|
|
11312
|
+
peg$fail(peg$c112);
|
|
11065
11313
|
}
|
|
11066
11314
|
}
|
|
11067
11315
|
if (s3 !== peg$FAILED) {
|
|
11068
11316
|
while (s3 !== peg$FAILED) {
|
|
11069
11317
|
s2.push(s3);
|
|
11070
|
-
if (peg$
|
|
11318
|
+
if (peg$c111.test(input.charAt(peg$currPos))) {
|
|
11071
11319
|
s3 = input.charAt(peg$currPos);
|
|
11072
11320
|
peg$currPos++;
|
|
11073
11321
|
} else {
|
|
11074
11322
|
s3 = peg$FAILED;
|
|
11075
11323
|
if (peg$silentFails === 0) {
|
|
11076
|
-
peg$fail(peg$
|
|
11324
|
+
peg$fail(peg$c112);
|
|
11077
11325
|
}
|
|
11078
11326
|
}
|
|
11079
11327
|
}
|
|
@@ -11096,7 +11344,7 @@ function peg$parse(input, options) {
|
|
|
11096
11344
|
if (s0 === peg$FAILED) {
|
|
11097
11345
|
s1 = peg$FAILED;
|
|
11098
11346
|
if (peg$silentFails === 0) {
|
|
11099
|
-
peg$fail(peg$
|
|
11347
|
+
peg$fail(peg$c150);
|
|
11100
11348
|
}
|
|
11101
11349
|
}
|
|
11102
11350
|
return s0;
|
|
@@ -11130,7 +11378,7 @@ function peg$parse(input, options) {
|
|
|
11130
11378
|
if (s0 === peg$FAILED) {
|
|
11131
11379
|
s1 = peg$FAILED;
|
|
11132
11380
|
if (peg$silentFails === 0) {
|
|
11133
|
-
peg$fail(peg$
|
|
11381
|
+
peg$fail(peg$c151);
|
|
11134
11382
|
}
|
|
11135
11383
|
}
|
|
11136
11384
|
return s0;
|
|
@@ -11139,25 +11387,25 @@ function peg$parse(input, options) {
|
|
|
11139
11387
|
var s0, s1, s2;
|
|
11140
11388
|
s0 = peg$currPos;
|
|
11141
11389
|
s1 = [];
|
|
11142
|
-
if (peg$
|
|
11390
|
+
if (peg$c152.test(input.charAt(peg$currPos))) {
|
|
11143
11391
|
s2 = input.charAt(peg$currPos);
|
|
11144
11392
|
peg$currPos++;
|
|
11145
11393
|
} else {
|
|
11146
11394
|
s2 = peg$FAILED;
|
|
11147
11395
|
if (peg$silentFails === 0) {
|
|
11148
|
-
peg$fail(peg$
|
|
11396
|
+
peg$fail(peg$c153);
|
|
11149
11397
|
}
|
|
11150
11398
|
}
|
|
11151
11399
|
if (s2 !== peg$FAILED) {
|
|
11152
11400
|
while (s2 !== peg$FAILED) {
|
|
11153
11401
|
s1.push(s2);
|
|
11154
|
-
if (peg$
|
|
11402
|
+
if (peg$c152.test(input.charAt(peg$currPos))) {
|
|
11155
11403
|
s2 = input.charAt(peg$currPos);
|
|
11156
11404
|
peg$currPos++;
|
|
11157
11405
|
} else {
|
|
11158
11406
|
s2 = peg$FAILED;
|
|
11159
11407
|
if (peg$silentFails === 0) {
|
|
11160
|
-
peg$fail(peg$
|
|
11408
|
+
peg$fail(peg$c153);
|
|
11161
11409
|
}
|
|
11162
11410
|
}
|
|
11163
11411
|
}
|
|
@@ -11166,7 +11414,7 @@ function peg$parse(input, options) {
|
|
|
11166
11414
|
}
|
|
11167
11415
|
if (s1 !== peg$FAILED) {
|
|
11168
11416
|
peg$savedPos = s0;
|
|
11169
|
-
s1 = peg$
|
|
11417
|
+
s1 = peg$c154();
|
|
11170
11418
|
}
|
|
11171
11419
|
s0 = s1;
|
|
11172
11420
|
return s0;
|
|
@@ -11174,55 +11422,55 @@ function peg$parse(input, options) {
|
|
|
11174
11422
|
function peg$parsebang() {
|
|
11175
11423
|
var s0;
|
|
11176
11424
|
if (input.charCodeAt(peg$currPos) === 33) {
|
|
11177
|
-
s0 = peg$
|
|
11425
|
+
s0 = peg$c104;
|
|
11178
11426
|
peg$currPos++;
|
|
11179
11427
|
} else {
|
|
11180
11428
|
s0 = peg$FAILED;
|
|
11181
11429
|
if (peg$silentFails === 0) {
|
|
11182
|
-
peg$fail(peg$
|
|
11430
|
+
peg$fail(peg$c105);
|
|
11183
11431
|
}
|
|
11184
11432
|
}
|
|
11185
11433
|
return s0;
|
|
11186
11434
|
}
|
|
11187
11435
|
function peg$parseEqualityOperator() {
|
|
11188
11436
|
var s0;
|
|
11189
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
11190
|
-
s0 = peg$
|
|
11437
|
+
if (input.substr(peg$currPos, 3) === peg$c123) {
|
|
11438
|
+
s0 = peg$c123;
|
|
11191
11439
|
peg$currPos += 3;
|
|
11192
11440
|
} else {
|
|
11193
11441
|
s0 = peg$FAILED;
|
|
11194
11442
|
if (peg$silentFails === 0) {
|
|
11195
|
-
peg$fail(peg$
|
|
11443
|
+
peg$fail(peg$c124);
|
|
11196
11444
|
}
|
|
11197
11445
|
}
|
|
11198
11446
|
if (s0 === peg$FAILED) {
|
|
11199
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
11200
|
-
s0 = peg$
|
|
11447
|
+
if (input.substr(peg$currPos, 3) === peg$c125) {
|
|
11448
|
+
s0 = peg$c125;
|
|
11201
11449
|
peg$currPos += 3;
|
|
11202
11450
|
} else {
|
|
11203
11451
|
s0 = peg$FAILED;
|
|
11204
11452
|
if (peg$silentFails === 0) {
|
|
11205
|
-
peg$fail(peg$
|
|
11453
|
+
peg$fail(peg$c126);
|
|
11206
11454
|
}
|
|
11207
11455
|
}
|
|
11208
11456
|
if (s0 === peg$FAILED) {
|
|
11209
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
11210
|
-
s0 = peg$
|
|
11457
|
+
if (input.substr(peg$currPos, 2) === peg$c127) {
|
|
11458
|
+
s0 = peg$c127;
|
|
11211
11459
|
peg$currPos += 2;
|
|
11212
11460
|
} else {
|
|
11213
11461
|
s0 = peg$FAILED;
|
|
11214
11462
|
if (peg$silentFails === 0) {
|
|
11215
|
-
peg$fail(peg$
|
|
11463
|
+
peg$fail(peg$c128);
|
|
11216
11464
|
}
|
|
11217
11465
|
}
|
|
11218
11466
|
if (s0 === peg$FAILED) {
|
|
11219
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
11220
|
-
s0 = peg$
|
|
11467
|
+
if (input.substr(peg$currPos, 2) === peg$c129) {
|
|
11468
|
+
s0 = peg$c129;
|
|
11221
11469
|
peg$currPos += 2;
|
|
11222
11470
|
} else {
|
|
11223
11471
|
s0 = peg$FAILED;
|
|
11224
11472
|
if (peg$silentFails === 0) {
|
|
11225
|
-
peg$fail(peg$
|
|
11473
|
+
peg$fail(peg$c130);
|
|
11226
11474
|
}
|
|
11227
11475
|
}
|
|
11228
11476
|
}
|
|
@@ -11232,43 +11480,43 @@ function peg$parse(input, options) {
|
|
|
11232
11480
|
}
|
|
11233
11481
|
function peg$parseOrderingOperator() {
|
|
11234
11482
|
var s0;
|
|
11235
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
11236
|
-
s0 = peg$
|
|
11483
|
+
if (input.substr(peg$currPos, 2) === peg$c131) {
|
|
11484
|
+
s0 = peg$c131;
|
|
11237
11485
|
peg$currPos += 2;
|
|
11238
11486
|
} else {
|
|
11239
11487
|
s0 = peg$FAILED;
|
|
11240
11488
|
if (peg$silentFails === 0) {
|
|
11241
|
-
peg$fail(peg$
|
|
11489
|
+
peg$fail(peg$c132);
|
|
11242
11490
|
}
|
|
11243
11491
|
}
|
|
11244
11492
|
if (s0 === peg$FAILED) {
|
|
11245
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
11246
|
-
s0 = peg$
|
|
11493
|
+
if (input.substr(peg$currPos, 2) === peg$c133) {
|
|
11494
|
+
s0 = peg$c133;
|
|
11247
11495
|
peg$currPos += 2;
|
|
11248
11496
|
} else {
|
|
11249
11497
|
s0 = peg$FAILED;
|
|
11250
11498
|
if (peg$silentFails === 0) {
|
|
11251
|
-
peg$fail(peg$
|
|
11499
|
+
peg$fail(peg$c134);
|
|
11252
11500
|
}
|
|
11253
11501
|
}
|
|
11254
11502
|
if (s0 === peg$FAILED) {
|
|
11255
11503
|
if (input.charCodeAt(peg$currPos) === 60) {
|
|
11256
|
-
s0 = peg$
|
|
11504
|
+
s0 = peg$c135;
|
|
11257
11505
|
peg$currPos++;
|
|
11258
11506
|
} else {
|
|
11259
11507
|
s0 = peg$FAILED;
|
|
11260
11508
|
if (peg$silentFails === 0) {
|
|
11261
|
-
peg$fail(peg$
|
|
11509
|
+
peg$fail(peg$c136);
|
|
11262
11510
|
}
|
|
11263
11511
|
}
|
|
11264
11512
|
if (s0 === peg$FAILED) {
|
|
11265
11513
|
if (input.charCodeAt(peg$currPos) === 62) {
|
|
11266
|
-
s0 = peg$
|
|
11514
|
+
s0 = peg$c137;
|
|
11267
11515
|
peg$currPos++;
|
|
11268
11516
|
} else {
|
|
11269
11517
|
s0 = peg$FAILED;
|
|
11270
11518
|
if (peg$silentFails === 0) {
|
|
11271
|
-
peg$fail(peg$
|
|
11519
|
+
peg$fail(peg$c138);
|
|
11272
11520
|
}
|
|
11273
11521
|
}
|
|
11274
11522
|
}
|
|
@@ -11293,7 +11541,7 @@ function peg$parse(input, options) {
|
|
|
11293
11541
|
s2 = peg$parseIdentifierName();
|
|
11294
11542
|
if (s2 !== peg$FAILED) {
|
|
11295
11543
|
peg$savedPos = s0;
|
|
11296
|
-
s1 = peg$
|
|
11544
|
+
s1 = peg$c155();
|
|
11297
11545
|
s0 = s1;
|
|
11298
11546
|
} else {
|
|
11299
11547
|
peg$currPos = s0;
|
|
@@ -11319,7 +11567,7 @@ function peg$parse(input, options) {
|
|
|
11319
11567
|
}
|
|
11320
11568
|
if (s2 !== peg$FAILED) {
|
|
11321
11569
|
peg$savedPos = s0;
|
|
11322
|
-
s1 = peg$
|
|
11570
|
+
s1 = peg$c157(s1, s2);
|
|
11323
11571
|
s0 = s1;
|
|
11324
11572
|
} else {
|
|
11325
11573
|
peg$currPos = s0;
|
|
@@ -11333,7 +11581,7 @@ function peg$parse(input, options) {
|
|
|
11333
11581
|
if (s0 === peg$FAILED) {
|
|
11334
11582
|
s1 = peg$FAILED;
|
|
11335
11583
|
if (peg$silentFails === 0) {
|
|
11336
|
-
peg$fail(peg$
|
|
11584
|
+
peg$fail(peg$c156);
|
|
11337
11585
|
}
|
|
11338
11586
|
}
|
|
11339
11587
|
return s0;
|
|
@@ -11343,40 +11591,40 @@ function peg$parse(input, options) {
|
|
|
11343
11591
|
s0 = peg$parseUnicodeLetter();
|
|
11344
11592
|
if (s0 === peg$FAILED) {
|
|
11345
11593
|
if (input.charCodeAt(peg$currPos) === 36) {
|
|
11346
|
-
s0 = peg$
|
|
11594
|
+
s0 = peg$c158;
|
|
11347
11595
|
peg$currPos++;
|
|
11348
11596
|
} else {
|
|
11349
11597
|
s0 = peg$FAILED;
|
|
11350
11598
|
if (peg$silentFails === 0) {
|
|
11351
|
-
peg$fail(peg$
|
|
11599
|
+
peg$fail(peg$c159);
|
|
11352
11600
|
}
|
|
11353
11601
|
}
|
|
11354
11602
|
if (s0 === peg$FAILED) {
|
|
11355
11603
|
if (input.charCodeAt(peg$currPos) === 95) {
|
|
11356
|
-
s0 = peg$
|
|
11604
|
+
s0 = peg$c160;
|
|
11357
11605
|
peg$currPos++;
|
|
11358
11606
|
} else {
|
|
11359
11607
|
s0 = peg$FAILED;
|
|
11360
11608
|
if (peg$silentFails === 0) {
|
|
11361
|
-
peg$fail(peg$
|
|
11609
|
+
peg$fail(peg$c161);
|
|
11362
11610
|
}
|
|
11363
11611
|
}
|
|
11364
11612
|
if (s0 === peg$FAILED) {
|
|
11365
11613
|
s0 = peg$currPos;
|
|
11366
11614
|
if (input.charCodeAt(peg$currPos) === 92) {
|
|
11367
|
-
s1 = peg$
|
|
11615
|
+
s1 = peg$c162;
|
|
11368
11616
|
peg$currPos++;
|
|
11369
11617
|
} else {
|
|
11370
11618
|
s1 = peg$FAILED;
|
|
11371
11619
|
if (peg$silentFails === 0) {
|
|
11372
|
-
peg$fail(peg$
|
|
11620
|
+
peg$fail(peg$c163);
|
|
11373
11621
|
}
|
|
11374
11622
|
}
|
|
11375
11623
|
if (s1 !== peg$FAILED) {
|
|
11376
11624
|
s2 = peg$parseUnicodeEscapeSequence();
|
|
11377
11625
|
if (s2 !== peg$FAILED) {
|
|
11378
11626
|
peg$savedPos = s0;
|
|
11379
|
-
s1 = peg$
|
|
11627
|
+
s1 = peg$c164(s2);
|
|
11380
11628
|
s0 = s1;
|
|
11381
11629
|
} else {
|
|
11382
11630
|
peg$currPos = s0;
|
|
@@ -11402,22 +11650,22 @@ function peg$parse(input, options) {
|
|
|
11402
11650
|
s0 = peg$parsePc();
|
|
11403
11651
|
if (s0 === peg$FAILED) {
|
|
11404
11652
|
if (input.charCodeAt(peg$currPos) === 8204) {
|
|
11405
|
-
s0 = peg$
|
|
11653
|
+
s0 = peg$c165;
|
|
11406
11654
|
peg$currPos++;
|
|
11407
11655
|
} else {
|
|
11408
11656
|
s0 = peg$FAILED;
|
|
11409
11657
|
if (peg$silentFails === 0) {
|
|
11410
|
-
peg$fail(peg$
|
|
11658
|
+
peg$fail(peg$c166);
|
|
11411
11659
|
}
|
|
11412
11660
|
}
|
|
11413
11661
|
if (s0 === peg$FAILED) {
|
|
11414
11662
|
if (input.charCodeAt(peg$currPos) === 8205) {
|
|
11415
|
-
s0 = peg$
|
|
11663
|
+
s0 = peg$c167;
|
|
11416
11664
|
peg$currPos++;
|
|
11417
11665
|
} else {
|
|
11418
11666
|
s0 = peg$FAILED;
|
|
11419
11667
|
if (peg$silentFails === 0) {
|
|
11420
|
-
peg$fail(peg$
|
|
11668
|
+
peg$fail(peg$c168);
|
|
11421
11669
|
}
|
|
11422
11670
|
}
|
|
11423
11671
|
}
|
|
@@ -11465,12 +11713,12 @@ function peg$parse(input, options) {
|
|
|
11465
11713
|
var s0, s1, s2, s3, s4, s5, s6, s7;
|
|
11466
11714
|
s0 = peg$currPos;
|
|
11467
11715
|
if (input.charCodeAt(peg$currPos) === 117) {
|
|
11468
|
-
s1 = peg$
|
|
11716
|
+
s1 = peg$c169;
|
|
11469
11717
|
peg$currPos++;
|
|
11470
11718
|
} else {
|
|
11471
11719
|
s1 = peg$FAILED;
|
|
11472
11720
|
if (peg$silentFails === 0) {
|
|
11473
|
-
peg$fail(peg$
|
|
11721
|
+
peg$fail(peg$c170);
|
|
11474
11722
|
}
|
|
11475
11723
|
}
|
|
11476
11724
|
if (s1 !== peg$FAILED) {
|
|
@@ -11509,7 +11757,7 @@ function peg$parse(input, options) {
|
|
|
11509
11757
|
}
|
|
11510
11758
|
if (s2 !== peg$FAILED) {
|
|
11511
11759
|
peg$savedPos = s0;
|
|
11512
|
-
s1 = peg$
|
|
11760
|
+
s1 = peg$c171(s2);
|
|
11513
11761
|
s0 = s1;
|
|
11514
11762
|
} else {
|
|
11515
11763
|
peg$currPos = s0;
|
|
@@ -11638,7 +11886,7 @@ function peg$parse(input, options) {
|
|
|
11638
11886
|
s1 = peg$parseNullToken();
|
|
11639
11887
|
if (s1 !== peg$FAILED) {
|
|
11640
11888
|
peg$savedPos = s0;
|
|
11641
|
-
s1 = peg$
|
|
11889
|
+
s1 = peg$c172();
|
|
11642
11890
|
}
|
|
11643
11891
|
s0 = s1;
|
|
11644
11892
|
return s0;
|
|
@@ -11649,7 +11897,7 @@ function peg$parse(input, options) {
|
|
|
11649
11897
|
s1 = peg$parseTrueToken();
|
|
11650
11898
|
if (s1 !== peg$FAILED) {
|
|
11651
11899
|
peg$savedPos = s0;
|
|
11652
|
-
s1 = peg$
|
|
11900
|
+
s1 = peg$c173();
|
|
11653
11901
|
}
|
|
11654
11902
|
s0 = s1;
|
|
11655
11903
|
if (s0 === peg$FAILED) {
|
|
@@ -11657,7 +11905,7 @@ function peg$parse(input, options) {
|
|
|
11657
11905
|
s1 = peg$parseFalseToken();
|
|
11658
11906
|
if (s1 !== peg$FAILED) {
|
|
11659
11907
|
peg$savedPos = s0;
|
|
11660
|
-
s1 = peg$
|
|
11908
|
+
s1 = peg$c174();
|
|
11661
11909
|
}
|
|
11662
11910
|
s0 = s1;
|
|
11663
11911
|
}
|
|
@@ -11665,143 +11913,143 @@ function peg$parse(input, options) {
|
|
|
11665
11913
|
}
|
|
11666
11914
|
function peg$parseLu() {
|
|
11667
11915
|
var s0;
|
|
11668
|
-
if (peg$
|
|
11916
|
+
if (peg$c175.test(input.charAt(peg$currPos))) {
|
|
11669
11917
|
s0 = input.charAt(peg$currPos);
|
|
11670
11918
|
peg$currPos++;
|
|
11671
11919
|
} else {
|
|
11672
11920
|
s0 = peg$FAILED;
|
|
11673
11921
|
if (peg$silentFails === 0) {
|
|
11674
|
-
peg$fail(peg$
|
|
11922
|
+
peg$fail(peg$c176);
|
|
11675
11923
|
}
|
|
11676
11924
|
}
|
|
11677
11925
|
return s0;
|
|
11678
11926
|
}
|
|
11679
11927
|
function peg$parseLl() {
|
|
11680
11928
|
var s0;
|
|
11681
|
-
if (peg$
|
|
11929
|
+
if (peg$c177.test(input.charAt(peg$currPos))) {
|
|
11682
11930
|
s0 = input.charAt(peg$currPos);
|
|
11683
11931
|
peg$currPos++;
|
|
11684
11932
|
} else {
|
|
11685
11933
|
s0 = peg$FAILED;
|
|
11686
11934
|
if (peg$silentFails === 0) {
|
|
11687
|
-
peg$fail(peg$
|
|
11935
|
+
peg$fail(peg$c178);
|
|
11688
11936
|
}
|
|
11689
11937
|
}
|
|
11690
11938
|
return s0;
|
|
11691
11939
|
}
|
|
11692
11940
|
function peg$parseLt() {
|
|
11693
11941
|
var s0;
|
|
11694
|
-
if (peg$
|
|
11942
|
+
if (peg$c179.test(input.charAt(peg$currPos))) {
|
|
11695
11943
|
s0 = input.charAt(peg$currPos);
|
|
11696
11944
|
peg$currPos++;
|
|
11697
11945
|
} else {
|
|
11698
11946
|
s0 = peg$FAILED;
|
|
11699
11947
|
if (peg$silentFails === 0) {
|
|
11700
|
-
peg$fail(peg$
|
|
11948
|
+
peg$fail(peg$c180);
|
|
11701
11949
|
}
|
|
11702
11950
|
}
|
|
11703
11951
|
return s0;
|
|
11704
11952
|
}
|
|
11705
11953
|
function peg$parseLm() {
|
|
11706
11954
|
var s0;
|
|
11707
|
-
if (peg$
|
|
11955
|
+
if (peg$c181.test(input.charAt(peg$currPos))) {
|
|
11708
11956
|
s0 = input.charAt(peg$currPos);
|
|
11709
11957
|
peg$currPos++;
|
|
11710
11958
|
} else {
|
|
11711
11959
|
s0 = peg$FAILED;
|
|
11712
11960
|
if (peg$silentFails === 0) {
|
|
11713
|
-
peg$fail(peg$
|
|
11961
|
+
peg$fail(peg$c182);
|
|
11714
11962
|
}
|
|
11715
11963
|
}
|
|
11716
11964
|
return s0;
|
|
11717
11965
|
}
|
|
11718
11966
|
function peg$parseLo() {
|
|
11719
11967
|
var s0;
|
|
11720
|
-
if (peg$
|
|
11968
|
+
if (peg$c183.test(input.charAt(peg$currPos))) {
|
|
11721
11969
|
s0 = input.charAt(peg$currPos);
|
|
11722
11970
|
peg$currPos++;
|
|
11723
11971
|
} else {
|
|
11724
11972
|
s0 = peg$FAILED;
|
|
11725
11973
|
if (peg$silentFails === 0) {
|
|
11726
|
-
peg$fail(peg$
|
|
11974
|
+
peg$fail(peg$c184);
|
|
11727
11975
|
}
|
|
11728
11976
|
}
|
|
11729
11977
|
return s0;
|
|
11730
11978
|
}
|
|
11731
11979
|
function peg$parseNl() {
|
|
11732
11980
|
var s0;
|
|
11733
|
-
if (peg$
|
|
11981
|
+
if (peg$c185.test(input.charAt(peg$currPos))) {
|
|
11734
11982
|
s0 = input.charAt(peg$currPos);
|
|
11735
11983
|
peg$currPos++;
|
|
11736
11984
|
} else {
|
|
11737
11985
|
s0 = peg$FAILED;
|
|
11738
11986
|
if (peg$silentFails === 0) {
|
|
11739
|
-
peg$fail(peg$
|
|
11987
|
+
peg$fail(peg$c186);
|
|
11740
11988
|
}
|
|
11741
11989
|
}
|
|
11742
11990
|
return s0;
|
|
11743
11991
|
}
|
|
11744
11992
|
function peg$parseMn() {
|
|
11745
11993
|
var s0;
|
|
11746
|
-
if (peg$
|
|
11994
|
+
if (peg$c187.test(input.charAt(peg$currPos))) {
|
|
11747
11995
|
s0 = input.charAt(peg$currPos);
|
|
11748
11996
|
peg$currPos++;
|
|
11749
11997
|
} else {
|
|
11750
11998
|
s0 = peg$FAILED;
|
|
11751
11999
|
if (peg$silentFails === 0) {
|
|
11752
|
-
peg$fail(peg$
|
|
12000
|
+
peg$fail(peg$c188);
|
|
11753
12001
|
}
|
|
11754
12002
|
}
|
|
11755
12003
|
return s0;
|
|
11756
12004
|
}
|
|
11757
12005
|
function peg$parseMc() {
|
|
11758
12006
|
var s0;
|
|
11759
|
-
if (peg$
|
|
12007
|
+
if (peg$c189.test(input.charAt(peg$currPos))) {
|
|
11760
12008
|
s0 = input.charAt(peg$currPos);
|
|
11761
12009
|
peg$currPos++;
|
|
11762
12010
|
} else {
|
|
11763
12011
|
s0 = peg$FAILED;
|
|
11764
12012
|
if (peg$silentFails === 0) {
|
|
11765
|
-
peg$fail(peg$
|
|
12013
|
+
peg$fail(peg$c190);
|
|
11766
12014
|
}
|
|
11767
12015
|
}
|
|
11768
12016
|
return s0;
|
|
11769
12017
|
}
|
|
11770
12018
|
function peg$parseNd() {
|
|
11771
12019
|
var s0;
|
|
11772
|
-
if (peg$
|
|
12020
|
+
if (peg$c191.test(input.charAt(peg$currPos))) {
|
|
11773
12021
|
s0 = input.charAt(peg$currPos);
|
|
11774
12022
|
peg$currPos++;
|
|
11775
12023
|
} else {
|
|
11776
12024
|
s0 = peg$FAILED;
|
|
11777
12025
|
if (peg$silentFails === 0) {
|
|
11778
|
-
peg$fail(peg$
|
|
12026
|
+
peg$fail(peg$c192);
|
|
11779
12027
|
}
|
|
11780
12028
|
}
|
|
11781
12029
|
return s0;
|
|
11782
12030
|
}
|
|
11783
12031
|
function peg$parsePc() {
|
|
11784
12032
|
var s0;
|
|
11785
|
-
if (peg$
|
|
12033
|
+
if (peg$c193.test(input.charAt(peg$currPos))) {
|
|
11786
12034
|
s0 = input.charAt(peg$currPos);
|
|
11787
12035
|
peg$currPos++;
|
|
11788
12036
|
} else {
|
|
11789
12037
|
s0 = peg$FAILED;
|
|
11790
12038
|
if (peg$silentFails === 0) {
|
|
11791
|
-
peg$fail(peg$
|
|
12039
|
+
peg$fail(peg$c194);
|
|
11792
12040
|
}
|
|
11793
12041
|
}
|
|
11794
12042
|
return s0;
|
|
11795
12043
|
}
|
|
11796
12044
|
function peg$parseHexDigit() {
|
|
11797
12045
|
var s0;
|
|
11798
|
-
if (peg$
|
|
12046
|
+
if (peg$c197.test(input.charAt(peg$currPos))) {
|
|
11799
12047
|
s0 = input.charAt(peg$currPos);
|
|
11800
12048
|
peg$currPos++;
|
|
11801
12049
|
} else {
|
|
11802
12050
|
s0 = peg$FAILED;
|
|
11803
12051
|
if (peg$silentFails === 0) {
|
|
11804
|
-
peg$fail(peg$
|
|
12052
|
+
peg$fail(peg$c198);
|
|
11805
12053
|
}
|
|
11806
12054
|
}
|
|
11807
12055
|
return s0;
|
|
@@ -11809,13 +12057,13 @@ function peg$parse(input, options) {
|
|
|
11809
12057
|
function peg$parseBreakToken() {
|
|
11810
12058
|
var s0, s1, s2, s3;
|
|
11811
12059
|
s0 = peg$currPos;
|
|
11812
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11813
|
-
s1 = peg$
|
|
12060
|
+
if (input.substr(peg$currPos, 5) === peg$c199) {
|
|
12061
|
+
s1 = peg$c199;
|
|
11814
12062
|
peg$currPos += 5;
|
|
11815
12063
|
} else {
|
|
11816
12064
|
s1 = peg$FAILED;
|
|
11817
12065
|
if (peg$silentFails === 0) {
|
|
11818
|
-
peg$fail(peg$
|
|
12066
|
+
peg$fail(peg$c200);
|
|
11819
12067
|
}
|
|
11820
12068
|
}
|
|
11821
12069
|
if (s1 !== peg$FAILED) {
|
|
@@ -11845,13 +12093,13 @@ function peg$parse(input, options) {
|
|
|
11845
12093
|
function peg$parseCaseToken() {
|
|
11846
12094
|
var s0, s1, s2, s3;
|
|
11847
12095
|
s0 = peg$currPos;
|
|
11848
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
11849
|
-
s1 = peg$
|
|
12096
|
+
if (input.substr(peg$currPos, 4) === peg$c201) {
|
|
12097
|
+
s1 = peg$c201;
|
|
11850
12098
|
peg$currPos += 4;
|
|
11851
12099
|
} else {
|
|
11852
12100
|
s1 = peg$FAILED;
|
|
11853
12101
|
if (peg$silentFails === 0) {
|
|
11854
|
-
peg$fail(peg$
|
|
12102
|
+
peg$fail(peg$c202);
|
|
11855
12103
|
}
|
|
11856
12104
|
}
|
|
11857
12105
|
if (s1 !== peg$FAILED) {
|
|
@@ -11881,13 +12129,13 @@ function peg$parse(input, options) {
|
|
|
11881
12129
|
function peg$parseCatchToken() {
|
|
11882
12130
|
var s0, s1, s2, s3;
|
|
11883
12131
|
s0 = peg$currPos;
|
|
11884
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11885
|
-
s1 = peg$
|
|
12132
|
+
if (input.substr(peg$currPos, 5) === peg$c203) {
|
|
12133
|
+
s1 = peg$c203;
|
|
11886
12134
|
peg$currPos += 5;
|
|
11887
12135
|
} else {
|
|
11888
12136
|
s1 = peg$FAILED;
|
|
11889
12137
|
if (peg$silentFails === 0) {
|
|
11890
|
-
peg$fail(peg$
|
|
12138
|
+
peg$fail(peg$c204);
|
|
11891
12139
|
}
|
|
11892
12140
|
}
|
|
11893
12141
|
if (s1 !== peg$FAILED) {
|
|
@@ -11917,13 +12165,13 @@ function peg$parse(input, options) {
|
|
|
11917
12165
|
function peg$parseClassToken() {
|
|
11918
12166
|
var s0, s1, s2, s3;
|
|
11919
12167
|
s0 = peg$currPos;
|
|
11920
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11921
|
-
s1 = peg$
|
|
12168
|
+
if (input.substr(peg$currPos, 5) === peg$c205) {
|
|
12169
|
+
s1 = peg$c205;
|
|
11922
12170
|
peg$currPos += 5;
|
|
11923
12171
|
} else {
|
|
11924
12172
|
s1 = peg$FAILED;
|
|
11925
12173
|
if (peg$silentFails === 0) {
|
|
11926
|
-
peg$fail(peg$
|
|
12174
|
+
peg$fail(peg$c206);
|
|
11927
12175
|
}
|
|
11928
12176
|
}
|
|
11929
12177
|
if (s1 !== peg$FAILED) {
|
|
@@ -11953,13 +12201,13 @@ function peg$parse(input, options) {
|
|
|
11953
12201
|
function peg$parseConstToken() {
|
|
11954
12202
|
var s0, s1, s2, s3;
|
|
11955
12203
|
s0 = peg$currPos;
|
|
11956
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
11957
|
-
s1 = peg$
|
|
12204
|
+
if (input.substr(peg$currPos, 5) === peg$c207) {
|
|
12205
|
+
s1 = peg$c207;
|
|
11958
12206
|
peg$currPos += 5;
|
|
11959
12207
|
} else {
|
|
11960
12208
|
s1 = peg$FAILED;
|
|
11961
12209
|
if (peg$silentFails === 0) {
|
|
11962
|
-
peg$fail(peg$
|
|
12210
|
+
peg$fail(peg$c208);
|
|
11963
12211
|
}
|
|
11964
12212
|
}
|
|
11965
12213
|
if (s1 !== peg$FAILED) {
|
|
@@ -11989,13 +12237,13 @@ function peg$parse(input, options) {
|
|
|
11989
12237
|
function peg$parseContinueToken() {
|
|
11990
12238
|
var s0, s1, s2, s3;
|
|
11991
12239
|
s0 = peg$currPos;
|
|
11992
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
11993
|
-
s1 = peg$
|
|
12240
|
+
if (input.substr(peg$currPos, 8) === peg$c209) {
|
|
12241
|
+
s1 = peg$c209;
|
|
11994
12242
|
peg$currPos += 8;
|
|
11995
12243
|
} else {
|
|
11996
12244
|
s1 = peg$FAILED;
|
|
11997
12245
|
if (peg$silentFails === 0) {
|
|
11998
|
-
peg$fail(peg$
|
|
12246
|
+
peg$fail(peg$c210);
|
|
11999
12247
|
}
|
|
12000
12248
|
}
|
|
12001
12249
|
if (s1 !== peg$FAILED) {
|
|
@@ -12025,13 +12273,13 @@ function peg$parse(input, options) {
|
|
|
12025
12273
|
function peg$parseDebuggerToken() {
|
|
12026
12274
|
var s0, s1, s2, s3;
|
|
12027
12275
|
s0 = peg$currPos;
|
|
12028
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
12029
|
-
s1 = peg$
|
|
12276
|
+
if (input.substr(peg$currPos, 8) === peg$c211) {
|
|
12277
|
+
s1 = peg$c211;
|
|
12030
12278
|
peg$currPos += 8;
|
|
12031
12279
|
} else {
|
|
12032
12280
|
s1 = peg$FAILED;
|
|
12033
12281
|
if (peg$silentFails === 0) {
|
|
12034
|
-
peg$fail(peg$
|
|
12282
|
+
peg$fail(peg$c212);
|
|
12035
12283
|
}
|
|
12036
12284
|
}
|
|
12037
12285
|
if (s1 !== peg$FAILED) {
|
|
@@ -12061,13 +12309,13 @@ function peg$parse(input, options) {
|
|
|
12061
12309
|
function peg$parseDefaultToken() {
|
|
12062
12310
|
var s0, s1, s2, s3;
|
|
12063
12311
|
s0 = peg$currPos;
|
|
12064
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
12065
|
-
s1 = peg$
|
|
12312
|
+
if (input.substr(peg$currPos, 7) === peg$c213) {
|
|
12313
|
+
s1 = peg$c213;
|
|
12066
12314
|
peg$currPos += 7;
|
|
12067
12315
|
} else {
|
|
12068
12316
|
s1 = peg$FAILED;
|
|
12069
12317
|
if (peg$silentFails === 0) {
|
|
12070
|
-
peg$fail(peg$
|
|
12318
|
+
peg$fail(peg$c214);
|
|
12071
12319
|
}
|
|
12072
12320
|
}
|
|
12073
12321
|
if (s1 !== peg$FAILED) {
|
|
@@ -12097,13 +12345,13 @@ function peg$parse(input, options) {
|
|
|
12097
12345
|
function peg$parseDeleteToken() {
|
|
12098
12346
|
var s0, s1, s2, s3;
|
|
12099
12347
|
s0 = peg$currPos;
|
|
12100
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12101
|
-
s1 = peg$
|
|
12348
|
+
if (input.substr(peg$currPos, 6) === peg$c215) {
|
|
12349
|
+
s1 = peg$c215;
|
|
12102
12350
|
peg$currPos += 6;
|
|
12103
12351
|
} else {
|
|
12104
12352
|
s1 = peg$FAILED;
|
|
12105
12353
|
if (peg$silentFails === 0) {
|
|
12106
|
-
peg$fail(peg$
|
|
12354
|
+
peg$fail(peg$c216);
|
|
12107
12355
|
}
|
|
12108
12356
|
}
|
|
12109
12357
|
if (s1 !== peg$FAILED) {
|
|
@@ -12133,13 +12381,13 @@ function peg$parse(input, options) {
|
|
|
12133
12381
|
function peg$parseDoToken() {
|
|
12134
12382
|
var s0, s1, s2, s3;
|
|
12135
12383
|
s0 = peg$currPos;
|
|
12136
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
12137
|
-
s1 = peg$
|
|
12384
|
+
if (input.substr(peg$currPos, 2) === peg$c217) {
|
|
12385
|
+
s1 = peg$c217;
|
|
12138
12386
|
peg$currPos += 2;
|
|
12139
12387
|
} else {
|
|
12140
12388
|
s1 = peg$FAILED;
|
|
12141
12389
|
if (peg$silentFails === 0) {
|
|
12142
|
-
peg$fail(peg$
|
|
12390
|
+
peg$fail(peg$c218);
|
|
12143
12391
|
}
|
|
12144
12392
|
}
|
|
12145
12393
|
if (s1 !== peg$FAILED) {
|
|
@@ -12169,13 +12417,13 @@ function peg$parse(input, options) {
|
|
|
12169
12417
|
function peg$parseElseToken() {
|
|
12170
12418
|
var s0, s1, s2, s3;
|
|
12171
12419
|
s0 = peg$currPos;
|
|
12172
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
12173
|
-
s1 = peg$
|
|
12420
|
+
if (input.substr(peg$currPos, 4) === peg$c219) {
|
|
12421
|
+
s1 = peg$c219;
|
|
12174
12422
|
peg$currPos += 4;
|
|
12175
12423
|
} else {
|
|
12176
12424
|
s1 = peg$FAILED;
|
|
12177
12425
|
if (peg$silentFails === 0) {
|
|
12178
|
-
peg$fail(peg$
|
|
12426
|
+
peg$fail(peg$c220);
|
|
12179
12427
|
}
|
|
12180
12428
|
}
|
|
12181
12429
|
if (s1 !== peg$FAILED) {
|
|
@@ -12241,13 +12489,13 @@ function peg$parse(input, options) {
|
|
|
12241
12489
|
function peg$parseExportToken() {
|
|
12242
12490
|
var s0, s1, s2, s3;
|
|
12243
12491
|
s0 = peg$currPos;
|
|
12244
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12245
|
-
s1 = peg$
|
|
12492
|
+
if (input.substr(peg$currPos, 6) === peg$c221) {
|
|
12493
|
+
s1 = peg$c221;
|
|
12246
12494
|
peg$currPos += 6;
|
|
12247
12495
|
} else {
|
|
12248
12496
|
s1 = peg$FAILED;
|
|
12249
12497
|
if (peg$silentFails === 0) {
|
|
12250
|
-
peg$fail(peg$
|
|
12498
|
+
peg$fail(peg$c222);
|
|
12251
12499
|
}
|
|
12252
12500
|
}
|
|
12253
12501
|
if (s1 !== peg$FAILED) {
|
|
@@ -12277,13 +12525,13 @@ function peg$parse(input, options) {
|
|
|
12277
12525
|
function peg$parseExtendsToken() {
|
|
12278
12526
|
var s0, s1, s2, s3;
|
|
12279
12527
|
s0 = peg$currPos;
|
|
12280
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
12281
|
-
s1 = peg$
|
|
12528
|
+
if (input.substr(peg$currPos, 7) === peg$c223) {
|
|
12529
|
+
s1 = peg$c223;
|
|
12282
12530
|
peg$currPos += 7;
|
|
12283
12531
|
} else {
|
|
12284
12532
|
s1 = peg$FAILED;
|
|
12285
12533
|
if (peg$silentFails === 0) {
|
|
12286
|
-
peg$fail(peg$
|
|
12534
|
+
peg$fail(peg$c224);
|
|
12287
12535
|
}
|
|
12288
12536
|
}
|
|
12289
12537
|
if (s1 !== peg$FAILED) {
|
|
@@ -12313,13 +12561,13 @@ function peg$parse(input, options) {
|
|
|
12313
12561
|
function peg$parseFalseToken() {
|
|
12314
12562
|
var s0, s1, s2, s3;
|
|
12315
12563
|
s0 = peg$currPos;
|
|
12316
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
12317
|
-
s1 = peg$
|
|
12564
|
+
if (input.substr(peg$currPos, 5) === peg$c119) {
|
|
12565
|
+
s1 = peg$c119;
|
|
12318
12566
|
peg$currPos += 5;
|
|
12319
12567
|
} else {
|
|
12320
12568
|
s1 = peg$FAILED;
|
|
12321
12569
|
if (peg$silentFails === 0) {
|
|
12322
|
-
peg$fail(peg$
|
|
12570
|
+
peg$fail(peg$c120);
|
|
12323
12571
|
}
|
|
12324
12572
|
}
|
|
12325
12573
|
if (s1 !== peg$FAILED) {
|
|
@@ -12349,13 +12597,13 @@ function peg$parse(input, options) {
|
|
|
12349
12597
|
function peg$parseFinallyToken() {
|
|
12350
12598
|
var s0, s1, s2, s3;
|
|
12351
12599
|
s0 = peg$currPos;
|
|
12352
|
-
if (input.substr(peg$currPos, 7) === peg$
|
|
12353
|
-
s1 = peg$
|
|
12600
|
+
if (input.substr(peg$currPos, 7) === peg$c225) {
|
|
12601
|
+
s1 = peg$c225;
|
|
12354
12602
|
peg$currPos += 7;
|
|
12355
12603
|
} else {
|
|
12356
12604
|
s1 = peg$FAILED;
|
|
12357
12605
|
if (peg$silentFails === 0) {
|
|
12358
|
-
peg$fail(peg$
|
|
12606
|
+
peg$fail(peg$c226);
|
|
12359
12607
|
}
|
|
12360
12608
|
}
|
|
12361
12609
|
if (s1 !== peg$FAILED) {
|
|
@@ -12385,13 +12633,13 @@ function peg$parse(input, options) {
|
|
|
12385
12633
|
function peg$parseForToken() {
|
|
12386
12634
|
var s0, s1, s2, s3;
|
|
12387
12635
|
s0 = peg$currPos;
|
|
12388
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
12389
|
-
s1 = peg$
|
|
12636
|
+
if (input.substr(peg$currPos, 3) === peg$c227) {
|
|
12637
|
+
s1 = peg$c227;
|
|
12390
12638
|
peg$currPos += 3;
|
|
12391
12639
|
} else {
|
|
12392
12640
|
s1 = peg$FAILED;
|
|
12393
12641
|
if (peg$silentFails === 0) {
|
|
12394
|
-
peg$fail(peg$
|
|
12642
|
+
peg$fail(peg$c228);
|
|
12395
12643
|
}
|
|
12396
12644
|
}
|
|
12397
12645
|
if (s1 !== peg$FAILED) {
|
|
@@ -12421,13 +12669,13 @@ function peg$parse(input, options) {
|
|
|
12421
12669
|
function peg$parseFunctionToken() {
|
|
12422
12670
|
var s0, s1, s2, s3;
|
|
12423
12671
|
s0 = peg$currPos;
|
|
12424
|
-
if (input.substr(peg$currPos, 8) === peg$
|
|
12425
|
-
s1 = peg$
|
|
12672
|
+
if (input.substr(peg$currPos, 8) === peg$c229) {
|
|
12673
|
+
s1 = peg$c229;
|
|
12426
12674
|
peg$currPos += 8;
|
|
12427
12675
|
} else {
|
|
12428
12676
|
s1 = peg$FAILED;
|
|
12429
12677
|
if (peg$silentFails === 0) {
|
|
12430
|
-
peg$fail(peg$
|
|
12678
|
+
peg$fail(peg$c230);
|
|
12431
12679
|
}
|
|
12432
12680
|
}
|
|
12433
12681
|
if (s1 !== peg$FAILED) {
|
|
@@ -12457,13 +12705,13 @@ function peg$parse(input, options) {
|
|
|
12457
12705
|
function peg$parseIfToken() {
|
|
12458
12706
|
var s0, s1, s2, s3;
|
|
12459
12707
|
s0 = peg$currPos;
|
|
12460
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
12461
|
-
s1 = peg$
|
|
12708
|
+
if (input.substr(peg$currPos, 2) === peg$c233) {
|
|
12709
|
+
s1 = peg$c233;
|
|
12462
12710
|
peg$currPos += 2;
|
|
12463
12711
|
} else {
|
|
12464
12712
|
s1 = peg$FAILED;
|
|
12465
12713
|
if (peg$silentFails === 0) {
|
|
12466
|
-
peg$fail(peg$
|
|
12714
|
+
peg$fail(peg$c234);
|
|
12467
12715
|
}
|
|
12468
12716
|
}
|
|
12469
12717
|
if (s1 !== peg$FAILED) {
|
|
@@ -12493,13 +12741,13 @@ function peg$parse(input, options) {
|
|
|
12493
12741
|
function peg$parseImportToken() {
|
|
12494
12742
|
var s0, s1, s2, s3;
|
|
12495
12743
|
s0 = peg$currPos;
|
|
12496
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12497
|
-
s1 = peg$
|
|
12744
|
+
if (input.substr(peg$currPos, 6) === peg$c235) {
|
|
12745
|
+
s1 = peg$c235;
|
|
12498
12746
|
peg$currPos += 6;
|
|
12499
12747
|
} else {
|
|
12500
12748
|
s1 = peg$FAILED;
|
|
12501
12749
|
if (peg$silentFails === 0) {
|
|
12502
|
-
peg$fail(peg$
|
|
12750
|
+
peg$fail(peg$c236);
|
|
12503
12751
|
}
|
|
12504
12752
|
}
|
|
12505
12753
|
if (s1 !== peg$FAILED) {
|
|
@@ -12529,13 +12777,13 @@ function peg$parse(input, options) {
|
|
|
12529
12777
|
function peg$parseInstanceofToken() {
|
|
12530
12778
|
var s0, s1, s2, s3;
|
|
12531
12779
|
s0 = peg$currPos;
|
|
12532
|
-
if (input.substr(peg$currPos, 10) === peg$
|
|
12533
|
-
s1 = peg$
|
|
12780
|
+
if (input.substr(peg$currPos, 10) === peg$c237) {
|
|
12781
|
+
s1 = peg$c237;
|
|
12534
12782
|
peg$currPos += 10;
|
|
12535
12783
|
} else {
|
|
12536
12784
|
s1 = peg$FAILED;
|
|
12537
12785
|
if (peg$silentFails === 0) {
|
|
12538
|
-
peg$fail(peg$
|
|
12786
|
+
peg$fail(peg$c238);
|
|
12539
12787
|
}
|
|
12540
12788
|
}
|
|
12541
12789
|
if (s1 !== peg$FAILED) {
|
|
@@ -12565,13 +12813,13 @@ function peg$parse(input, options) {
|
|
|
12565
12813
|
function peg$parseInToken() {
|
|
12566
12814
|
var s0, s1, s2, s3;
|
|
12567
12815
|
s0 = peg$currPos;
|
|
12568
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
12569
|
-
s1 = peg$
|
|
12816
|
+
if (input.substr(peg$currPos, 2) === peg$c239) {
|
|
12817
|
+
s1 = peg$c239;
|
|
12570
12818
|
peg$currPos += 2;
|
|
12571
12819
|
} else {
|
|
12572
12820
|
s1 = peg$FAILED;
|
|
12573
12821
|
if (peg$silentFails === 0) {
|
|
12574
|
-
peg$fail(peg$
|
|
12822
|
+
peg$fail(peg$c240);
|
|
12575
12823
|
}
|
|
12576
12824
|
}
|
|
12577
12825
|
if (s1 !== peg$FAILED) {
|
|
@@ -12601,13 +12849,13 @@ function peg$parse(input, options) {
|
|
|
12601
12849
|
function peg$parseNewToken() {
|
|
12602
12850
|
var s0, s1, s2, s3;
|
|
12603
12851
|
s0 = peg$currPos;
|
|
12604
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
12605
|
-
s1 = peg$
|
|
12852
|
+
if (input.substr(peg$currPos, 3) === peg$c241) {
|
|
12853
|
+
s1 = peg$c241;
|
|
12606
12854
|
peg$currPos += 3;
|
|
12607
12855
|
} else {
|
|
12608
12856
|
s1 = peg$FAILED;
|
|
12609
12857
|
if (peg$silentFails === 0) {
|
|
12610
|
-
peg$fail(peg$
|
|
12858
|
+
peg$fail(peg$c242);
|
|
12611
12859
|
}
|
|
12612
12860
|
}
|
|
12613
12861
|
if (s1 !== peg$FAILED) {
|
|
@@ -12637,13 +12885,13 @@ function peg$parse(input, options) {
|
|
|
12637
12885
|
function peg$parseNullToken() {
|
|
12638
12886
|
var s0, s1, s2, s3;
|
|
12639
12887
|
s0 = peg$currPos;
|
|
12640
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
12641
|
-
s1 = peg$
|
|
12888
|
+
if (input.substr(peg$currPos, 4) === peg$c243) {
|
|
12889
|
+
s1 = peg$c243;
|
|
12642
12890
|
peg$currPos += 4;
|
|
12643
12891
|
} else {
|
|
12644
12892
|
s1 = peg$FAILED;
|
|
12645
12893
|
if (peg$silentFails === 0) {
|
|
12646
|
-
peg$fail(peg$
|
|
12894
|
+
peg$fail(peg$c244);
|
|
12647
12895
|
}
|
|
12648
12896
|
}
|
|
12649
12897
|
if (s1 !== peg$FAILED) {
|
|
@@ -12673,13 +12921,13 @@ function peg$parse(input, options) {
|
|
|
12673
12921
|
function peg$parseReturnToken() {
|
|
12674
12922
|
var s0, s1, s2, s3;
|
|
12675
12923
|
s0 = peg$currPos;
|
|
12676
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12677
|
-
s1 = peg$
|
|
12924
|
+
if (input.substr(peg$currPos, 6) === peg$c245) {
|
|
12925
|
+
s1 = peg$c245;
|
|
12678
12926
|
peg$currPos += 6;
|
|
12679
12927
|
} else {
|
|
12680
12928
|
s1 = peg$FAILED;
|
|
12681
12929
|
if (peg$silentFails === 0) {
|
|
12682
|
-
peg$fail(peg$
|
|
12930
|
+
peg$fail(peg$c246);
|
|
12683
12931
|
}
|
|
12684
12932
|
}
|
|
12685
12933
|
if (s1 !== peg$FAILED) {
|
|
@@ -12709,13 +12957,13 @@ function peg$parse(input, options) {
|
|
|
12709
12957
|
function peg$parseSuperToken() {
|
|
12710
12958
|
var s0, s1, s2, s3;
|
|
12711
12959
|
s0 = peg$currPos;
|
|
12712
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
12713
|
-
s1 = peg$
|
|
12960
|
+
if (input.substr(peg$currPos, 5) === peg$c249) {
|
|
12961
|
+
s1 = peg$c249;
|
|
12714
12962
|
peg$currPos += 5;
|
|
12715
12963
|
} else {
|
|
12716
12964
|
s1 = peg$FAILED;
|
|
12717
12965
|
if (peg$silentFails === 0) {
|
|
12718
|
-
peg$fail(peg$
|
|
12966
|
+
peg$fail(peg$c250);
|
|
12719
12967
|
}
|
|
12720
12968
|
}
|
|
12721
12969
|
if (s1 !== peg$FAILED) {
|
|
@@ -12745,13 +12993,13 @@ function peg$parse(input, options) {
|
|
|
12745
12993
|
function peg$parseSwitchToken() {
|
|
12746
12994
|
var s0, s1, s2, s3;
|
|
12747
12995
|
s0 = peg$currPos;
|
|
12748
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12749
|
-
s1 = peg$
|
|
12996
|
+
if (input.substr(peg$currPos, 6) === peg$c251) {
|
|
12997
|
+
s1 = peg$c251;
|
|
12750
12998
|
peg$currPos += 6;
|
|
12751
12999
|
} else {
|
|
12752
13000
|
s1 = peg$FAILED;
|
|
12753
13001
|
if (peg$silentFails === 0) {
|
|
12754
|
-
peg$fail(peg$
|
|
13002
|
+
peg$fail(peg$c252);
|
|
12755
13003
|
}
|
|
12756
13004
|
}
|
|
12757
13005
|
if (s1 !== peg$FAILED) {
|
|
@@ -12781,13 +13029,13 @@ function peg$parse(input, options) {
|
|
|
12781
13029
|
function peg$parseThisToken() {
|
|
12782
13030
|
var s0, s1, s2, s3;
|
|
12783
13031
|
s0 = peg$currPos;
|
|
12784
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
12785
|
-
s1 = peg$
|
|
13032
|
+
if (input.substr(peg$currPos, 4) === peg$c253) {
|
|
13033
|
+
s1 = peg$c253;
|
|
12786
13034
|
peg$currPos += 4;
|
|
12787
13035
|
} else {
|
|
12788
13036
|
s1 = peg$FAILED;
|
|
12789
13037
|
if (peg$silentFails === 0) {
|
|
12790
|
-
peg$fail(peg$
|
|
13038
|
+
peg$fail(peg$c254);
|
|
12791
13039
|
}
|
|
12792
13040
|
}
|
|
12793
13041
|
if (s1 !== peg$FAILED) {
|
|
@@ -12817,13 +13065,13 @@ function peg$parse(input, options) {
|
|
|
12817
13065
|
function peg$parseThrowToken() {
|
|
12818
13066
|
var s0, s1, s2, s3;
|
|
12819
13067
|
s0 = peg$currPos;
|
|
12820
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
12821
|
-
s1 = peg$
|
|
13068
|
+
if (input.substr(peg$currPos, 5) === peg$c255) {
|
|
13069
|
+
s1 = peg$c255;
|
|
12822
13070
|
peg$currPos += 5;
|
|
12823
13071
|
} else {
|
|
12824
13072
|
s1 = peg$FAILED;
|
|
12825
13073
|
if (peg$silentFails === 0) {
|
|
12826
|
-
peg$fail(peg$
|
|
13074
|
+
peg$fail(peg$c256);
|
|
12827
13075
|
}
|
|
12828
13076
|
}
|
|
12829
13077
|
if (s1 !== peg$FAILED) {
|
|
@@ -12853,13 +13101,13 @@ function peg$parse(input, options) {
|
|
|
12853
13101
|
function peg$parseTrueToken() {
|
|
12854
13102
|
var s0, s1, s2, s3;
|
|
12855
13103
|
s0 = peg$currPos;
|
|
12856
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
12857
|
-
s1 = peg$
|
|
13104
|
+
if (input.substr(peg$currPos, 4) === peg$c116) {
|
|
13105
|
+
s1 = peg$c116;
|
|
12858
13106
|
peg$currPos += 4;
|
|
12859
13107
|
} else {
|
|
12860
13108
|
s1 = peg$FAILED;
|
|
12861
13109
|
if (peg$silentFails === 0) {
|
|
12862
|
-
peg$fail(peg$
|
|
13110
|
+
peg$fail(peg$c117);
|
|
12863
13111
|
}
|
|
12864
13112
|
}
|
|
12865
13113
|
if (s1 !== peg$FAILED) {
|
|
@@ -12889,13 +13137,13 @@ function peg$parse(input, options) {
|
|
|
12889
13137
|
function peg$parseTryToken() {
|
|
12890
13138
|
var s0, s1, s2, s3;
|
|
12891
13139
|
s0 = peg$currPos;
|
|
12892
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
12893
|
-
s1 = peg$
|
|
13140
|
+
if (input.substr(peg$currPos, 3) === peg$c257) {
|
|
13141
|
+
s1 = peg$c257;
|
|
12894
13142
|
peg$currPos += 3;
|
|
12895
13143
|
} else {
|
|
12896
13144
|
s1 = peg$FAILED;
|
|
12897
13145
|
if (peg$silentFails === 0) {
|
|
12898
|
-
peg$fail(peg$
|
|
13146
|
+
peg$fail(peg$c258);
|
|
12899
13147
|
}
|
|
12900
13148
|
}
|
|
12901
13149
|
if (s1 !== peg$FAILED) {
|
|
@@ -12925,13 +13173,13 @@ function peg$parse(input, options) {
|
|
|
12925
13173
|
function peg$parseTypeofToken() {
|
|
12926
13174
|
var s0, s1, s2, s3;
|
|
12927
13175
|
s0 = peg$currPos;
|
|
12928
|
-
if (input.substr(peg$currPos, 6) === peg$
|
|
12929
|
-
s1 = peg$
|
|
13176
|
+
if (input.substr(peg$currPos, 6) === peg$c259) {
|
|
13177
|
+
s1 = peg$c259;
|
|
12930
13178
|
peg$currPos += 6;
|
|
12931
13179
|
} else {
|
|
12932
13180
|
s1 = peg$FAILED;
|
|
12933
13181
|
if (peg$silentFails === 0) {
|
|
12934
|
-
peg$fail(peg$
|
|
13182
|
+
peg$fail(peg$c260);
|
|
12935
13183
|
}
|
|
12936
13184
|
}
|
|
12937
13185
|
if (s1 !== peg$FAILED) {
|
|
@@ -12961,13 +13209,13 @@ function peg$parse(input, options) {
|
|
|
12961
13209
|
function peg$parseVarToken() {
|
|
12962
13210
|
var s0, s1, s2, s3;
|
|
12963
13211
|
s0 = peg$currPos;
|
|
12964
|
-
if (input.substr(peg$currPos, 3) === peg$
|
|
12965
|
-
s1 = peg$
|
|
13212
|
+
if (input.substr(peg$currPos, 3) === peg$c261) {
|
|
13213
|
+
s1 = peg$c261;
|
|
12966
13214
|
peg$currPos += 3;
|
|
12967
13215
|
} else {
|
|
12968
13216
|
s1 = peg$FAILED;
|
|
12969
13217
|
if (peg$silentFails === 0) {
|
|
12970
|
-
peg$fail(peg$
|
|
13218
|
+
peg$fail(peg$c262);
|
|
12971
13219
|
}
|
|
12972
13220
|
}
|
|
12973
13221
|
if (s1 !== peg$FAILED) {
|
|
@@ -12997,13 +13245,13 @@ function peg$parse(input, options) {
|
|
|
12997
13245
|
function peg$parseVoidToken() {
|
|
12998
13246
|
var s0, s1, s2, s3;
|
|
12999
13247
|
s0 = peg$currPos;
|
|
13000
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
13001
|
-
s1 = peg$
|
|
13248
|
+
if (input.substr(peg$currPos, 4) === peg$c263) {
|
|
13249
|
+
s1 = peg$c263;
|
|
13002
13250
|
peg$currPos += 4;
|
|
13003
13251
|
} else {
|
|
13004
13252
|
s1 = peg$FAILED;
|
|
13005
13253
|
if (peg$silentFails === 0) {
|
|
13006
|
-
peg$fail(peg$
|
|
13254
|
+
peg$fail(peg$c264);
|
|
13007
13255
|
}
|
|
13008
13256
|
}
|
|
13009
13257
|
if (s1 !== peg$FAILED) {
|
|
@@ -13033,13 +13281,13 @@ function peg$parse(input, options) {
|
|
|
13033
13281
|
function peg$parseWhileToken() {
|
|
13034
13282
|
var s0, s1, s2, s3;
|
|
13035
13283
|
s0 = peg$currPos;
|
|
13036
|
-
if (input.substr(peg$currPos, 5) === peg$
|
|
13037
|
-
s1 = peg$
|
|
13284
|
+
if (input.substr(peg$currPos, 5) === peg$c265) {
|
|
13285
|
+
s1 = peg$c265;
|
|
13038
13286
|
peg$currPos += 5;
|
|
13039
13287
|
} else {
|
|
13040
13288
|
s1 = peg$FAILED;
|
|
13041
13289
|
if (peg$silentFails === 0) {
|
|
13042
|
-
peg$fail(peg$
|
|
13290
|
+
peg$fail(peg$c266);
|
|
13043
13291
|
}
|
|
13044
13292
|
}
|
|
13045
13293
|
if (s1 !== peg$FAILED) {
|
|
@@ -13069,13 +13317,13 @@ function peg$parse(input, options) {
|
|
|
13069
13317
|
function peg$parseWithToken() {
|
|
13070
13318
|
var s0, s1, s2, s3;
|
|
13071
13319
|
s0 = peg$currPos;
|
|
13072
|
-
if (input.substr(peg$currPos, 4) === peg$
|
|
13073
|
-
s1 = peg$
|
|
13320
|
+
if (input.substr(peg$currPos, 4) === peg$c267) {
|
|
13321
|
+
s1 = peg$c267;
|
|
13074
13322
|
peg$currPos += 4;
|
|
13075
13323
|
} else {
|
|
13076
13324
|
s1 = peg$FAILED;
|
|
13077
13325
|
if (peg$silentFails === 0) {
|
|
13078
|
-
peg$fail(peg$
|
|
13326
|
+
peg$fail(peg$c268);
|
|
13079
13327
|
}
|
|
13080
13328
|
}
|
|
13081
13329
|
if (s1 !== peg$FAILED) {
|
|
@@ -13240,6 +13488,19 @@ function peg$parse(input, options) {
|
|
|
13240
13488
|
expr: `${leftExpr} ${jsOp} ${rightExpr}`
|
|
13241
13489
|
};
|
|
13242
13490
|
}
|
|
13491
|
+
function applyStartsWith(left, right) {
|
|
13492
|
+
if (left.type === "resolved" && right.type === "resolved") {
|
|
13493
|
+
return { type: "resolved", value: String(left.value).startsWith(String(right.value)) };
|
|
13494
|
+
}
|
|
13495
|
+
const leftCode = left.type === "resolved" ? JSON.stringify(left.value) : left.fragment.rendered;
|
|
13496
|
+
const rightCode = right.type === "resolved" ? JSON.stringify(right.value) : right.fragment.rendered;
|
|
13497
|
+
const baseFragment = left.type === "code" ? left.fragment : right.type === "code" ? right.fragment : new RenderFragment2("", none);
|
|
13498
|
+
return {
|
|
13499
|
+
type: "code",
|
|
13500
|
+
fragment: new RenderFragment2(`${leftCode}.startsWith(${rightCode})`, baseFragment.imports),
|
|
13501
|
+
expr: `${leftCode}.startsWith(${rightCode})`
|
|
13502
|
+
};
|
|
13503
|
+
}
|
|
13243
13504
|
peg$result = peg$startRuleFunction();
|
|
13244
13505
|
if (peg$result !== peg$FAILED && peg$currPos === input.length) {
|
|
13245
13506
|
return peg$result;
|
|
@@ -13289,6 +13550,10 @@ class Variables {
|
|
|
13289
13550
|
this.currentType = currentTypes instanceof JayImportedType ? currentTypes.type : currentTypes;
|
|
13290
13551
|
}
|
|
13291
13552
|
resolveAccessor(accessor) {
|
|
13553
|
+
if (accessor[0] === "jay") {
|
|
13554
|
+
const jayPath = ["__jay", ...accessor.slice(1)];
|
|
13555
|
+
return new Accessor(this.currentVar, jayPath, [], JayString);
|
|
13556
|
+
}
|
|
13292
13557
|
let curr = this.currentType;
|
|
13293
13558
|
let validations = [];
|
|
13294
13559
|
accessor.forEach((member) => {
|
|
@@ -13379,6 +13644,9 @@ function getExpressionHelp(startRule) {
|
|
|
13379
13644
|
✓ if="isVisible"
|
|
13380
13645
|
✓ if="!isHidden"
|
|
13381
13646
|
✓ if="status == active" (enum comparison)
|
|
13647
|
+
✓ if="url === currentPath" (string field comparison)
|
|
13648
|
+
✓ if="url === '/about'" (string literal comparison)
|
|
13649
|
+
✓ if="path ^= '/docs'" (starts with)
|
|
13382
13650
|
✓ if="count > 0" (numeric comparison)
|
|
13383
13651
|
✓ if="count == 5" (equality with number)
|
|
13384
13652
|
✓ if="page <= 1" (<=, >=, <, > supported)
|
|
@@ -13422,7 +13690,57 @@ function getExpressionHelp(startRule) {
|
|
|
13422
13690
|
return "";
|
|
13423
13691
|
}
|
|
13424
13692
|
}
|
|
13425
|
-
function
|
|
13693
|
+
function getFallbackForRule(startRule, expression, message) {
|
|
13694
|
+
const validations = [message];
|
|
13695
|
+
const escaped = expression.replace(/'/g, "\\'");
|
|
13696
|
+
switch (startRule) {
|
|
13697
|
+
case "conditionFunc":
|
|
13698
|
+
return new RenderFragment("vs => false", Imports.none(), validations);
|
|
13699
|
+
case "condition":
|
|
13700
|
+
return new RenderFragment("false", Imports.none(), validations);
|
|
13701
|
+
case "dynamicText":
|
|
13702
|
+
case "reactDynamicText":
|
|
13703
|
+
return new RenderFragment(
|
|
13704
|
+
`dt(vs => '[INVALID: ${escaped}]')`,
|
|
13705
|
+
Imports.for(Import.dynamicText),
|
|
13706
|
+
validations
|
|
13707
|
+
);
|
|
13708
|
+
case "dynamicAttribute":
|
|
13709
|
+
return new RenderFragment(
|
|
13710
|
+
`da(vs => '[INVALID: ${escaped}]')`,
|
|
13711
|
+
Imports.for(Import.dynamicAttribute),
|
|
13712
|
+
validations
|
|
13713
|
+
);
|
|
13714
|
+
case "dynamicProperty":
|
|
13715
|
+
case "reactDynamicProperty":
|
|
13716
|
+
return new RenderFragment(
|
|
13717
|
+
`dp(vs => undefined)`,
|
|
13718
|
+
Imports.for(Import.dynamicProperty),
|
|
13719
|
+
validations
|
|
13720
|
+
);
|
|
13721
|
+
case "booleanAttribute":
|
|
13722
|
+
return new RenderFragment(
|
|
13723
|
+
`ba(vs => false)`,
|
|
13724
|
+
Imports.for(Import.booleanAttribute),
|
|
13725
|
+
validations
|
|
13726
|
+
);
|
|
13727
|
+
case "classExpression":
|
|
13728
|
+
case "reactClassExpression":
|
|
13729
|
+
return new RenderFragment(`''`, Imports.none(), validations);
|
|
13730
|
+
case "dynamicComponentProp":
|
|
13731
|
+
return new RenderFragment("vs => undefined", Imports.none(), validations);
|
|
13732
|
+
case "styleDeclarations":
|
|
13733
|
+
return new RenderFragment("[]", Imports.none(), validations);
|
|
13734
|
+
case "accessor":
|
|
13735
|
+
return new Accessor("vs", [expression], validations, JayUnknown);
|
|
13736
|
+
case "template":
|
|
13737
|
+
case "templateParts":
|
|
13738
|
+
return new RenderFragment(`'${escaped}'`, Imports.none(), validations);
|
|
13739
|
+
default:
|
|
13740
|
+
return new RenderFragment("undefined", Imports.none(), validations);
|
|
13741
|
+
}
|
|
13742
|
+
}
|
|
13743
|
+
function doParse(expression, startRule, vars, throwOnError = false) {
|
|
13426
13744
|
try {
|
|
13427
13745
|
return expressionParser.parse(expression, {
|
|
13428
13746
|
vars,
|
|
@@ -13436,16 +13754,19 @@ function doParse(expression, startRule, vars) {
|
|
|
13436
13754
|
});
|
|
13437
13755
|
} catch (e2) {
|
|
13438
13756
|
const help = getExpressionHelp(startRule);
|
|
13439
|
-
const
|
|
13440
|
-
|
|
13441
|
-
|
|
13442
|
-
|
|
13443
|
-
|
|
13444
|
-
|
|
13757
|
+
const guideRef = "\nSee: agent-kit/designer/jay-html-template-syntax.md";
|
|
13758
|
+
const message = `Failed to parse expression [${expression}]: ${e2.message}${help}${guideRef}`;
|
|
13759
|
+
if (throwOnError) {
|
|
13760
|
+
throw new Error(message);
|
|
13761
|
+
}
|
|
13762
|
+
return getFallbackForRule(startRule, expression, message);
|
|
13445
13763
|
}
|
|
13446
13764
|
}
|
|
13447
13765
|
function parseAccessor(expression, vars) {
|
|
13448
|
-
|
|
13766
|
+
const result = doParse(expression, "accessor", vars);
|
|
13767
|
+
if (result instanceof Accessor)
|
|
13768
|
+
return result;
|
|
13769
|
+
return new Accessor(vars.currentVar, [expression], result.validations, JayUnknown);
|
|
13449
13770
|
}
|
|
13450
13771
|
function parseCondition(expression, vars) {
|
|
13451
13772
|
return doParse(expression, "conditionFunc", vars);
|
|
@@ -13514,17 +13835,17 @@ function parseReactClassExpression(expression, vars) {
|
|
|
13514
13835
|
return new RenderFragment(rendered, Imports.none(), validations, refs);
|
|
13515
13836
|
}
|
|
13516
13837
|
function parseImportNames(expression) {
|
|
13517
|
-
return doParse(expression, "importNames");
|
|
13838
|
+
return doParse(expression, "importNames", void 0, true);
|
|
13518
13839
|
}
|
|
13519
13840
|
function parseIsEnum(expression) {
|
|
13520
13841
|
try {
|
|
13521
|
-
return doParse(expression, "is_enum");
|
|
13842
|
+
return doParse(expression, "is_enum", void 0, true);
|
|
13522
13843
|
} catch (err) {
|
|
13523
13844
|
return false;
|
|
13524
13845
|
}
|
|
13525
13846
|
}
|
|
13526
13847
|
function parseEnumValues(expression) {
|
|
13527
|
-
return doParse(expression, "enum");
|
|
13848
|
+
return doParse(expression, "enum", void 0, true);
|
|
13528
13849
|
}
|
|
13529
13850
|
function parseStyleDeclarations(styleString, vars) {
|
|
13530
13851
|
return doParse(styleString, "styleDeclarations", vars);
|
|
@@ -13615,10 +13936,20 @@ function ensureSingleChildElement(node2) {
|
|
|
13615
13936
|
const elements = node2.childNodes.filter((child) => child.nodeType === NodeType.ELEMENT_NODE);
|
|
13616
13937
|
if (elements.length === 1) {
|
|
13617
13938
|
return new WithValidations(elements[0]);
|
|
13618
|
-
}
|
|
13939
|
+
}
|
|
13940
|
+
if (elements.length === 0) {
|
|
13619
13941
|
return new WithValidations(void 0, [
|
|
13620
|
-
`Jay HTML Body must have
|
|
13942
|
+
`Jay HTML Body must have at least one child element.`
|
|
13621
13943
|
]);
|
|
13944
|
+
}
|
|
13945
|
+
const wrapper = parse_2('<div style="display: contents"></div>').firstChild;
|
|
13946
|
+
const parentEl = node2;
|
|
13947
|
+
for (const child of [...parentEl.childNodes]) {
|
|
13948
|
+
child.remove();
|
|
13949
|
+
wrapper.appendChild(child);
|
|
13950
|
+
}
|
|
13951
|
+
parentEl.appendChild(wrapper);
|
|
13952
|
+
return new WithValidations(wrapper);
|
|
13622
13953
|
}
|
|
13623
13954
|
const JAY_COMPONENT_PREFIX = "jay:";
|
|
13624
13955
|
function hasJayPrefix(tagName) {
|
|
@@ -14004,12 +14335,12 @@ class RefNameGenerator {
|
|
|
14004
14335
|
}
|
|
14005
14336
|
newConstantName(refName, variables) {
|
|
14006
14337
|
let suffix = 2;
|
|
14007
|
-
let constName = camelCase(`ref ${refName}`);
|
|
14338
|
+
let constName = camelCase$1(`ref ${refName}`);
|
|
14008
14339
|
while (this.constNamesToVariables.has(constName)) {
|
|
14009
14340
|
if (this.constNamesToVariables.get(constName) === variables) {
|
|
14010
14341
|
return constName;
|
|
14011
14342
|
}
|
|
14012
|
-
constName = camelCase(`ref ${refName}${suffix++}`);
|
|
14343
|
+
constName = camelCase$1(`ref ${refName}${suffix++}`);
|
|
14013
14344
|
}
|
|
14014
14345
|
this.constNamesToVariables.set(constName, variables);
|
|
14015
14346
|
return constName;
|
|
@@ -14250,7 +14581,7 @@ function renderReferenceManager(refs, target) {
|
|
|
14250
14581
|
};
|
|
14251
14582
|
collectReservedConstNames(refs);
|
|
14252
14583
|
const getUniqueRefManagerName = (baseName) => {
|
|
14253
|
-
const baseCamelCase = camelCase(`${baseName}RefManager`);
|
|
14584
|
+
const baseCamelCase = camelCase$1(`${baseName}RefManager`);
|
|
14254
14585
|
if (!usedRefManagerNames.has(baseCamelCase)) {
|
|
14255
14586
|
usedRefManagerNames.add(baseCamelCase);
|
|
14256
14587
|
return baseCamelCase;
|
|
@@ -14630,7 +14961,7 @@ function buildContractRefMap(refsTree) {
|
|
|
14630
14961
|
ref.viewStateType,
|
|
14631
14962
|
ref.elementType
|
|
14632
14963
|
);
|
|
14633
|
-
result.set(camelCase(ref.originalName), refWithOriginalName);
|
|
14964
|
+
result.set(camelCase$1(ref.originalName), refWithOriginalName);
|
|
14634
14965
|
}
|
|
14635
14966
|
for (const child of Object.values(tree.children)) {
|
|
14636
14967
|
walk(child);
|
|
@@ -14640,15 +14971,15 @@ function buildContractRefMap(refsTree) {
|
|
|
14640
14971
|
return result;
|
|
14641
14972
|
}
|
|
14642
14973
|
function mergeContractStubRefs(templateRefs, contractRefs) {
|
|
14643
|
-
const templateRefNames = new Set(templateRefs.refs.map((r) => camelCase(r.ref)));
|
|
14974
|
+
const templateRefNames = new Set(templateRefs.refs.map((r) => camelCase$1(r.ref)));
|
|
14644
14975
|
const stubRefs = [];
|
|
14645
14976
|
for (const contractRef of contractRefs.refs) {
|
|
14646
|
-
if (!templateRefNames.has(camelCase(contractRef.ref))) {
|
|
14977
|
+
if (!templateRefNames.has(camelCase$1(contractRef.ref))) {
|
|
14647
14978
|
stubRefs.push(
|
|
14648
14979
|
mkRef(
|
|
14649
14980
|
contractRef.originalName,
|
|
14650
14981
|
contractRef.originalName,
|
|
14651
|
-
camelCase(`ref ${contractRef.originalName}`),
|
|
14982
|
+
camelCase$1(`ref ${contractRef.originalName}`),
|
|
14652
14983
|
contractRef.repeated,
|
|
14653
14984
|
true,
|
|
14654
14985
|
contractRef.viewStateType,
|
|
@@ -14684,7 +15015,7 @@ function markAllRefsAsStubs(tree) {
|
|
|
14684
15015
|
(ref) => mkRef(
|
|
14685
15016
|
ref.originalName,
|
|
14686
15017
|
ref.originalName,
|
|
14687
|
-
camelCase(`ref ${ref.originalName}`),
|
|
15018
|
+
camelCase$1(`ref ${ref.originalName}`),
|
|
14688
15019
|
ref.repeated,
|
|
14689
15020
|
true,
|
|
14690
15021
|
ref.viewStateType,
|
|
@@ -18259,7 +18590,7 @@ function parseYaml(root) {
|
|
|
18259
18590
|
let jayYamlElements = root.querySelectorAll('[type="application/jay-data"]');
|
|
18260
18591
|
if (jayYamlElements.length !== 1) {
|
|
18261
18592
|
validations.push(
|
|
18262
|
-
`jay
|
|
18593
|
+
jayYamlElements.length === 0 ? `Missing <script type="application/jay-data">. Add either inline data or a contract reference: <script type="application/jay-data" contract="./component.jay-contract"><\/script>` : `Expected exactly one <script type="application/jay-data">, found ${jayYamlElements.length}`
|
|
18263
18594
|
);
|
|
18264
18595
|
return new WithValidations(void 0, validations);
|
|
18265
18596
|
}
|
|
@@ -18337,6 +18668,12 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
|
|
|
18337
18668
|
const pluginAttr = element.getAttribute("plugin");
|
|
18338
18669
|
const contractAttr = element.getAttribute("contract");
|
|
18339
18670
|
const key = element.getAttribute("key");
|
|
18671
|
+
if (key && !/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key)) {
|
|
18672
|
+
validations.push(
|
|
18673
|
+
`Headless component key="${key}" is not a valid identifier. Use camelCase (e.g., key="${key.replace(/-([a-z])/g, (_, l) => l.toUpperCase())}").`
|
|
18674
|
+
);
|
|
18675
|
+
continue;
|
|
18676
|
+
}
|
|
18340
18677
|
if (!pluginAttr) {
|
|
18341
18678
|
validations.push("headless import must specify plugin attribute");
|
|
18342
18679
|
continue;
|
|
@@ -18529,6 +18866,7 @@ function injectHeadfullFSTemplatesRecursive(fsElements, body, sourceDir, importR
|
|
|
18529
18866
|
if (!jayTag.innerHTML.trim()) {
|
|
18530
18867
|
jayTag.set_content(jayHtmlBody.innerHTML);
|
|
18531
18868
|
jayTag.setAttribute("style", "display: contents");
|
|
18869
|
+
jayTag.setAttribute("jc", contractName);
|
|
18532
18870
|
}
|
|
18533
18871
|
}
|
|
18534
18872
|
}
|
|
@@ -18707,6 +19045,20 @@ async function parseHeadfullFSImports(elements, validations, filePath, importRes
|
|
|
18707
19045
|
continue;
|
|
18708
19046
|
}
|
|
18709
19047
|
jayTag.set_content(jayHtmlBody.innerHTML);
|
|
19048
|
+
jayTag.setAttribute("jc", contractName);
|
|
19049
|
+
}
|
|
19050
|
+
let resolvedSrcPath;
|
|
19051
|
+
try {
|
|
19052
|
+
resolvedSrcPath = importResolver.resolveLink(moduleResolveDir, src);
|
|
19053
|
+
} catch {
|
|
19054
|
+
resolvedSrcPath = path.resolve(moduleResolveDir, src);
|
|
19055
|
+
}
|
|
19056
|
+
const hasCodeFile = fs.existsSync(resolvedSrcPath + ".ts") || fs.existsSync(resolvedSrcPath + ".js") || fs.existsSync(path.join(resolvedSrcPath, "index.ts")) || fs.existsSync(path.join(resolvedSrcPath, "index.js"));
|
|
19057
|
+
if (!hasCodeFile) {
|
|
19058
|
+
for (const jayTag of jayTags) {
|
|
19059
|
+
jayTag.replaceWith(jayTag.innerHTML);
|
|
19060
|
+
}
|
|
19061
|
+
continue;
|
|
18710
19062
|
}
|
|
18711
19063
|
try {
|
|
18712
19064
|
const contractTypes = await contractToImportsViewStateAndRefs(
|
|
@@ -18769,10 +19121,13 @@ async function parseHeadfullFSImports(elements, validations, filePath, importRes
|
|
|
18769
19121
|
}))
|
|
18770
19122
|
}));
|
|
18771
19123
|
const contractLinks = [contractLink, ...enumImportLinks];
|
|
18772
|
-
let
|
|
18773
|
-
|
|
18774
|
-
importResolver.resolveLink(moduleResolveDir, src)
|
|
18775
|
-
|
|
19124
|
+
let resolvedModulePath;
|
|
19125
|
+
try {
|
|
19126
|
+
resolvedModulePath = importResolver.resolveLink(moduleResolveDir, src);
|
|
19127
|
+
} catch {
|
|
19128
|
+
resolvedModulePath = path.resolve(moduleResolveDir, src);
|
|
19129
|
+
}
|
|
19130
|
+
let relativeModule = path.relative(filePath, resolvedModulePath);
|
|
18776
19131
|
if (!relativeModule.startsWith(".")) {
|
|
18777
19132
|
relativeModule = "./" + relativeModule;
|
|
18778
19133
|
}
|
|
@@ -18930,7 +19285,7 @@ function resolveNestedCssImports(css, cssDir, visited) {
|
|
|
18930
19285
|
return `/* circular import: ${importPath} */`;
|
|
18931
19286
|
seen.add(resolved);
|
|
18932
19287
|
try {
|
|
18933
|
-
const imported = fs
|
|
19288
|
+
const imported = fs.readFileSync(resolved, "utf-8");
|
|
18934
19289
|
return `/* @import ${importPath} */
|
|
18935
19290
|
${resolveNestedCssImports(imported, path.dirname(resolved), seen)}`;
|
|
18936
19291
|
} catch {
|
|
@@ -18953,7 +19308,7 @@ async function extractCss(root, filePath) {
|
|
|
18953
19308
|
const cssFilePath = path.resolve(filePath, href);
|
|
18954
19309
|
linkedCssFiles.push(cssFilePath);
|
|
18955
19310
|
try {
|
|
18956
|
-
const cssContent = await fs.readFile(cssFilePath, "utf-8");
|
|
19311
|
+
const cssContent = await fs$1.readFile(cssFilePath, "utf-8");
|
|
18957
19312
|
const resolvedCss = resolveNestedCssImports(
|
|
18958
19313
|
cssContent,
|
|
18959
19314
|
path.dirname(cssFilePath)
|
|
@@ -18968,7 +19323,7 @@ ${resolvedCss}`);
|
|
|
18968
19323
|
}
|
|
18969
19324
|
}
|
|
18970
19325
|
}
|
|
18971
|
-
const styleTags = root.querySelectorAll("head style
|
|
19326
|
+
const styleTags = root.querySelectorAll("head style");
|
|
18972
19327
|
for (const style of styleTags) {
|
|
18973
19328
|
const cssContent = style.text.trim();
|
|
18974
19329
|
if (cssContent) {
|
|
@@ -18978,16 +19333,38 @@ ${resolvedCss}`);
|
|
|
18978
19333
|
const css = cssParts.length > 0 ? cssParts.join("\n\n") : void 0;
|
|
18979
19334
|
return new WithValidations({ css, linkedCssFiles }, validations);
|
|
18980
19335
|
}
|
|
19336
|
+
function detectCssNameCollisions(css, validations) {
|
|
19337
|
+
const keyframeNames = /* @__PURE__ */ new Set();
|
|
19338
|
+
for (const match of css.matchAll(/@keyframes\s+(\S+)/g)) {
|
|
19339
|
+
const name = match[1];
|
|
19340
|
+
if (keyframeNames.has(name)) {
|
|
19341
|
+
validations.push(
|
|
19342
|
+
`@keyframes "${name}" is defined multiple times. Animation names are global — rename to avoid collisions.`
|
|
19343
|
+
);
|
|
19344
|
+
}
|
|
19345
|
+
keyframeNames.add(name);
|
|
19346
|
+
}
|
|
19347
|
+
const fontFaceNames = /* @__PURE__ */ new Set();
|
|
19348
|
+
for (const match of css.matchAll(/@font-face\s*\{[^}]*font-family\s*:\s*['"]?([^;'"}\n]+)/g)) {
|
|
19349
|
+
const name = match[1].trim();
|
|
19350
|
+
if (fontFaceNames.has(name)) {
|
|
19351
|
+
validations.push(
|
|
19352
|
+
`@font-face "${name}" is defined multiple times. Font family names are global — rename to avoid collisions.`
|
|
19353
|
+
);
|
|
19354
|
+
}
|
|
19355
|
+
fontFaceNames.add(name);
|
|
19356
|
+
}
|
|
19357
|
+
}
|
|
18981
19358
|
function extractTrackByMaps(pageContract, headlessImports) {
|
|
18982
19359
|
const serverTrackByMap = {};
|
|
18983
19360
|
const clientTrackByMap = {};
|
|
18984
19361
|
function extractFromTags(tags, basePath = "", parentPhase) {
|
|
18985
19362
|
for (const tag of tags) {
|
|
18986
|
-
const propertyName = camelCase(tag.tag);
|
|
19363
|
+
const propertyName = camelCase$1(tag.tag);
|
|
18987
19364
|
const currentPath = basePath ? `${basePath}.${propertyName}` : propertyName;
|
|
18988
19365
|
const effectivePhase = tag.phase || parentPhase || "slow";
|
|
18989
19366
|
if (tag.repeated && tag.trackBy) {
|
|
18990
|
-
const trackByField = camelCase(tag.trackBy);
|
|
19367
|
+
const trackByField = camelCase$1(tag.trackBy);
|
|
18991
19368
|
serverTrackByMap[currentPath] = trackByField;
|
|
18992
19369
|
if (effectivePhase !== "fast+interactive") {
|
|
18993
19370
|
clientTrackByMap[currentPath] = trackByField;
|
|
@@ -19070,7 +19447,7 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
|
|
|
19070
19447
|
...headfullImports,
|
|
19071
19448
|
...allHeadlessImports.flatMap((_) => [
|
|
19072
19449
|
..._.contractLinks,
|
|
19073
|
-
...usedAsInstance.has(_.contractName) ? [_.codeLink] : []
|
|
19450
|
+
...usedAsInstance.has(_.contractName) && !_.structural ? [_.codeLink] : []
|
|
19074
19451
|
])
|
|
19075
19452
|
];
|
|
19076
19453
|
const cssResult = await extractCss(root, filePath);
|
|
@@ -19085,6 +19462,9 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
|
|
|
19085
19462
|
if (headfullFSResult.css) {
|
|
19086
19463
|
css = css ? css + "\n\n" + headfullFSResult.css : headfullFSResult.css;
|
|
19087
19464
|
}
|
|
19465
|
+
if (css) {
|
|
19466
|
+
detectCssNameCollisions(css, validations);
|
|
19467
|
+
}
|
|
19088
19468
|
let allLinkedCssFiles = cssResult.val?.linkedCssFiles || [];
|
|
19089
19469
|
if (headfullFSResult.linkedCssFiles.length > 0) {
|
|
19090
19470
|
allLinkedCssFiles = [...allLinkedCssFiles, ...headfullFSResult.linkedCssFiles];
|
|
@@ -19145,7 +19525,7 @@ async function traverseTags(tags, typeName, context) {
|
|
|
19145
19525
|
const result = subContractTypes.val;
|
|
19146
19526
|
importLinks = [...importLinks, ...result.importLinks];
|
|
19147
19527
|
childRefs[subTag.tag] = result.refs;
|
|
19148
|
-
result.type && (objectTypeMembers[camelCase(subTag.tag)] = result.type);
|
|
19528
|
+
result.type && (objectTypeMembers[camelCase$1(subTag.tag)] = result.type);
|
|
19149
19529
|
enumsToImport.push(...subContractTypes.val.enumsToImport);
|
|
19150
19530
|
}
|
|
19151
19531
|
validations = [...validations, ...subContractTypes.validations];
|
|
@@ -19162,7 +19542,7 @@ async function traverseTags(tags, typeName, context) {
|
|
|
19162
19542
|
declaringModule: context.contractFilePath
|
|
19163
19543
|
});
|
|
19164
19544
|
result.ref && refs.push(result.ref);
|
|
19165
|
-
result.type && (objectTypeMembers[camelCase(subTag.tag)] = result.type);
|
|
19545
|
+
result.type && (objectTypeMembers[camelCase$1(subTag.tag)] = result.type);
|
|
19166
19546
|
}
|
|
19167
19547
|
}
|
|
19168
19548
|
const maybeArray = isRepeated ? new JayArrayType(objectType) : objectType;
|
|
@@ -19260,8 +19640,8 @@ async function traverseTag(tag, context) {
|
|
|
19260
19640
|
const { viewStateType, isRepeated } = context;
|
|
19261
19641
|
if (tag.type.includes(ContractTagType.interactive)) {
|
|
19262
19642
|
const elementType = tag.elementType?.join(" | ") || "HTMLElement";
|
|
19263
|
-
let refName = camelCase(tag.tag);
|
|
19264
|
-
let constName = camelCase(`ref ${refName}`);
|
|
19643
|
+
let refName = camelCase$1(tag.tag);
|
|
19644
|
+
let constName = camelCase$1(`ref ${refName}`);
|
|
19265
19645
|
const ref = mkRef(
|
|
19266
19646
|
refName,
|
|
19267
19647
|
tag.tag,
|
|
@@ -19292,7 +19672,7 @@ function resolveRecursiveReferences(type2, rootType) {
|
|
|
19292
19672
|
let currentType = rootType;
|
|
19293
19673
|
for (const part of pathParts) {
|
|
19294
19674
|
if (isObjectType$1(currentType)) {
|
|
19295
|
-
const camelCasePart = camelCase(part);
|
|
19675
|
+
const camelCasePart = camelCase$1(part);
|
|
19296
19676
|
currentType = currentType.props[camelCasePart];
|
|
19297
19677
|
if (!currentType) {
|
|
19298
19678
|
break;
|
|
@@ -19425,7 +19805,7 @@ function generatePropsInterface(contractName, props) {
|
|
|
19425
19805
|
return { propsInterface: `export interface ${propsTypeName} {}`, propsEnums: "" };
|
|
19426
19806
|
}
|
|
19427
19807
|
const propLines = props.map((prop) => {
|
|
19428
|
-
const propName = camelCase
|
|
19808
|
+
const propName = camelCase(prop.name);
|
|
19429
19809
|
const optional = prop.required ? "" : "?";
|
|
19430
19810
|
let typeName;
|
|
19431
19811
|
if (isEnumType(prop.dataType)) {
|
|
@@ -19450,7 +19830,7 @@ ${propLines.join("\n")}
|
|
|
19450
19830
|
function generateParamsInterface(contractName, params) {
|
|
19451
19831
|
const paramsTypeName = `${contractName}Params`;
|
|
19452
19832
|
const paramLines = params.map((param) => {
|
|
19453
|
-
const name = camelCase
|
|
19833
|
+
const name = camelCase(param.name);
|
|
19454
19834
|
if (param.kind === "optional")
|
|
19455
19835
|
return ` ${name}?: string;`;
|
|
19456
19836
|
if (param.kind === "catch-all")
|
|
@@ -19792,13 +20172,14 @@ function parseContract(contractYaml, fileName) {
|
|
|
19792
20172
|
if (!parsedYaml.name) {
|
|
19793
20173
|
validations.push("Contract must have a name");
|
|
19794
20174
|
}
|
|
19795
|
-
if (
|
|
19796
|
-
validations.push("Contract must
|
|
20175
|
+
if (parsedYaml.tags !== void 0 && !Array.isArray(parsedYaml.tags)) {
|
|
20176
|
+
validations.push("Contract tags must be an array (use tags: [] for no tags)");
|
|
19797
20177
|
}
|
|
19798
20178
|
if (validations.length > 0) {
|
|
19799
20179
|
return new WithValidations(void 0, validations);
|
|
19800
20180
|
}
|
|
19801
|
-
const
|
|
20181
|
+
const tags = parsedYaml.tags ?? [];
|
|
20182
|
+
const tagResults = tags.map((tag) => parseTag(tag));
|
|
19802
20183
|
const tagValidations = tagResults.flatMap((tr) => tr.validations);
|
|
19803
20184
|
const parsedTags = tagResults.map((tr) => tr.val).filter((tag) => !!tag);
|
|
19804
20185
|
const tagNames = /* @__PURE__ */ new Set();
|
|
@@ -19865,7 +20246,7 @@ function buildInteractivePaths(contract) {
|
|
|
19865
20246
|
function walk(tags, parentPhase) {
|
|
19866
20247
|
for (const tag of tags) {
|
|
19867
20248
|
const phase = getEffectivePhase(tag, parentPhase);
|
|
19868
|
-
const name = camelCase(tag.tag);
|
|
20249
|
+
const name = camelCase$1(tag.tag);
|
|
19869
20250
|
if (phase === "fast+interactive") {
|
|
19870
20251
|
paths.add(name);
|
|
19871
20252
|
}
|
|
@@ -19928,6 +20309,8 @@ function mergeHydrateFragments(fragments, combinator) {
|
|
|
19928
20309
|
}
|
|
19929
20310
|
function renderHydrateNode(node2, context) {
|
|
19930
20311
|
if (node2.nodeType === NodeType.ELEMENT_NODE) {
|
|
20312
|
+
if (node2.tagName === "STYLE")
|
|
20313
|
+
return RenderFragment.empty();
|
|
19931
20314
|
return renderHydrateElement(node2, context);
|
|
19932
20315
|
}
|
|
19933
20316
|
return RenderFragment.empty();
|
|
@@ -20431,7 +20814,7 @@ const ${createComponentSymbol} = makeHeadlessInstanceComponent(
|
|
|
20431
20814
|
);
|
|
20432
20815
|
const getProps = `(${context.variables.currentVar}: ${context.variables.currentType.name}) => ${propsGetterAndRefs.rendered}`;
|
|
20433
20816
|
const refOriginalName = element.attributes.ref || context.refNameGenerator.newAutoRefNameGenerator();
|
|
20434
|
-
const refRefName = camelCase(refOriginalName);
|
|
20817
|
+
const refRefName = camelCase$1(refOriginalName);
|
|
20435
20818
|
const refConstName = context.refNameGenerator.newConstantName(refRefName, context.variables);
|
|
20436
20819
|
const isRepeated = context.dynamicRef;
|
|
20437
20820
|
const contractRefType = isRepeated ? `${pascal}RepeatedRefs` : `${pascal}Refs`;
|
|
@@ -20489,7 +20872,7 @@ ${context.indent.firstLine} ${createCall})`;
|
|
|
20489
20872
|
function renderHydrateElementContent(element, context, renderContext, coordinateOverride, forceAdopt = false) {
|
|
20490
20873
|
const { variables, indent } = context;
|
|
20491
20874
|
const refAttr = element.attributes.ref;
|
|
20492
|
-
const refName = refAttr ? camelCase(refAttr) : null;
|
|
20875
|
+
const refName = refAttr ? camelCase$1(refAttr) : null;
|
|
20493
20876
|
const attributes2 = renderDynamicAttributes(element, renderContext);
|
|
20494
20877
|
const hasDynamicAttrs = attributes2.imports.has(Import.dynamicAttribute) || attributes2.imports.has(Import.dynamicProperty) || attributes2.imports.has(Import.booleanAttribute);
|
|
20495
20878
|
const childNodes = filterContentNodes(element.childNodes, true);
|
|
@@ -20961,7 +21344,7 @@ function renderElementRef$1(element, { dynamicRef, variables, importedRefNameToR
|
|
|
20961
21344
|
);
|
|
20962
21345
|
}
|
|
20963
21346
|
let originalName = element.attributes.ref;
|
|
20964
|
-
let refName = camelCase(originalName);
|
|
21347
|
+
let refName = camelCase$1(originalName);
|
|
20965
21348
|
let constName = refNameGenerator.newConstantName(refName, variables);
|
|
20966
21349
|
let refs = mkRefsTree(
|
|
20967
21350
|
[
|
|
@@ -21046,7 +21429,7 @@ function renderChildCompRef$1(element, { dynamicRef, variables, refNameGenerator
|
|
|
21046
21429
|
);
|
|
21047
21430
|
}
|
|
21048
21431
|
let originalName = element.attributes.ref || refNameGenerator.newAutoRefNameGenerator();
|
|
21049
|
-
let refName = camelCase(originalName);
|
|
21432
|
+
let refName = camelCase$1(originalName);
|
|
21050
21433
|
let constName = refNameGenerator.newConstantName(refName, variables);
|
|
21051
21434
|
let refs = mkRefsTree(
|
|
21052
21435
|
[
|
|
@@ -21106,6 +21489,19 @@ function renderNode(node2, context) {
|
|
|
21106
21489
|
}
|
|
21107
21490
|
return renderHeadlessInstance(htmlElement, newContext, componentMatch.name);
|
|
21108
21491
|
}
|
|
21492
|
+
const keyedByName = newContext.headlessImports.find(
|
|
21493
|
+
(h) => h.key && h.key === componentMatch.name
|
|
21494
|
+
);
|
|
21495
|
+
if (keyedByName) {
|
|
21496
|
+
return new RenderFragment("", Imports.none(), [
|
|
21497
|
+
`<jay:${componentMatch.name}> cannot be used as an inline element because it was imported with key="${keyedByName.key}". Keyed headless components merge their ViewState into the page — use {${keyedByName.key}.fieldName} bindings instead. For inline usage, remove the key and use <jay:${keyedByName.contractName}>.`
|
|
21498
|
+
]);
|
|
21499
|
+
}
|
|
21500
|
+
if (componentMatch.kind === "unknown") {
|
|
21501
|
+
return new RenderFragment("", Imports.none(), [
|
|
21502
|
+
`<jay:${componentMatch.name}> does not match any imported headless contract or headful component.`
|
|
21503
|
+
]);
|
|
21504
|
+
}
|
|
21109
21505
|
return renderNestedComponent(htmlElement, newContext, componentMatch.name);
|
|
21110
21506
|
}
|
|
21111
21507
|
let contextForChildren = newContext;
|
|
@@ -21346,14 +21742,14 @@ ${inlineBody.rendered}
|
|
|
21346
21742
|
|
|
21347
21743
|
const ${componentSymbol} = makeHeadlessInstanceComponent(
|
|
21348
21744
|
${renderFnName},
|
|
21349
|
-
${pluginComponentName},
|
|
21745
|
+
${headlessImport.structural ? `{ comp: (_props, _refs) => ({ render: () => _props }) }` : pluginComponentName},
|
|
21350
21746
|
${isInsideForEach ? `(dataIds) => [...dataIds, '${coordinateSuffix}'].toString()` : `'${coordinateKey2}'`},
|
|
21351
21747
|
);`;
|
|
21352
21748
|
newContext.headlessInstanceDefs.push({
|
|
21353
21749
|
componentSymbol,
|
|
21354
21750
|
renderFnName,
|
|
21355
21751
|
renderFnCode,
|
|
21356
|
-
pluginComponentName,
|
|
21752
|
+
pluginComponentName: headlessImport.structural ? void 0 : pluginComponentName,
|
|
21357
21753
|
imports: inlineBody.imports.plus(refsManagerImport)
|
|
21358
21754
|
});
|
|
21359
21755
|
let propsGetterAndRefs = renderChildCompProps$1(
|
|
@@ -21363,7 +21759,7 @@ const ${componentSymbol} = makeHeadlessInstanceComponent(
|
|
|
21363
21759
|
);
|
|
21364
21760
|
let getProps = `(${newContext.variables.currentVar}: ${newContext.variables.currentType.name}) => ${propsGetterAndRefs.rendered}`;
|
|
21365
21761
|
const refOriginalName = htmlElement.attributes.ref || newContext.refNameGenerator.newAutoRefNameGenerator();
|
|
21366
|
-
const refRefName = camelCase(refOriginalName);
|
|
21762
|
+
const refRefName = camelCase$1(refOriginalName);
|
|
21367
21763
|
const refConstName = newContext.refNameGenerator.newConstantName(
|
|
21368
21764
|
refRefName,
|
|
21369
21765
|
newContext.variables
|
|
@@ -21404,6 +21800,13 @@ const ${componentSymbol} = makeHeadlessInstanceComponent(
|
|
|
21404
21800
|
renderedRef.refs
|
|
21405
21801
|
);
|
|
21406
21802
|
}
|
|
21803
|
+
if (node2.nodeType === NodeType.ELEMENT_NODE && node2.tagName === "STYLE") {
|
|
21804
|
+
const css = textEscape$1(node2.text);
|
|
21805
|
+
return new RenderFragment(
|
|
21806
|
+
`${indent.firstLine}e('style', {}, ['${css}'])`,
|
|
21807
|
+
Imports.for(Import.element)
|
|
21808
|
+
);
|
|
21809
|
+
}
|
|
21407
21810
|
switch (node2.nodeType) {
|
|
21408
21811
|
case NodeType.TEXT_NODE:
|
|
21409
21812
|
let text2 = node2.innerText;
|
|
@@ -21621,7 +22024,9 @@ function renderFunctionImplementation$1(types2, rootBodyElement, importStatement
|
|
|
21621
22024
|
const variables = new Variables(types2);
|
|
21622
22025
|
const { importedSymbols, importedSandboxedSymbols } = processImportedComponents(importStatements);
|
|
21623
22026
|
const importedRefNameToRef = processImportedHeadless(headlessImports);
|
|
21624
|
-
const headlessContractNames = new Set(
|
|
22027
|
+
const headlessContractNames = new Set(
|
|
22028
|
+
headlessImports.filter((h) => !h.structural).map((h) => h.contractName)
|
|
22029
|
+
);
|
|
21625
22030
|
assignCoordinates(rootBodyElement, { headlessContractNames });
|
|
21626
22031
|
const rootElement = ensureSingleChildElement(rootBodyElement);
|
|
21627
22032
|
let renderedRoot;
|
|
@@ -21909,7 +22314,7 @@ function generateElementBridgeFile(jayFile) {
|
|
|
21909
22314
|
}
|
|
21910
22315
|
function generateElementHydrateFile(jayFile, importerMode) {
|
|
21911
22316
|
const types2 = generateTypes(jayFile.types);
|
|
21912
|
-
const headlessImports = jayFile.headlessImports?.filter((h) => !h.key) ?? [];
|
|
22317
|
+
const headlessImports = jayFile.headlessImports?.filter((h) => !h.key && !h.structural) ?? [];
|
|
21913
22318
|
const headlessContractNames = new Set(headlessImports.map((h) => h.contractName));
|
|
21914
22319
|
assignCoordinates(jayFile.body, { headlessContractNames });
|
|
21915
22320
|
const {
|
|
@@ -22246,7 +22651,7 @@ function renderAttributes(element, { variables }) {
|
|
|
22246
22651
|
function renderElementRef(element, { dynamicRef, variables }) {
|
|
22247
22652
|
if (element.attributes.ref) {
|
|
22248
22653
|
let originalName = element.attributes.ref;
|
|
22249
|
-
let refName = camelCase(originalName);
|
|
22654
|
+
let refName = camelCase$1(originalName);
|
|
22250
22655
|
let refs = [
|
|
22251
22656
|
mkRef(
|
|
22252
22657
|
refName,
|
|
@@ -22299,7 +22704,7 @@ function renderChildCompProps(element, { variables }) {
|
|
|
22299
22704
|
}
|
|
22300
22705
|
function renderChildCompRef(element, { dynamicRef, variables, nextAutoRefName }, componentName) {
|
|
22301
22706
|
let originalName = element.attributes.ref || nextAutoRefName.newAutoRefNameGenerator();
|
|
22302
|
-
let refName = camelCase(originalName);
|
|
22707
|
+
let refName = camelCase$1(originalName);
|
|
22303
22708
|
let constName = nextAutoRefName.newConstantName(refName, variables);
|
|
22304
22709
|
let refs = [
|
|
22305
22710
|
mkRef(
|
|
@@ -22554,6 +22959,10 @@ function w(indent, code, imports = Imports.none()) {
|
|
|
22554
22959
|
return new RenderFragment(`${indent.firstLine}w(${code});`, imports);
|
|
22555
22960
|
}
|
|
22556
22961
|
function renderServerNode(node2, context) {
|
|
22962
|
+
if (node2.nodeType === NodeType.ELEMENT_NODE && node2.tagName === "STYLE") {
|
|
22963
|
+
const css = textEscape$1(node2.text);
|
|
22964
|
+
return w(context.indent, `'<style>${css}</style>'`);
|
|
22965
|
+
}
|
|
22557
22966
|
if (node2.nodeType === NodeType.TEXT_NODE) {
|
|
22558
22967
|
const text2 = node2.innerText;
|
|
22559
22968
|
if (text2.trim() === "")
|
|
@@ -22604,7 +23013,7 @@ function renderServerElement(element, context) {
|
|
|
22604
23013
|
${body.rendered}
|
|
22605
23014
|
${indent.firstLine}}`,
|
|
22606
23015
|
body.imports,
|
|
22607
|
-
body.validations
|
|
23016
|
+
[...renderedCondition.validations, ...body.validations]
|
|
22608
23017
|
);
|
|
22609
23018
|
}
|
|
22610
23019
|
if (isForEach(element)) {
|
|
@@ -22705,8 +23114,10 @@ function renderServerHeadlessInstance(element, context, contractName) {
|
|
|
22705
23114
|
`${guardIndent.firstLine}}`
|
|
22706
23115
|
].join("\n");
|
|
22707
23116
|
let result;
|
|
23117
|
+
let conditionValidations = [];
|
|
22708
23118
|
if (ifCondition) {
|
|
22709
23119
|
const renderedCondition = parseServerCondition(ifCondition, context.variables);
|
|
23120
|
+
conditionValidations = renderedCondition.validations;
|
|
22710
23121
|
result = [
|
|
22711
23122
|
`${indent.firstLine}if (${renderedCondition.rendered}) {`,
|
|
22712
23123
|
guardedBlock,
|
|
@@ -22715,7 +23126,10 @@ function renderServerHeadlessInstance(element, context, contractName) {
|
|
|
22715
23126
|
} else {
|
|
22716
23127
|
result = guardedBlock;
|
|
22717
23128
|
}
|
|
22718
|
-
return new RenderFragment(result, renderedChildren.imports,
|
|
23129
|
+
return new RenderFragment(result, renderedChildren.imports, [
|
|
23130
|
+
...conditionValidations,
|
|
23131
|
+
...renderedChildren.validations
|
|
23132
|
+
]);
|
|
22719
23133
|
}
|
|
22720
23134
|
function mergeServerFragments(fragments) {
|
|
22721
23135
|
return fragments.filter((f) => f.rendered.trim().length > 0).reduce((prev, curr) => RenderFragment.merge(prev, curr, "\n"), RenderFragment.empty());
|
|
@@ -22884,7 +23298,7 @@ function renderServerForEachAsString(element, context) {
|
|
|
22884
23298
|
function renderServerElementAsString(element, context, overrideCoordinate) {
|
|
22885
23299
|
const { variables } = context;
|
|
22886
23300
|
const refAttr = element.attributes.ref;
|
|
22887
|
-
const refName = refAttr ? camelCase(refAttr) : null;
|
|
23301
|
+
const refName = refAttr ? camelCase$1(refAttr) : null;
|
|
22888
23302
|
const childNodes = filterContentNodes(element.childNodes, true);
|
|
22889
23303
|
let dynamicTextFragment = null;
|
|
22890
23304
|
if (childNodes.length === 1 && childNodes[0].nodeType === NodeType.TEXT_NODE) {
|
|
@@ -23078,7 +23492,7 @@ function renderServerElementContent(element, context, options) {
|
|
|
23078
23492
|
dynamicTextFragment = null;
|
|
23079
23493
|
}
|
|
23080
23494
|
}
|
|
23081
|
-
const refName = element.attributes.ref ? camelCase(element.attributes.ref) : null;
|
|
23495
|
+
const refName = element.attributes.ref ? camelCase$1(element.attributes.ref) : null;
|
|
23082
23496
|
const needsCoordinate = options?.isRoot === true || isConditional(element) || dynamicTextFragment !== null || refName !== null || hasDynamicAttributeBindings(element, variables) || hasInteractiveChildElements(childNodes) || hasMixedContentDynamicTextInteractive(childNodes, context.interactivePaths) || context.parentHasInteractiveChildren;
|
|
23083
23497
|
const coordTemplate = needsCoordinate ? element.getAttribute(COORD_ATTR) : null;
|
|
23084
23498
|
const isVoid = voidElements.has(element.rawTagName.toLowerCase());
|
|
@@ -30002,7 +30416,7 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
30002
30416
|
return analyzeExportedTypes(fullPath, options);
|
|
30003
30417
|
},
|
|
30004
30418
|
loadContract(fullPath) {
|
|
30005
|
-
const content = fs
|
|
30419
|
+
const content = fs.readFileSync(fullPath).toString();
|
|
30006
30420
|
return parseContract(content, fullPath);
|
|
30007
30421
|
},
|
|
30008
30422
|
resolveLink(importingModuleDir, link) {
|
|
@@ -30018,7 +30432,7 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
30018
30432
|
const resolution = resolvePluginComponent(projectRoot, pluginName, contractName);
|
|
30019
30433
|
if (resolution.val && resolution.val.contractPath) {
|
|
30020
30434
|
const contractPath = resolution.val.contractPath;
|
|
30021
|
-
const content = fs
|
|
30435
|
+
const content = fs.readFileSync(contractPath).toString();
|
|
30022
30436
|
const contractResult = parseContract(content, contractPath);
|
|
30023
30437
|
return contractResult.map((contract) => ({ contract, contractPath }));
|
|
30024
30438
|
}
|
|
@@ -30026,14 +30440,14 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
30026
30440
|
const pluginDir = pluginName.startsWith("@") ? pluginName.split("/").pop() || pluginName : pluginName;
|
|
30027
30441
|
const contractFileName = contractName.replace(/\//g, "-") + ".jay-contract";
|
|
30028
30442
|
const materializedPath = path.join(materializedDir, pluginDir, contractFileName);
|
|
30029
|
-
if (fs
|
|
30030
|
-
const content = fs
|
|
30443
|
+
if (fs.existsSync(materializedPath)) {
|
|
30444
|
+
const content = fs.readFileSync(materializedPath).toString();
|
|
30031
30445
|
const contractResult = parseContract(content, materializedPath);
|
|
30032
30446
|
let metadata;
|
|
30033
30447
|
const indexPath = path.join(projectRoot, "agent-kit", "plugins-index.yaml");
|
|
30034
|
-
if (fs
|
|
30448
|
+
if (fs.existsSync(indexPath)) {
|
|
30035
30449
|
try {
|
|
30036
|
-
const indexContent = fs
|
|
30450
|
+
const indexContent = fs.readFileSync(indexPath, "utf-8");
|
|
30037
30451
|
const index = YAML.parse(indexContent);
|
|
30038
30452
|
const plugin = index.plugins?.find(
|
|
30039
30453
|
(p) => p.name === pluginName || p.name === pluginDir
|
|
@@ -30062,13 +30476,13 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
30062
30476
|
const resolvedPath = src.startsWith(".") ? path.resolve(importingModuleDir, src) : src;
|
|
30063
30477
|
const jayHtmlPath = resolvedPath + ".jay-html";
|
|
30064
30478
|
try {
|
|
30065
|
-
const content = fs
|
|
30479
|
+
const content = fs.readFileSync(jayHtmlPath, "utf-8");
|
|
30066
30480
|
return { content, componentDir: path.dirname(jayHtmlPath), filePath: jayHtmlPath };
|
|
30067
30481
|
} catch {
|
|
30068
30482
|
}
|
|
30069
30483
|
const dirJayHtmlPath = path.resolve(resolvedPath, path.basename(resolvedPath)) + ".jay-html";
|
|
30070
30484
|
try {
|
|
30071
|
-
const content = fs
|
|
30485
|
+
const content = fs.readFileSync(dirJayHtmlPath, "utf-8");
|
|
30072
30486
|
return {
|
|
30073
30487
|
content,
|
|
30074
30488
|
componentDir: path.dirname(dirJayHtmlPath),
|