diff --git a/CHANGELOG.md b/CHANGELOG.md index bd148553..b48e93d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,10 @@ Released: TBD ### Bug fixes +- [#479](https://github.com/peggyjs/peggy/issues/379) + Refactor `cli/fromMem.js` into separate project + [from-mem](https://github.com/peggyjs/from-mem/). + 4.0.0 ----- diff --git a/bin/fromMem.js b/bin/fromMem.js deleted file mode 100644 index ddbeb01c..00000000 --- a/bin/fromMem.js +++ /dev/null @@ -1,188 +0,0 @@ -"use strict"; - -// Import or require module text from memory, rather than disk. Runs -// in a node vm, very similar to how node loads modules. -// -// Ideas taken from the "module-from-string" and "eval" modules, neither of -// which were situated correctly to be used as-is. - -const vm = require("vm"); -const { Module } = require("module"); -const path = require("path"); -const url = require("url"); - -// These already exist in a new, blank VM. Date, JSON, NaN, etc. -// Things from the core language. -const vmGlobals = new vm - .Script("Object.getOwnPropertyNames(globalThis)") - .runInNewContext() - .sort(); -vmGlobals.push("global", "globalThis", "sys"); - -// These are the things that are normally in the environment, that vm doesn't -// make available. This that you expect to be available in a node environment -// that aren't in the laguage itself. -const neededKeys = Object - .getOwnPropertyNames(global) - .filter(k => !vmGlobals.includes(k)) - .sort(); -const globalContext = Object.fromEntries( - neededKeys.map(k => [k, global[k]]) -); - -// In node <15, console is in vmGlobals. -globalContext.console = console; - -/** - * Options for how to process code. - * - * @typedef {object} FromMemOptions - * @property {"amd"|"bare"|"commonjs"|"es"|"globals"|"umd"} [format="commonjs"] - * What format does the code have? Throws an error if the format is not - * "commonjs", "es", "umd", or "bare". - * @property {string} [filename=__filename] What is the fully-qualified synthetic - * filename for the code? Most important is the directory, which is used to - * find modules that the code import's or require's. - * @property {object} [context={}] Variables to make availble in the global - * scope while code is being evaluated. - * @property {boolean} [includeGlobals=true] Include the typical global - * properties that node gives to all modules. (e.g. Buffer, process). - * @property {string} [globalExport=null] For type "globals", what name is - * exported from the module? - */ - -/** - * Treat the given code as a node module as if require() had been called - * on a file containing the code. - * - * @param {string} code Source code in commonjs format. - * @param {string} dirname Used for __dirname. - * @param {FromMemOptions} options - * @returns {object} The module exports from code - */ -function requireString(code, dirname, options) { - const m = new Module(options.filename, module); // Current module is parent. - // This is the function that will be called by `require()` in the parser. - m.require = Module.createRequire(options.filename); - const script = new vm.Script(code, { filename: options.filename }); - return script.runInNewContext({ - module: m, - exports: m.exports, - require: m.require, - __dirname: dirname, - __filename: options.filename, - ...options.context, - }); -} - -/** - * If the given specifier starts with a ".", path.resolve it to the given - * directory. Otherwise, it's a fully-qualified path, a node internal - * module name, an npm-provided module name, or a URL. - * - * @param {string} dirname Owning directory - * @param {string} specifier String from the rightmost side of an import statement - * @returns {string} Resolved path name or original string - */ -function resolveIfNeeded(dirname, specifier) { - if (specifier.startsWith(".")) { - specifier = path.resolve(dirname, specifier); - } - return specifier; -} - -/** - * Treat the given code as a node module as if import had been called - * on a file containing the code. - * - * @param {string} code Source code in es6 format. - * @param {string} dirname Where the synthetic file would have lived. - * @param {FromMemOptions} options - * @returns {object} The module exports from code - */ -async function importString(code, dirname, options) { - if (!vm.SourceTextModule) { - throw new Error("Start node with --experimental-vm-modules for this to work"); - } - - const [maj, min] = process.version - .match(/^v(\d+)\.(\d+)\.(\d+)/) - .slice(1) - .map(x => parseInt(x, 10)); - if ((maj < 20) || ((maj === 20) && (min < 8))) { - throw new Error("Requires node.js 20.8+ or 21."); - } - - const mod = new vm.SourceTextModule(code, { - identifier: options.filename, - context: vm.createContext(options.context), - initializeImportMeta(meta) { - meta.url = String(url.pathToFileURL(options.filename)); - }, - importModuleDynamically(specifier) { - return import(resolveIfNeeded(dirname, specifier)); - }, - }); - - await mod.link(async(specifier, referencingModule) => { - const resolvedSpecifier = resolveIfNeeded(dirname, specifier); - const targetModule = await import(resolvedSpecifier); - const exports = Object.keys(targetModule); - - // DO NOT change function to () =>, or `this` will be wrong. - return new vm.SyntheticModule(exports, function() { - for (const e of exports) { - this.setExport(e, targetModule[e]); - } - }, { - context: referencingModule.context, - }); - }); - await mod.evaluate(); - return mod.namespace; -} - -/** - * Import or require the given code from memory. Knows about the different - * Peggy output formats. Returns the exports of the module. - * - * @param {string} code Code to import - * @param {FromMemOptions} [options] Options. Most important is filename. - * @returns {Promise} The evaluated code. - */ -// eslint-disable-next-line require-await -- Always want to return a Promise -module.exports = async function fromMem(code, options) { - options = { - format: "commonjs", - filename: `${__filename}-string`, - context: {}, - includeGlobals: true, - globalExport: null, - ...options, - }; - - if (options.includeGlobals) { - options.context = { - ...globalContext, - ...options.context, - }; - } - options.context.global = options.context; - options.context.globalThis = options.context; - - options.filename = path.resolve(options.filename); - const dirname = path.dirname(options.filename); - - switch (options.format) { - case "bare": - case "commonjs": - case "umd": - return requireString(code, dirname, options); - case "es": - // Returns promise - return importString(code, dirname, options); - // I don't care enough about amd and globals to figure out how to load them. - default: - throw new Error(`Unsupported output format: "${options.format}"`); - } -}; diff --git a/bin/peggy-cli.js b/bin/peggy-cli.js index cf902e00..cce9ab98 100644 --- a/bin/peggy-cli.js +++ b/bin/peggy-cli.js @@ -595,7 +595,7 @@ class PeggyCLI extends Command { ? path.resolve(this.outputJS) : path.join(process.cwd(), "stdout.js"); // Synthetic - const fromMem = require("./fromMem.js"); + const fromMem = require("@peggyjs/from-mem"); const exec = await fromMem(source, { filename, format: this.argv.format, diff --git a/docs/js/test-bundle.min.js b/docs/js/test-bundle.min.js index f5e9ff0f..b63184ba 100644 --- a/docs/js/test-bundle.min.js +++ b/docs/js/test-bundle.min.js @@ -5,4 +5,4 @@ // Copyright (c) 2024- the Peggy authors // Licensed under the MIT License. -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("chai"),require("whatwg-url")):"function"==typeof define&&define.amd?define(["exports","chai","whatwg-url"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).browser={},e.chai,e.whatwgURL)}(this,(function(exports,require$$0,require$$0$1){var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},GrammarLocation$5=function(){function e(e,t){this.source=e,this.start=t}return e.prototype.toString=function(){return String(this.source)},e.prototype.offset=function(e){return{line:e.line+this.start.line-1,column:1===e.line?e.column+this.start.column-1:e.column,offset:e.offset+this.start.offset}},e.offsetStart=function(e){return e.source&&"function"==typeof e.source.offset?e.source.offset(e.start):e.start},e.offsetEnd=function(e){return e.source&&"function"==typeof e.source.offset?e.source.offset(e.end):e.end},e}(),grammarLocation=GrammarLocation$5,__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),extendStatics,GrammarLocation$4=grammarLocation,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},GrammarError$5=function(e){function t(r,a,n){var o=e.call(this,r)||this;return setProtoOf(o,t.prototype),o.name="GrammarError",o.location=a,void 0===n&&(n=[]),o.diagnostics=n,o.stage=null,o.problems=[["error",r,a,n]],o}return __extends(t,e),t.prototype.toString=function(){var t=e.prototype.toString.call(this);this.location&&(t+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(t+="".concat(this.location.source,":")),t+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var r=0,a=this.diagnostics;r1&&e.delimiter&&n(e.delimiter)))},semantic_and:a,semantic_not:a,rule_ref:function(t){var r=asts$8.findRule(e,t.name);return r?n(r):void 0},library_ref:function(){return!1},literal:function(e){return""!==e.value},class:r,any:r});return n(t)},combine:function(e){return e.reduce((function(e,t){return e.topLevelInitializer=combinePossibleArrays(e.topLevelInitializer,t.topLevelInitializer),e.initializer=combinePossibleArrays(e.initializer,t.initializer),e.rules=e.rules.concat(t.rules),e}))}},asts_1=asts$8;function addImportedRules$1(e){for(var t=0,r=0,a=e.imports;r0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$a.build({rule:function(e){var t=void 0,r=0;if(void 0===e.match){e.match=SOMETIMES_MATCH$1;do{if(t=e.match,e.match=o(e.expression),++r>6)throw new GrammarError$4("Infinity cycle detected when trying to evaluate node match result",e.location)}while(t!==e.match)}return e.match},named:a,choice:function(e){return e.match=n(e.alternatives,!0)},action:a,sequence:function(e){return e.match=n(e.elements,!1)},labeled:a,text:a,simple_and:a,simple_not:function(e){return e.match=-o(e.expression)},optional:r,zero_or_more:r,one_or_more:a,repeated:function(e){var t=o(e.expression),r=e.delimiter?o(e.delimiter):NEVER_MATCH$1,a=e.min?e.min:e.max;return"constant"!==a.type||"constant"!==e.max.type?e.match=SOMETIMES_MATCH$1:0===e.max.value||null!==e.max.value&&a.value>e.max.value?e.match=NEVER_MATCH$1:t===NEVER_MATCH$1?e.match=0===a.value?ALWAYS_MATCH$1:NEVER_MATCH$1:t===ALWAYS_MATCH$1?e.delimiter&&a.value>=2?e.match=r:e.match=ALWAYS_MATCH$1:e.delimiter&&a.value>=2?e.match=r===NEVER_MATCH$1?NEVER_MATCH$1:SOMETIMES_MATCH$1:e.match=0===a.value?ALWAYS_MATCH$1:SOMETIMES_MATCH$1},group:a,semantic_and:t,semantic_not:t,rule_ref:function(t){var r=asts$7.findRule(e,t.name);return r?t.match=o(r):SOMETIMES_MATCH$1},library_ref:function(){return 0},literal:function(e){var t=0===e.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},class:function(e){var t=0===e.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},any:t});o(e)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,__spreadArray$5=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n1?f(SOMETIMES_MATCH,[op$2.IF_ERROR],l([op$2.POP],e(t.slice(1),r)),[]):[])}(e.alternatives,t)},action:function(e,t){var r=p(t.env),a="sequence"!==e.expression.type||0===e.expression.elements.length,n=v(e.expression,{sp:t.sp+(a?1:0),env:r,action:e}),o=e.expression.match||0,s=a&&o!==NEVER_MATCH?c(!1,Object.keys(r),e):-1;return a?l([op$2.PUSH_CURR_POS],n,f(o,[op$2.IF_NOT_ERROR],l([op$2.LOAD_SAVED_POS,1],d(s,1,r,t.sp+2)),[]),[op$2.NIP]):n},sequence:function(e,t){return l([op$2.PUSH_CURR_POS],function t(r,a){if(r.length>0){var n=e.elements.length-r.length+1;return l(v(r[0],{sp:a.sp,env:a.env,pluck:a.pluck,action:null}),f(r[0].match||0,[op$2.IF_NOT_ERROR],t(r.slice(1),{sp:a.sp+1,env:a.env,pluck:a.pluck,action:a.action}),l(n>1?[op$2.POP_N,n]:[op$2.POP],[op$2.POP_CURR_POS],[op$2.PUSH_FAILED])))}if(a.pluck&&a.pluck.length>0)return l([op$2.PLUCK,e.elements.length+1,a.pluck.length],a.pluck.map((function(e){return a.sp-e})));if(a.action){var o=c(!1,Object.keys(a.env),a.action);return l([op$2.LOAD_SAVED_POS,e.elements.length],d(o,e.elements.length+1,a.env,a.sp))}return l([op$2.WRAP,e.elements.length],[op$2.NIP])}(e.elements,{sp:t.sp+1,env:t.env,pluck:[],action:t.action}))},labeled:function(e,a){var n=a.env,o=e.label,s=a.sp+1;o&&(n=p(a.env),a.env[o]=s),e.pick&&a.pluck.push(s);var i=v(e.expression,{sp:a.sp,env:n,action:null});return o&&e.labelLocation&&t&&"source-and-map"===t.output?l([op$2.SOURCE_MAP_LABEL_PUSH,s,r.add(o),u(e.labelLocation)],i,[op$2.SOURCE_MAP_LABEL_POP,s]):i},text:function(e,t){return l([op$2.PUSH_CURR_POS],v(e.expression,{sp:t.sp+1,env:p(t.env),action:null}),f(e.match||0,[op$2.IF_NOT_ERROR],l([op$2.POP],[op$2.TEXT]),[op$2.NIP]))},simple_and:function(e,t){return m(e.expression,!1,t)},simple_not:function(e,t){return m(e.expression,!0,t)},optional:function(e,t){return l(v(e.expression,{sp:t.sp,env:p(t.env),action:null}),f(-(e.expression.match||0),[op$2.IF_ERROR],l([op$2.POP],[op$2.PUSH_NULL]),[]))},zero_or_more:function(e,t){var r=v(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return l([op$2.PUSH_EMPTY_ARRAY],r,$(r),[op$2.POP])},one_or_more:function(e,t){var r=v(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return l([op$2.PUSH_EMPTY_ARRAY],r,f(e.expression.match||0,[op$2.IF_NOT_ERROR],l($(r),[op$2.POP]),l([op$2.POP],[op$2.POP],[op$2.PUSH_FAILED])))},repeated:function(e,t){var r=e.min?e.min:e.max,a="constant"!==r.type||r.value>0,n="constant"!==e.max.type&&null!==e.max.value,o=a?2:1,s=e.min?h(e.min,t.env,t.sp,2+("function"===e.max.type?1:0)):{pre:[],post:[],sp:t.sp},i=h(e.max,t.env,s.sp,o),c=v(e.expression,{sp:i.sp+o,env:p(t.env),action:null}),u=null!==e.delimiter?v(e.expression,{sp:i.sp+o+1,env:p(t.env),action:null}):c,d=function(e,t,r,a,n){return e?l([op$2.PUSH_CURR_POS],v(e,{sp:a.sp+n+1,env:p(a.env),action:null}),f(e.match||0,[op$2.IF_NOT_ERROR],l([op$2.POP],r,f(-t,[op$2.IF_ERROR],[op$2.POP,op$2.POP_CURR_POS,op$2.PUSH_FAILED],[op$2.NIP])),[op$2.NIP])):r}(e.delimiter,e.expression.match||0,u,t,o),m=x(d,e.max),g=n?x(c,e.max):c,b=l(a?[op$2.PUSH_CURR_POS]:[],[op$2.PUSH_EMPTY_ARRAY],g,$(m),[op$2.POP]);return l(s.pre,i.pre,a?function(e,t){var r="constant"===t.type?[op$2.IF_LT,t.value]:[op$2.IF_LT_DYNAMIC,t.sp||0];return l(e,f(SOMETIMES_MATCH,r,[op$2.POP,op$2.POP_CURR_POS,op$2.PUSH_FAILED],[op$2.NIP]))}(b,r):b,i.post,s.post)},group:function(e,t){return v(e.expression,{sp:t.sp,env:p(t.env),action:null})},semantic_and:function(e,t){return g(e,!1,t)},semantic_not:function(e,t){return g(e,!0,t)},rule_ref:function(t){return[op$2.RULE,asts$6.indexOfRule(e,t.name)]},library_ref:function(e){return[op$2.LIBRARY_RULE,e.libraryNumber,o.add(e.name)]},literal:function(e){if(e.value.length>0){var t=e.match||0,a=t===SOMETIMES_MATCH||t===ALWAYS_MATCH&&!e.ignoreCase?r.add(e.ignoreCase?e.value.toLowerCase():e.value):-1,o=t!==ALWAYS_MATCH?n.add({type:"literal",value:e.value,ignoreCase:e.ignoreCase}):-1;return f(t,e.ignoreCase?[op$2.MATCH_STRING_IC,a]:[op$2.MATCH_STRING,a],e.ignoreCase?[op$2.ACCEPT_N,e.value.length]:[op$2.ACCEPT_STRING,a],[op$2.FAIL,o])}return[op$2.PUSH_EMPTY_STRING]},class:function(e){var t=e.match||0,r=t===SOMETIMES_MATCH?a.add(e):-1,o=t!==ALWAYS_MATCH?n.add({type:"class",value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase}):-1;return f(t,[op$2.MATCH_CHAR_CLASS,r],[op$2.ACCEPT_N,1],[op$2.FAIL,o])},any:function(e){var t=e.match||0,r=t!==ALWAYS_MATCH?n.add({type:"any"}):-1;return f(t,[op$2.MATCH_ANY],[op$2.ACCEPT_N,1],[op$2.FAIL,r])}},t&&"source-and-map"===t.output&&Object.keys(b).forEach((function(e){var t=b[e];b[e]=function(e){for(var r=[],a=1;a>>=VLQ_BASE_SHIFT$1,a>0&&(t|=VLQ_CONTINUATION_BIT$1),r+=base64$5.encode(t)}while(a>0);return r};var util$8={};function getArg$1(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$8.getArg=getArg$1;const supportsNullProto$1=!("__proto__"in Object.create(null));function identity$1(e){return e}function toSetString$1(e){return isProtoString$1(e)?"$"+e:e}function fromSetString$1(e){return isProtoString$1(e)?e.slice(1):e}function isProtoString$1(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp$1(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated$1(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp$1(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp$1(e.name,t.name)))))}util$8.toSetString=supportsNullProto$1?identity$1:toSetString$1,util$8.fromSetString=supportsNullProto$1?identity$1:fromSetString$1,util$8.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated$1;const PROTOCOL$1="http:",PROTOCOL_AND_HOST$1=`${PROTOCOL$1}//host`;function createSafeHandler$1(e){return t=>{const r=getURLType$1(t),a=buildSafeBase$1(t),n=new URL(t,a);e(n);const o=n.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL$1.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST$1.length):computeRelativeURL$1(a,o)}}function withBase$1(e,t){return new URL(e,t).toString()}function buildUniqueSegment$1(e,t){let r=0;for(;;){const a=e+r++;if(-1===t.indexOf(a))return a}}function buildSafeBase$1(e){const t=e.split("..").length-1,r=buildUniqueSegment$1("p",e);let a=`${PROTOCOL_AND_HOST$1}/`;for(let e=0;e0&&!a[a.length-1]&&a.pop();r.length>0&&a.length>0&&r[0]===a[0];)r.shift(),a.shift();return a.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory$1=createSafeHandler$1((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),normalize$1=createSafeHandler$1((e=>{}));function join$1(e,t){const r=getURLType$1(t),a=getURLType$1(e);if(e=ensureDirectory$1(e),"absolute"===r)return withBase$1(t,void 0);if("absolute"===a)return withBase$1(t,e);if("scheme-relative"===r)return normalize$1(t);if("scheme-relative"===a)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL$1.length);if("path-absolute"===r)return normalize$1(t);if("path-absolute"===a)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL_AND_HOST$1.length);const n=buildSafeBase$1(t+e);return computeRelativeURL$1(n,withBase$1(t,withBase$1(e,n)))}function relative$1(e,t){const r=relativeIfPossible$1(e,t);return"string"==typeof r?r:normalize$1(t)}function relativeIfPossible$1(e,t){if(getURLType$1(e)!==getURLType$1(t))return null;const r=buildSafeBase$1(e+t),a=new URL(e,r),n=new URL(t,r);try{new URL("",n.toString())}catch(e){return null}return n.protocol!==a.protocol||n.user!==a.user||n.password!==a.password||n.hostname!==a.hostname||n.port!==a.port?null:computeRelativeURL$1(a,n)}util$8.normalize=normalize$1,util$8.join=join$1,util$8.relative=relative$1;var arraySet$1={};let ArraySet$4=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){const a=new e;for(let e=0,n=t.length;e=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||a==r&&o>=n||util$7.compareByGeneratedPositionsInflated(e,t)<=0}let MappingList$3=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter$1(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$7.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};mappingList$1.MappingList=MappingList$3;const base64VLQ$1=base64Vlq$1,util$6=util$8,ArraySet$3=arraySet$1.ArraySet,MappingList$2=mappingList$1.MappingList;let SourceMapGenerator$3=class e{constructor(e){e||(e={}),this._file=util$6.getArg(e,"file",null),this._sourceRoot=util$6.getArg(e,"sourceRoot",null),this._skipValidation=util$6.getArg(e,"skipValidation",!1),this._sources=new ArraySet$3,this._names=new ArraySet$3,this._mappings=new MappingList$2,this._sourcesContents=null}static fromSourceMap(t){const r=t.sourceRoot,a=new e({file:t.file,sourceRoot:r});return t.eachMapping((function(e){const t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=r&&(t.source=util$6.relative(r,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),a.addMapping(t)})),t.sources.forEach((function(e){let n=e;null!=r&&(n=util$6.relative(r,e)),a._sources.has(n)||a._sources.add(n);const o=t.sourceContentFor(e);null!=o&&a.setSourceContent(e,o)})),a}addMapping(e){const t=util$6.getArg(e,"generated"),r=util$6.getArg(e,"original",null);let a=util$6.getArg(e,"source",null),n=util$6.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,a,n),null!=a&&(a=String(a),this._sources.has(a)||this._sources.add(a)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:a,name:n})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$6.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$6.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$6.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let a=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');a=e.file}const n=this._sourceRoot;null!=n&&(a=util$6.relative(n,a));const o=this._mappings.toArray().length>0?new ArraySet$3:this._sources,s=new ArraySet$3;this._mappings.unsortedForEach((function(t){if(t.source===a&&null!=t.originalLine){const a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=util$6.join(r,t.source)),null!=n&&(t.source=util$6.relative(n,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}const i=t.source;null==i||o.has(i)||o.add(i);const c=t.name;null==c||s.has(c)||s.add(c)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const a=e.sourceContentFor(t);null!=a&&(null!=r&&(t=util$6.join(r,t)),null!=n&&(t=util$6.relative(n,t)),this.setSourceContent(t,a))}),this)}_validateMapping(e,t,r,a){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!a);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:a}))}_serializeMappings(){let e,t,r,a,n=0,o=1,s=0,i=0,c=0,u=0,p="";const l=this._mappings.toArray();for(let f=0,d=l.length;f0){if(!util$6.compareByGeneratedPositionsInflated(t,l[f-1]))continue;e+=","}e+=base64VLQ$1.encode(t.generatedColumn-n),n=t.generatedColumn,null!=t.source&&(a=this._sources.indexOf(t.source),e+=base64VLQ$1.encode(a-u),u=a,e+=base64VLQ$1.encode(t.originalLine-1-i),i=t.originalLine-1,e+=base64VLQ$1.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ$1.encode(r-c),c=r)),p+=e}return p}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$6.relative(t,e));const r=util$6.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}};SourceMapGenerator$3.prototype._version=3,sourceMapGenerator$1.SourceMapGenerator=SourceMapGenerator$3;var sourceNode$1={};const SourceMapGenerator$2=sourceMapGenerator$1.SourceMapGenerator,util$5=util$8,REGEX_NEWLINE$1=/(\r?\n)/,NEWLINE_CODE$1=10,isSourceNode$1="$$$isSourceNode$$$";let SourceNode$4=class e{constructor(e,t,r,a,n){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==n?null:n,this[isSourceNode$1]=!0,null!=a&&this.add(a)}static fromStringWithSourceMap(t,r,a){const n=new e,o=t.split(REGEX_NEWLINE$1);let s=0;const i=function(){return e()+(e()||"");function e(){return s=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode$1]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,a=this.children.length;r0){for(t=[],r=0;r' at an index ").concat(e,".\nBytecode: ").concat(this.bytecode));return this.varName+e},e.sourceNode=function(e,t,r){var a=GrammarLocation$3.offsetStart(e);return new SourceNode$3(a.line,a.column?a.column-1:null,String(e.source),t,r)},e.prototype.push=function(t){++this.sp>this.maxSp&&(this.maxSp=this.sp);var r=this.labels[this.sp],a=[this.name(this.sp)," = ",t,";"];if(r){if(this.sourceMapStack.length){var n=e.sourceNode(r.location,a.splice(0,2),r.label),o=this.sourceMapPopInternal(),s=o.parts,i=o.location,c=i.start.offsett.end.offset&&(r[2]={start:t.end,end:r[2].end,source:r[2].source})}this.sourceMapStack.push([e,e.length,t])},e.prototype.sourceMapPopInternal=function(){var e=this.sourceMapStack.pop();if(!e)throw new RangeError("Rule '".concat(this.ruleName,"': Attempting to pop an empty source map stack.\nBytecode: ").concat(this.bytecode));var t=e[0],r=e[1],a=e[2],n=t.splice(r).map((function(e){return e instanceof SourceNode$3?e:e+"\n"}));if(n.length){var o=GrammarLocation$3.offsetStart(a);t.push(new SourceNode$3(o.line,o.column-1,String(a.source),n))}return{parts:t,location:a}},e.prototype.sourceMapPop=function(e){var t=this.sourceMapPopInternal().location;if(this.sourceMapStack.length&&t.end.offset>2],n+=t[(3&e[o])<<4|e[o+1]>>4],n+=t[(15&e[o+1])<<2|e[o+2]>>6],n+=t[63&e[o+2]];return 1===r?(n+=t[e[a]>>2],n+=t[(3&e[a])<<4],n+="=="):2===r&&(n+=t[e[a]>>2],n+=t[(3&e[a])<<4|e[a+1]>>4],n+=t[(15&e[a+1])<<2],n+="="),n}utils$1.hex=hex$1,utils$1.stringEscape=stringEscape$2,utils$1.regexpClassEscape=regexpClassEscape$2,utils$1.base64=base64$4;var OPS_TO_PREFIXED_TYPES={$:"text","&":"simple_and","!":"simple_not"},OPS_TO_SUFFIXED_TYPES={"?":"optional","*":"zero_or_more","+":"one_or_more"},OPS_TO_SEMANTIC_PREDICATE_TYPES={"&":"semantic_and","!":"semantic_not"};function peg$subclass(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function peg$SyntaxError(e,t,r,a){var n=Error.call(this,e);return Object.setPrototypeOf&&Object.setPrototypeOf(n,peg$SyntaxError.prototype),n.expected=t,n.found=r,n.location=a,n.name="SyntaxError",n}function peg$padEnd(e,t,r){return r=r||" ",e.length>t?e:(t-=e.length,e+(r+=r.repeat(t)).slice(0,t))}function peg$parse(e,t){var r,a={},n=(t=void 0!==t?t:{}).grammarSource,o={Grammar:Br,ImportsAndSource:function(){var t,r,n;return t=Ar,r=function(){var t,r;return t=Ar,r=Ar,Mr(),r=e.substring(r,Ar),yr=t,At(r)}(),n=function(){var t,r,n,o;for(t=Ar,r=Ar,n=[],e.length>Ar?(o=e.charAt(Ar),Ar++):(o=a,0===kr&&Or(ce));o!==a;)n.push(o),e.length>Ar?(o=e.charAt(Ar),Ar++):(o=a,0===kr&&Or(ce));return r=e.substring(r,Ar),yr=t,vt(r)}(),yr=t,bt(r,n)}},s=Br,i="import",c=";",u=",",p="*",l="as",f="{",d="}",m="from",g="=",$="/",h="@",x=":",b="|",v="..",A="(",y=")",S=".",_="\n",E="\r\n",k="/*",T="*/",C="//",w="\\",P="i",R='"',L="'",F="[",O="^",B="]",M="-",D="0",I="b",j="f",N="n",U="r",q="t",G="v",H="x",z="u",W=/^[!$&]/,V=/^[*-+?]/,Y=/^[!&]/,Q=/^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/,J=/^[\n\r\u2028\u2029]/,X=/^[\r\u2028-\u2029]/,K=/^[A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376-\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\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\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E46\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\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\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\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\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,Z=/^[$0-9_\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962-\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u09E6-\u09EF\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B62-\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CE2-\u0CE3\u0CE6-\u0CEF\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62-\u0D63\u0D66-\u0D6F\u0D82-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18-\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F3F\u0F71-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19D9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u200C-\u200D\u203F-\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099-\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880-\uA881\uA8B4-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F1\uA900-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C-\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5-\uAAF6\uABE3-\uABEA\uABEC-\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33-\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]/,ee=/^[\n\r"\\\u2028-\u2029]/,te=/^[\n\r'\\\u2028-\u2029]/,re=/^[\n\r\\-\]\u2028-\u2029]/,ae=/^["'\\]/,ne=/^[0-9ux]/,oe=/^[0-9]/,se=/^[0-9a-f]/i,ie=/^[{}]/,ce={type:"any"},ue=wr("import",!1),pe=wr(";",!1),le=wr(",",!1),fe=wr("*",!1),de=wr("as",!1),me=wr("{",!1),ge=wr("}",!1),$e=wr("from",!1),he=wr("=",!1),xe=wr("/",!1),be=wr("@",!1),ve=wr(":",!1),Ae=Pr(["!","$","&"],!1,!1),ye=Pr([["*","+"],"?"],!1,!1),Se=wr("|",!1),_e=wr("..",!1),Ee=wr("(",!1),ke=wr(")",!1),Te=wr(".",!1),Ce=Pr(["!","&"],!1,!1),we=Rr("whitespace"),Pe=Pr(["\t",["\v","\f"]," "," "," ",[" "," "]," "," "," ","\ufeff"],!1,!1),Re=Pr(["\n","\r","\u2028","\u2029"],!1,!1),Le=Rr("end of line"),Fe=wr("\n",!1),Oe=wr("\r\n",!1),Be=Pr(["\r",["\u2028","\u2029"]],!1,!1),Me=Rr("comment"),De=wr("/*",!1),Ie=wr("*/",!1),je=wr("//",!1),Ne=Rr("identifier"),Ue=Pr([["A","Z"],"_",["a","z"],"ª","µ","º",["À","Ö"],["Ø","ö"],["ø","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ",["Ͱ","ʹ"],["Ͷ","ͷ"],["ͺ","ͽ"],"Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ρ"],["Σ","ϵ"],["Ϸ","ҁ"],["Ҋ","ԯ"],["Ա","Ֆ"],"ՙ",["ա","և"],["א","ת"],["װ","ײ"],["ؠ","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۥ","ۦ"],["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ߴ","ߵ"],"ߺ",["ࠀ","ࠕ"],"ࠚ","ࠤ","ࠨ",["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॱ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๆ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],"ໆ",["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["ა","ჺ"],["ჼ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["Ꭰ","Ᏽ"],["ᏸ","ᏽ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛮ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៗ","ៜ",["ᠠ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],"ᪧ",["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱽ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ᴀ","ᶿ"],["Ḁ","ἕ"],["Ἐ","Ἕ"],["ἠ","ὅ"],["Ὀ","Ὅ"],["ὐ","ὗ"],"Ὑ","Ὓ","Ὕ",["Ὗ","ώ"],["ᾀ","ᾴ"],["ᾶ","ᾼ"],"ι",["ῂ","ῄ"],["ῆ","ῌ"],["ῐ","ΐ"],["ῖ","Ί"],["ῠ","Ῥ"],["ῲ","ῴ"],["ῶ","ῼ"],"ⁱ","ⁿ",["ₐ","ₜ"],"ℂ","ℇ",["ℊ","ℓ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℯ","ℹ"],["ℼ","ℿ"],["ⅅ","ⅉ"],"ⅎ",["Ⅰ","ↈ"],["Ⰰ","Ⱞ"],["ⰰ","ⱞ"],["Ⱡ","ⳤ"],["Ⳬ","ⳮ"],["Ⳳ","ⳳ"],["ⴀ","ⴥ"],"ⴧ","ⴭ",["ⴰ","ⵧ"],"ⵯ",["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"ⸯ",["々","〇"],["〡","〩"],["〱","〵"],["〸","〼"],["ぁ","ゖ"],["ゝ","ゟ"],["ァ","ヺ"],["ー","ヿ"],["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꒌ"],["ꓐ","ꓽ"],["ꔀ","ꘌ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],["Ꙁ","ꙮ"],["ꙿ","ꚝ"],["ꚠ","ꛯ"],["ꜗ","ꜟ"],["Ꜣ","ꞈ"],["Ꞌ","Ɬ"],["Ʞ","ꞷ"],["ꟷ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],"ꧏ",["ꧠ","ꧤ"],["ꧦ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫝ"],["ꫠ","ꫪ"],["ꫲ","ꫴ"],["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꬰ","ꭚ"],["ꭜ","ꭥ"],["ꭰ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],["ff","st"],["ﬓ","ﬗ"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["A","Z"],["a","z"],["ヲ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),qe=wr("\\",!1),Ge=Pr(["$",["0","9"],"_",["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","٩"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],["۰","۹"],"ܑ",["ܰ","݊"],["ަ","ް"],["߀","߉"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ः"],["ऺ","़"],["ा","ॏ"],["॑","ॗ"],["ॢ","ॣ"],["०","९"],["ঁ","ঃ"],"়",["া","ৄ"],["ে","ৈ"],["ো","্"],"ৗ",["ৢ","ৣ"],["০","৯"],["ਁ","ਃ"],"਼",["ਾ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["੦","ੱ"],"ੵ",["ઁ","ઃ"],"઼",["ા","ૅ"],["ે","ૉ"],["ો","્"],["ૢ","ૣ"],["૦","૯"],["ଁ","ଃ"],"଼",["ା","ୄ"],["େ","ୈ"],["ୋ","୍"],["ୖ","ୗ"],["ୢ","ୣ"],["୦","୯"],"ஂ",["ா","ூ"],["ெ","ை"],["ொ","்"],"ௗ",["௦","௯"],["ఀ","ః"],["ా","ౄ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],["౦","౯"],["ಁ","ಃ"],"಼",["ಾ","ೄ"],["ೆ","ೈ"],["ೊ","್"],["ೕ","ೖ"],["ೢ","ೣ"],["೦","೯"],["ഁ","ഃ"],["ാ","ൄ"],["െ","ൈ"],["ൊ","്"],"ൗ",["ൢ","ൣ"],["൦","൯"],["ං","ඃ"],"්",["ා","ු"],"ූ",["ෘ","ෟ"],["෦","෯"],["ෲ","ෳ"],"ั",["ิ","ฺ"],["็","๎"],["๐","๙"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["໐","໙"],["༘","༙"],["༠","༩"],"༵","༷","༹",["༾","༿"],["ཱ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ါ","ှ"],["၀","၉"],["ၖ","ၙ"],["ၞ","ၠ"],["ၢ","ၤ"],["ၧ","ၭ"],["ၱ","ၴ"],["ႂ","ႍ"],["ႏ","ႝ"],["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","៓"],"៝",["០","៩"],["᠋","᠍"],["᠐","᠙"],"ᢩ",["ᤠ","ᤫ"],["ᤰ","᤻"],["᥆","᥏"],["᧐","᧙"],["ᨗ","ᨛ"],["ᩕ","ᩞ"],["᩠","᩼"],["᩿","᪉"],["᪐","᪙"],["᪰","᪽"],["ᬀ","ᬄ"],["᬴","᭄"],["᭐","᭙"],["᭫","᭳"],["ᮀ","ᮂ"],["ᮡ","ᮭ"],["᮰","᮹"],["᯦","᯳"],["ᰤ","᰷"],["᱀","᱉"],["᱐","᱙"],["᳐","᳒"],["᳔","᳨"],"᳭",["ᳲ","᳴"],["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["‌","‍"],["‿","⁀"],"⁔",["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〯"],["゙","゚"],["꘠","꘩"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠣ","ꠧ"],["ꢀ","ꢁ"],["ꢴ","꣄"],["꣐","꣙"],["꣠","꣱"],["꤀","꤉"],["ꤦ","꤭"],["ꥇ","꥓"],["ꦀ","ꦃ"],["꦳","꧀"],["꧐","꧙"],"ꧥ",["꧰","꧹"],["ꨩ","ꨶ"],"ꩃ",["ꩌ","ꩍ"],["꩐","꩙"],["ꩻ","ꩽ"],"ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫫ","ꫯ"],["ꫵ","꫶"],["ꯣ","ꯪ"],["꯬","꯭"],["꯰","꯹"],"ﬞ",["︀","️"],["︠","︯"],["︳","︴"],["﹍","﹏"],["0","9"],"_"],!1,!1),He=Rr("literal"),ze=wr("i",!1),We=Rr("string"),Ve=wr('"',!1),Ye=wr("'",!1),Qe=Pr(["\n","\r",'"',"\\",["\u2028","\u2029"]],!1,!1),Je=Pr(["\n","\r","'","\\",["\u2028","\u2029"]],!1,!1),Xe=Rr("character class"),Ke=wr("[",!1),Ze=wr("^",!1),et=wr("]",!1),tt=wr("-",!1),rt=Pr(["\n","\r",["\\","]"],["\u2028","\u2029"]],!1,!1),at=wr("0",!1),nt=Pr(['"',"'","\\"],!1,!1),ot=wr("b",!1),st=wr("f",!1),it=wr("n",!1),ct=wr("r",!1),ut=wr("t",!1),pt=wr("v",!1),lt=Pr([["0","9"],"u","x"],!1,!1),ft=wr("x",!1),dt=wr("u",!1),mt=Pr([["0","9"]],!1,!1),gt=Pr([["0","9"],["a","f"]],!1,!0),$t=Rr("code block"),ht=Pr(["{","}"],!1,!1),xt=function(e,t,r,a){return{type:"grammar",imports:e,topLevelInitializer:t,initializer:r,rules:a,location:Tr()}},bt=function(e,t){return[e,t]},vt=function(e){return{type:"top_level_initializer",code:e,codeLocation:Tr()}},At=function(e){return{type:"top_level_initializer",code:e,codeLocation:Tr()}},yt=function(e,t){return{type:"grammar_import",what:e,from:t,location:Tr()}},St=function(e){return{type:"grammar_import",what:[],from:e,location:Tr()}},_t=function(e,t){return t?Array.isArray(t)?(t.unshift(e),t):[e,t]:[e]},Et=function(e){return{type:"import_binding_default",binding:e[0],location:e[1]}},kt=function(e){return[{type:"import_binding_all",binding:e[0],location:e[1]}]},Tt=function(){return[]},Ct=function(e,t){return{type:"import_binding_rename",rename:e[0],renameLocation:e[1],binding:t[0],location:t[1]}},wt=function(e){return{type:"import_binding",binding:e[0],location:e[1]}},Pt=function(e){return{type:"import_module_specifier",module:e,location:Tr()}},Rt=function(e){return[e,Tr()]},Lt=function(e){return[e,Tr()]},Ft=function(e){return Sa.indexOf(e[0])>=0&&Cr("Binding identifier can't be a reserved word \"".concat(e[0],'"'),e[1]),e[0]},Ot=function(e){return{type:"top_level_initializer",code:e[0],codeLocation:e[1],location:Tr()}},Bt=function(e){return{type:"initializer",code:e[0],codeLocation:e[1],location:Tr()}},Mt=function(e,t,r){return{type:"rule",name:e[0],nameLocation:e[1],expression:null!==t?{type:"named",name:t,expression:r,location:Tr()}:r,location:Tr()}},Dt=function(e,t){return t.length>0?{type:"choice",alternatives:[e].concat(t),location:Tr()}:e},It=function(e,t){return null!==t?{type:"action",expression:e,code:t[0],codeLocation:t[1],location:Tr()}:e},jt=function(e,t){return t.length>0||"labeled"===e.type&&e.pick?{type:"sequence",elements:[e].concat(t),location:Tr()}:e},Nt=function(e,t,r){return r.type.startsWith("semantic_")&&Cr('"@" cannot be used on a semantic predicate',e),{type:"labeled",label:null!==t?t[0]:null,labelLocation:null!==t?t[1]:e,pick:!0,expression:r,location:Tr()}},Ut=function(e,t){return{type:"labeled",label:e[0],labelLocation:e[1],expression:t,location:Tr()}},qt=function(){return Tr()},Gt=function(e){return Sa.indexOf(e[0])>=0&&Cr("Label can't be a reserved word \"".concat(e[0],'"'),e[1]),e},Ht=function(e,t){return{type:OPS_TO_PREFIXED_TYPES[e],expression:t,location:Tr()}},zt=function(e,t){return{type:OPS_TO_SUFFIXED_TYPES[t],expression:e,location:Tr()}},Wt=function(e,t,r){var a=t[0],n=t[1];return"constant"===n.type&&0===n.value&&Cr("The maximum count of repetitions of the rule must be > 0",n.location),{type:"repeated",min:a,max:n,expression:e,delimiter:r,location:Tr()}},Vt=function(e,t){return[null!==e?e:{type:"constant",value:0},null!==t?t:{type:"constant",value:null}]},Yt=function(e){return[null,e]},Qt=function(e){return{type:"constant",value:e,location:Tr()}},Jt=function(e){return{type:"variable",value:e[0],location:Tr()}},Xt=function(e){return{type:"function",value:e[0],codeLocation:e[1],location:Tr()}},Kt=function(e){return"labeled"===e.type||"sequence"===e.type?{type:"group",expression:e,location:Tr()}:e},Zt=function(e,t){return{type:"library_ref",name:t[0],library:e[0],libraryNumber:-1,location:Tr()}},er=function(e){return{type:"rule_ref",name:e[0],location:Tr()}},tr=function(e,t){return{type:OPS_TO_SEMANTIC_PREDICATE_TYPES[e],code:t[0],codeLocation:t[1],location:Tr()}},rr=function(e,t){return[e+t.join(""),Tr()]},ar=function(e,t){return{type:"literal",value:e,ignoreCase:null!==t,location:Tr()}},nr=function(e){return e.join("")},or=function(e){return e.join("")},sr=function(e,t,r){return{type:"class",parts:t.filter((function(e){return""!==e})),inverted:null!==e,ignoreCase:null!==r,location:Tr()}},ir=function(t,r){return t.charCodeAt(0)>r.charCodeAt(0)&&Cr("Invalid character range: "+e.substring(yr,Ar)+"."),[t,r]},cr=function(){return""},ur=function(){return"\0"},pr=function(){return"\b"},lr=function(){return"\f"},fr=function(){return"\n"},dr=function(){return"\r"},mr=function(){return"\t"},gr=function(){return"\v"},$r=function(e){return String.fromCharCode(parseInt(e,16))},hr=function(e){return String.fromCharCode(parseInt(e,16))},xr=function(){return{type:"any",location:Tr()}},br=function(e){return[e,Tr()]},vr=function(e){return parseInt(e,10)},Ar=0|t.peg$currPos,yr=Ar,Sr=[{line:1,column:1}],_r=Ar,Er=t.peg$maxFailExpected||[],kr=0|t.peg$silentFails;if(t.startRule){if(!(t.startRule in o))throw new Error("Can't start parsing from rule \""+t.startRule+'".');s=o[t.startRule]}function Tr(){return Fr(yr,Ar)}function Cr(e,t){throw function(e,t){return new peg$SyntaxError(e,null,null,t)}(e,t=void 0!==t?t:Fr(yr,Ar))}function wr(e,t){return{type:"literal",text:e,ignoreCase:t}}function Pr(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function Rr(e){return{type:"other",description:e}}function Lr(t){var r,a=Sr[t];if(a)return a;if(t>=Sr.length)r=Sr.length-1;else for(r=t;!Sr[--r];);for(a={line:(a=Sr[r]).line,column:a.column};r_r&&(_r=Ar,Er=[]),Er.push(e))}function Br(){var t,r,n,o,s,i,c,u;if(t=Ar,r=Mr(),n=Ar,o=Aa(),s=function(){var t,r,n,o;return t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a&&(n=ba())!==a?(125===e.charCodeAt(Ar)?(o=d,Ar++):(o=a,0===kr&&Or(ge)),o!==a&&ya()!==a?(yr=t,t=Ot(n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),s!==a?n=s:(Ar=n,n=a),n===a&&(n=null),o=Ar,s=Aa(),i=function(){var e,t;return e=Ar,(t=ba())!==a&&ya()!==a?(yr=e,e=Bt(t)):(Ar=e,e=a),e}(),i!==a?o=i:(Ar=o,o=a),o===a&&(o=null),s=Aa(),i=[],c=Ar,(u=Gr())!==a?(Aa(),c=u):(Ar=c,c=a),c!==a)for(;c!==a;)i.push(c),c=Ar,(u=Gr())!==a?(Aa(),c=u):(Ar=c,c=a);else i=a;return i!==a?(yr=t,t=xt(r,n,o,i)):(Ar=t,t=a),t}function Mr(){var e,t;for(e=[],t=Dr();t!==a;)e.push(t),t=Dr();return e}function Dr(){var t,r,n,o,s,p,l,f;return t=Ar,Aa(),e.substr(Ar,6)===i?(r=i,Ar+=6):(r=a,0===kr&&Or(ue)),r!==a?(Aa(),n=function(){var t,r,n,o,s;return(t=Ir())===a&&(t=jr())===a&&(t=Ar,r=function(){var e,t;return e=Ar,(t=qr())!==a&&(yr=e,t=Et(t)),e=t}(),r!==a?(n=Ar,Aa(),44===e.charCodeAt(Ar)?(o=u,Ar++):(o=a,0===kr&&Or(le)),o!==a?(Aa(),(s=Ir())===a&&(s=jr()),s!==a?n=s:(Ar=n,n=a)):(Ar=n,n=a),n===a&&(n=null),yr=t,t=_t(r,n)):(Ar=t,t=a)),t}(),n!==a?(o=Aa(),s=function(){var t,r,n;return t=Ar,e.substr(Ar,4)===m?(r=m,Ar+=4):(r=a,0===kr&&Or($e)),r!==a?(Aa(),(n=Ur())!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a),t}(),s!==a?(p=Ar,l=Aa(),59===e.charCodeAt(Ar)?(f=c,Ar++):(f=a,0===kr&&Or(pe)),f!==a?p=l=[l,f]:(Ar=p,p=a),p===a&&(p=null),yr=t,t=yt(n,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,Aa(),e.substr(Ar,6)===i?(r=i,Ar+=6):(r=a,0===kr&&Or(ue)),r!==a?(Aa(),(n=Ur())!==a?(o=Ar,s=Aa(),59===e.charCodeAt(Ar)?(p=c,Ar++):(p=a,0===kr&&Or(pe)),p!==a?o=s=[s,p]:(Ar=o,o=a),o===a&&(o=null),yr=t,t=St(n)):(Ar=t,t=a)):(Ar=t,t=a)),t}function Ir(){var t,r,n,o;return t=Ar,42===e.charCodeAt(Ar)?(r=p,Ar++):(r=a,0===kr&&Or(fe)),r!==a?(Aa(),e.substr(Ar,2)===l?(n=l,Ar+=2):(n=a,0===kr&&Or(de)),n!==a?(Aa(),(o=qr())!==a?(yr=t,t=kt(o)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}function jr(){var t,r,n,o,s;return t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(Aa(),125===e.charCodeAt(Ar)?(n=d,Ar++):(n=a,0===kr&&Or(ge)),n!==a?(yr=t,t=Tt()):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(Aa(),n=function(){var t,r,n,o,s,i;for(t=Ar,r=[],n=Nr();n!==a;)r.push(n),n=Ar,o=Ar,s=Aa(),44===e.charCodeAt(Ar)?(i=u,Ar++):(i=a,0===kr&&Or(le)),i!==a?o=s=[s,i,Aa()]:(Ar=o,o=a),o!==a&&(o=Nr())===a?(Ar=n,n=a):n=o;return r.length<1?(Ar=t,t=a):t=r,t}(),n!==a?(Aa(),o=Ar,44===e.charCodeAt(Ar)?(s=u,Ar++):(s=a,0===kr&&Or(le)),s!==a?o=s=[s,Aa()]:(Ar=o,o=a),o===a&&(o=null),125===e.charCodeAt(Ar)?(s=d,Ar++):(s=a,0===kr&&Or(ge)),s!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)),t}function Nr(){var t,r,n,o;return t=Ar,r=function(){var e,t;return(e=oa())===a&&(e=Ar,(t=ca())!==a&&(yr=e,t=Lt(t)),e=t),e}(),r!==a?(Aa(),e.substr(Ar,2)===l?(n=l,Ar+=2):(n=a,0===kr&&Or(de)),n!==a?(Aa(),(o=qr())!==a?(yr=t,t=Ct(r,o)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=qr())!==a&&(yr=t,r=wt(r)),t=r),t}function Ur(){var e,t;return e=Ar,(t=ca())!==a&&(yr=e,t=Pt(t)),t}function qr(){var e,t;return e=Ar,t=function(){var e,t;return e=Ar,(t=oa())!==a&&(yr=e,t=Ft(t)),e=t}(),t!==a&&(yr=e,t=Rt(t)),t}function Gr(){var t,r,n,o,s;return t=Ar,(r=oa())!==a?(Aa(),n=Ar,(o=ca())!==a?(Aa(),n=o):(Ar=n,n=a),n===a&&(n=null),61===e.charCodeAt(Ar)?(o=g,Ar++):(o=a,0===kr&&Or(he)),o!==a?(Aa(),(s=Hr())!==a&&ya()!==a?(yr=t,t=Mt(r,n,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}function Hr(){var t,r,n,o,s,i;if(t=Ar,(r=zr())!==a){for(n=[],o=Ar,Aa(),47===e.charCodeAt(Ar)?(s=$,Ar++):(s=a,0===kr&&Or(xe)),s!==a?(Aa(),(i=zr())!==a?o=i:(Ar=o,o=a)):(Ar=o,o=a);o!==a;)n.push(o),o=Ar,Aa(),47===e.charCodeAt(Ar)?(s=$,Ar++):(s=a,0===kr&&Or(xe)),s!==a?(Aa(),(i=zr())!==a?o=i:(Ar=o,o=a)):(Ar=o,o=a);yr=t,t=Dt(r,n)}else Ar=t,t=a;return t}function zr(){var e,t,r,n;return e=Ar,t=function(){var e,t,r,n,o;if(e=Ar,(t=Wr())!==a){for(r=[],n=Ar,Aa(),(o=Wr())!==a?n=o:(Ar=n,n=a);n!==a;)r.push(n),n=Ar,Aa(),(o=Wr())!==a?n=o:(Ar=n,n=a);yr=e,e=jt(t,r)}else Ar=e,e=a;return e}(),t!==a?(r=Ar,Aa(),(n=ba())!==a?r=n:(Ar=r,r=a),r===a&&(r=null),yr=e,e=It(t,r)):(Ar=e,e=a),e}function Wr(){var t,r,n,o;return t=Ar,r=function(){var t,r;return t=Ar,64===e.charCodeAt(Ar)?(r=h,Ar++):(r=a,0===kr&&Or(be)),r!==a&&(yr=t,r=qt()),t=r}(),r!==a?((n=Vr())===a&&(n=null),(o=Yr())!==a?(yr=t,t=Nt(r,n,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=Vr())!==a?(n=Aa(),(o=Yr())!==a?(yr=t,t=Ut(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Yr())),t}function Vr(){var t,r,n;return t=Ar,(r=oa())!==a?(Aa(),58===e.charCodeAt(Ar)?(n=x,Ar++):(n=a,0===kr&&Or(ve)),n!==a?(yr=t,t=Gt(r)):(Ar=t,t=a)):(Ar=t,t=a),t}function Yr(){var t,r,n;return t=Ar,r=function(){var t;return t=e.charAt(Ar),W.test(t)?Ar++:(t=a,0===kr&&Or(Ae)),t}(),r!==a?(Aa(),(n=Qr())!==a?(yr=t,t=Ht(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Qr()),t}function Qr(){var t,r,n;return t=Ar,(r=Xr())!==a?(Aa(),n=function(){var t;return t=e.charAt(Ar),V.test(t)?Ar++:(t=a,0===kr&&Or(ye)),t}(),n!==a?(yr=t,t=zt(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=function(){var t,r,n,o,s,i,c;return t=Ar,(r=Xr())!==a?(Aa(),124===e.charCodeAt(Ar)?(n=b,Ar++):(n=a,0===kr&&Or(Se)),n!==a?(Aa(),o=function(){var t,r,n,o;return t=Ar,(r=Jr())===a&&(r=null),Aa(),e.substr(Ar,2)===v?(n=v,Ar+=2):(n=a,0===kr&&Or(_e)),n!==a?(Aa(),(o=Jr())===a&&(o=null),yr=t,t=Vt(r,o)):(Ar=t,t=a),t===a&&(t=Ar,(r=Jr())!==a&&(yr=t,r=Yt(r)),t=r),t}(),o!==a?(Aa(),s=Ar,44===e.charCodeAt(Ar)?(i=u,Ar++):(i=a,0===kr&&Or(le)),i!==a?(Aa(),(c=Hr())!==a?(Aa(),s=c):(Ar=s,s=a)):(Ar=s,s=a),s===a&&(s=null),124===e.charCodeAt(Ar)?(i=b,Ar++):(i=a,0===kr&&Or(Se)),i!==a?(yr=t,t=Wt(r,o,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=Xr())),t}function Jr(){var t,r;return t=Ar,r=function(){var t,r,n,o;if(t=Ar,r=Ar,n=[],(o=ha())!==a)for(;o!==a;)n.push(o),o=ha();else n=a;return(r=n!==a?e.substring(r,Ar):n)!==a&&(yr=t,r=vr(r)),t=r}(),r!==a&&(yr=t,r=Qt(r)),(t=r)===a&&(t=Ar,(r=oa())!==a&&(yr=t,r=Jt(r)),(t=r)===a&&(t=Ar,(r=ba())!==a&&(yr=t,r=Xt(r)),t=r)),t}function Xr(){var t,r,n,o;return t=function(){var t,r,n;return kr++,t=Ar,(r=ca())!==a?(105===e.charCodeAt(Ar)?(n=P,Ar++):(n=a,0===kr&&Or(ze)),n===a&&(n=null),yr=t,t=ar(r,n)):(Ar=t,t=a),kr--,t===a&&(r=a,0===kr&&Or(He)),t}(),t===a&&(t=function(){var t,r,n,o,s,i;if(kr++,t=Ar,91===e.charCodeAt(Ar)?(r=F,Ar++):(r=a,0===kr&&Or(Ke)),r!==a){for(94===e.charCodeAt(Ar)?(n=O,Ar++):(n=a,0===kr&&Or(Ze)),n===a&&(n=null),o=[],(s=la())===a&&(s=fa());s!==a;)o.push(s),(s=la())===a&&(s=fa());93===e.charCodeAt(Ar)?(s=B,Ar++):(s=a,0===kr&&Or(et)),s!==a?(105===e.charCodeAt(Ar)?(i=P,Ar++):(i=a,0===kr&&Or(ze)),i===a&&(i=null),yr=t,t=sr(n,o,i)):(Ar=t,t=a)}else Ar=t,t=a;return kr--,t===a&&(r=a,0===kr&&Or(Xe)),t}(),t===a&&(t=function(){var t,r;return t=Ar,46===e.charCodeAt(Ar)?(r=S,Ar++):(r=a,0===kr&&Or(Te)),r!==a&&(yr=t,r=xr()),t=r}(),t===a&&(t=function(){var t,r,n,o,s,i,c;return t=Ar,(r=oa())!==a?(46===e.charCodeAt(Ar)?(n=S,Ar++):(n=a,0===kr&&Or(Te)),n!==a&&(o=oa())!==a?(yr=t,t=Zt(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=oa())!==a?(n=Ar,kr++,o=Ar,s=Aa(),i=Ar,(c=ca())!==a?i=c=[c,Aa()]:(Ar=i,i=a),i===a&&(i=null),61===e.charCodeAt(Ar)?(c=g,Ar++):(c=a,0===kr&&Or(he)),c!==a?o=s=[s,i,c]:(Ar=o,o=a),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a?(yr=t,t=er(r)):(Ar=t,t=a)):(Ar=t,t=a)),t}(),t===a&&(t=function(){var t,r,n;return t=Ar,r=function(){var t;return t=e.charAt(Ar),Y.test(t)?Ar++:(t=a,0===kr&&Or(Ce)),t}(),r!==a?(Aa(),(n=ba())!==a?(yr=t,t=tr(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=Ar,40===e.charCodeAt(Ar)?(r=A,Ar++):(r=a,0===kr&&Or(Ee)),r!==a?(Aa(),(n=Hr())!==a?(Aa(),41===e.charCodeAt(Ar)?(o=y,Ar++):(o=a,0===kr&&Or(ke)),o!==a?(yr=t,t=Kt(n)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)))))),t}function Kr(){var t;return e.length>Ar?(t=e.charAt(Ar),Ar++):(t=a,0===kr&&Or(ce)),t}function Zr(){var t;return kr++,t=e.charAt(Ar),Q.test(t)?Ar++:(t=a,0===kr&&Or(Pe)),kr--,t===a&&0===kr&&Or(we),t}function ea(){var t;return t=e.charAt(Ar),J.test(t)?Ar++:(t=a,0===kr&&Or(Re)),t}function ta(){var t;return kr++,10===e.charCodeAt(Ar)?(t=_,Ar++):(t=a,0===kr&&Or(Fe)),t===a&&(e.substr(Ar,2)===E?(t=E,Ar+=2):(t=a,0===kr&&Or(Oe)),t===a&&(t=e.charAt(Ar),X.test(t)?Ar++:(t=a,0===kr&&Or(Be)))),kr--,t===a&&0===kr&&Or(Le),t}function ra(){var t;return kr++,(t=function(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===k?(r=k,Ar+=2):(r=a,0===kr&&Or(De)),r!==a){for(n=[],o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);e.substr(Ar,2)===T?(o=T,Ar+=2):(o=a,0===kr&&Or(Ie)),o!==a?t=r=[r,n,o]:(Ar=t,t=a)}else Ar=t,t=a;return t}())===a&&(t=na()),kr--,t===a&&0===kr&&Or(Me),t}function aa(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===k?(r=k,Ar+=2):(r=a,0===kr&&Or(De)),r!==a){for(n=[],o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),i===a&&(i=ea()),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),i===a&&(i=ea()),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);e.substr(Ar,2)===T?(o=T,Ar+=2):(o=a,0===kr&&Or(Ie)),o!==a?t=r=[r,n,o]:(Ar=t,t=a)}else Ar=t,t=a;return t}function na(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===C?(r=C,Ar+=2):(r=a,0===kr&&Or(je)),r!==a){for(n=[],o=Ar,s=Ar,kr++,i=ea(),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=ea(),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);t=r=[r,n]}else Ar=t,t=a;return t}function oa(){var e,t,r,n;if(kr++,e=Ar,(t=sa())!==a){for(r=[],n=ia();n!==a;)r.push(n),n=ia();yr=e,e=rr(t,r)}else Ar=e,e=a;return kr--,e===a&&(t=a,0===kr&&Or(Ne)),e}function sa(){var t,r,n;return t=e.charAt(Ar),K.test(t)?Ar++:(t=a,0===kr&&Or(Ue)),t===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=$a())!==a?t=n:(Ar=t,t=a)),t}function ia(){var t;return(t=sa())===a&&(t=e.charAt(Ar),Z.test(t)?Ar++:(t=a,0===kr&&Or(Ge))),t}function ca(){var t,r,n,o;if(kr++,t=Ar,34===e.charCodeAt(Ar)?(r=R,Ar++):(r=a,0===kr&&Or(Ve)),r!==a){for(n=[],o=ua();o!==a;)n.push(o),o=ua();34===e.charCodeAt(Ar)?(o=R,Ar++):(o=a,0===kr&&Or(Ve)),o!==a?(yr=t,t=nr(n)):(Ar=t,t=a)}else Ar=t,t=a;if(t===a)if(t=Ar,39===e.charCodeAt(Ar)?(r=L,Ar++):(r=a,0===kr&&Or(Ye)),r!==a){for(n=[],o=pa();o!==a;)n.push(o),o=pa();39===e.charCodeAt(Ar)?(o=L,Ar++):(o=a,0===kr&&Or(Ye)),o!==a?(yr=t,t=or(n)):(Ar=t,t=a)}else Ar=t,t=a;return kr--,t===a&&(r=a,0===kr&&Or(We)),t}function ua(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),ee.test(o)?Ar++:(o=a,0===kr&&Or(Qe)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function pa(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),te.test(o)?Ar++:(o=a,0===kr&&Or(Je)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function la(){var t,r,n,o;return t=Ar,(r=fa())!==a?(45===e.charCodeAt(Ar)?(n=M,Ar++):(n=a,0===kr&&Or(tt)),n!==a&&(o=fa())!==a?(yr=t,t=ir(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t}function fa(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),re.test(o)?Ar++:(o=a,0===kr&&Or(rt)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function da(){var t,r;return t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&ta()!==a?(yr=t,t=cr()):(Ar=t,t=a),t}function ma(){var t,r,n,o;return t=function(){var t;return(t=ga())===a&&(t=function(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=function(){var t;return(t=ga())===a&&(t=e.charAt(Ar),ne.test(t)?Ar++:(t=a,0===kr&&Or(lt))),t}(),o===a&&(o=ea()),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),t=r!==a?e.substring(t,Ar):r}()),t}(),t===a&&(t=Ar,48===e.charCodeAt(Ar)?(r=D,Ar++):(r=a,0===kr&&Or(at)),r!==a?(n=Ar,kr++,o=ha(),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a?(yr=t,t=ur()):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=function(){var t,r,n,o,s,i;return t=Ar,120===e.charCodeAt(Ar)?(r=H,Ar++):(r=a,0===kr&&Or(ft)),r!==a?(n=Ar,o=Ar,(s=xa())!==a&&(i=xa())!==a?o=s=[s,i]:(Ar=o,o=a),(n=o!==a?e.substring(n,Ar):o)!==a?(yr=t,t=$r(n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=$a()))),t}function ga(){var t,r;return t=e.charAt(Ar),ae.test(t)?Ar++:(t=a,0===kr&&Or(nt)),t===a&&(t=Ar,98===e.charCodeAt(Ar)?(r=I,Ar++):(r=a,0===kr&&Or(ot)),r!==a&&(yr=t,r=pr()),(t=r)===a&&(t=Ar,102===e.charCodeAt(Ar)?(r=j,Ar++):(r=a,0===kr&&Or(st)),r!==a&&(yr=t,r=lr()),(t=r)===a&&(t=Ar,110===e.charCodeAt(Ar)?(r=N,Ar++):(r=a,0===kr&&Or(it)),r!==a&&(yr=t,r=fr()),(t=r)===a&&(t=Ar,114===e.charCodeAt(Ar)?(r=U,Ar++):(r=a,0===kr&&Or(ct)),r!==a&&(yr=t,r=dr()),(t=r)===a&&(t=Ar,116===e.charCodeAt(Ar)?(r=q,Ar++):(r=a,0===kr&&Or(ut)),r!==a&&(yr=t,r=mr()),(t=r)===a&&(t=Ar,118===e.charCodeAt(Ar)?(r=G,Ar++):(r=a,0===kr&&Or(pt)),r!==a&&(yr=t,r=gr()),t=r)))))),t}function $a(){var t,r,n,o,s,i,c,u;return t=Ar,117===e.charCodeAt(Ar)?(r=z,Ar++):(r=a,0===kr&&Or(dt)),r!==a?(n=Ar,o=Ar,(s=xa())!==a&&(i=xa())!==a&&(c=xa())!==a&&(u=xa())!==a?o=s=[s,i,c,u]:(Ar=o,o=a),(n=o!==a?e.substring(n,Ar):o)!==a?(yr=t,t=hr(n)):(Ar=t,t=a)):(Ar=t,t=a),t}function ha(){var t;return t=e.charAt(Ar),oe.test(t)?Ar++:(t=a,0===kr&&Or(mt)),t}function xa(){var t;return t=e.charAt(Ar),se.test(t)?Ar++:(t=a,0===kr&&Or(gt)),t}function ba(){var t,r,n,o;return kr++,t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(n=function(){var e,t;return e=Ar,t=va(),yr=e,e=t=br(t)}(),125===e.charCodeAt(Ar)?(o=d,Ar++):(o=a,0===kr&&Or(ge)),o!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a),kr--,t===a&&(r=a,0===kr&&Or($t)),t}function va(){var t,r,n,o,s,i;if(t=Ar,r=[],n=[],o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a),o!==a)for(;o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);else n=a;for(n===a&&(n=Ar,123===e.charCodeAt(Ar)?(o=f,Ar++):(o=a,0===kr&&Or(me)),o!==a?(s=va(),125===e.charCodeAt(Ar)?(i=d,Ar++):(i=a,0===kr&&Or(ge)),i!==a?n=o=[o,s,i]:(Ar=n,n=a)):(Ar=n,n=a));n!==a;){if(r.push(n),n=[],o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a),o!==a)for(;o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);else n=a;n===a&&(n=Ar,123===e.charCodeAt(Ar)?(o=f,Ar++):(o=a,0===kr&&Or(me)),o!==a?(s=va(),125===e.charCodeAt(Ar)?(i=d,Ar++):(i=a,0===kr&&Or(ge)),i!==a?n=o=[o,s,i]:(Ar=n,n=a)):(Ar=n,n=a))}return e.substring(t,Ar)}function Aa(){var e,t;for(e=[],(t=Zr())===a&&(t=ta())===a&&(t=ra());t!==a;)e.push(t),(t=Zr())===a&&(t=ta())===a&&(t=ra());return e}function ya(){var t,r,n,o;if(t=[],r=Ar,n=Aa(),59===e.charCodeAt(Ar)?(o=c,Ar++):(o=a,0===kr&&Or(pe)),o!==a?r=n=[n,o]:(Ar=r,r=a),r!==a)for(;r!==a;)t.push(r),r=Ar,n=Aa(),59===e.charCodeAt(Ar)?(o=c,Ar++):(o=a,0===kr&&Or(pe)),o!==a?r=n=[n,o]:(Ar=r,r=a);else t=a;return t===a&&(t=Ar,r=function(){var e,t;for(e=[],(t=Zr())===a&&(t=aa());t!==a;)e.push(t),(t=Zr())===a&&(t=aa());return e}(),(n=na())===a&&(n=null),(o=ta())!==a?t=r=[r,n,o]:(Ar=t,t=a),t===a&&(t=Ar,r=Aa(),n=function(){var t,r;return t=Ar,kr++,e.length>Ar?(r=e.charAt(Ar),Ar++):(r=a,0===kr&&Or(ce)),kr--,r===a?t=void 0:(Ar=t,t=a),t}(),n!==a?t=r=[r,n]:(Ar=t,t=a))),t}var Sa=t.reservedWords||[];if(r=s(),t.peg$library)return{peg$result:r,peg$currPos:Ar,peg$FAILED:a,peg$maxFailExpected:Er,peg$maxFailPos:_r};if(r!==a&&Ar===e.length)return r;throw r!==a&&Ar0){for(t=1,r=1;t0&&(t.forEach((function(e){o.push("var "+e+' = require("'+stringEscape$1(u[e])+'");')})),o.push(""));for(var s=e.imports.length,i=0;i0&&(n.forEach((function(e){o.push("import "+e+' from "'+stringEscape$1(u[e])+'";')})),o.push(""));for(var s=0;s targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))'," ? this.location.source.offset(s)"," : s;",' var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", offset_s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + offset_s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),t.trace&&u.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var w="{ "+c.map((function(e){return e+": "+$(e)})).join(", ")+" }",P=$(c[0]);if(u.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+w+";"," var peg$startRuleFunction = "+P+";","",new SourceNode$2(null,null,t.grammarSource,__spreadArray$4([r.map((function(e,t){return" var "+l(t)+' = "'+stringEscape$1(e)+'";'})).concat("",n.map((function(e,t){return" var "+f(t)+" = /^["+((r=e).inverted?"^":"")+r.value.map((function(e){return Array.isArray(e)?regexpClassEscape$1(e[0])+"-"+regexpClassEscape$1(e[1]):regexpClassEscape$1(e)})).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r}))).concat("",o.map((function(e,t){return" var "+d(t)+" = "+function(e){switch(e.type){case"rule":return'peg$otherExpectation("'+stringEscape$1(e.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape$1(e.value)+'", '+e.ignoreCase+")";case"class":return"peg$classExpectation(["+e.value.map((function(e){return Array.isArray(e)?'["'+stringEscape$1(e[0])+'", "'+stringEscape$1(e[1])+'"]':'"'+stringEscape$1(e)+'"'})).join(", ")+"], "+e.inverted+", "+e.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(e)+")")}}(e)+";"}))).concat("").join("\n")],s.map((function(e,t){return wrapInSourceNode("\n var ".concat(m(t)," = function(").concat(e.params.join(", "),") {"),e.body,e.location,"};")})),!0)),""," var peg$currPos = options.peg$currPos | 0;"," var peg$savedPos = peg$currPos;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = peg$currPos;"," var peg$maxFailExpected = options.peg$maxFailExpected || [];"," var peg$silentFails = options.peg$silentFails | 0;",""),t.cache&&u.push(" var peg$resultsCache = {};",""),t.trace&&u.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),u.push(" var peg$result;",""," if (options.startRule) {"," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," if (pos >= peg$posDetailsCache.length) {"," p = peg$posDetailsCache.length - 1;"," } else {"," p = pos;"," while (!peg$posDetailsCache[--p]) {}"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos, offset) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," var res = {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };",' if (offset && peg$source && (typeof peg$source.offset === "function")) {'," res.start = peg$source.offset(res.start);"," res.end = peg$source.offset(res.end);"," }"," return res;"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),e.imports.length>0&&u.push(" var peg$assign = Object.assign || function(t) {"," var i, s;"," for (i = 1; i < arguments.length; i++) {"," s = arguments[i];"," for (var p in s) {"," if (Object.prototype.hasOwnProperty.call(s, p)) {"," t[p] = s[p];"," }"," }"," }"," return t;"," };",""," function peg$callLibrary(lib, startRule) {"," const opts = peg$assign({}, options, {"," startRule: startRule,"," peg$currPos: peg$currPos,"," peg$silentFails: peg$silentFails,"," peg$library: true,"," peg$maxFailExpected: peg$maxFailExpected"," });"," const res = lib.parse(input, opts);"," peg$currPos = res.peg$currPos;"," peg$maxFailPos = res.peg$maxFailPos;"," peg$maxFailExpected = res.peg$maxFailExpected;"," return (res.peg$result === res.peg$FAILED) ? peg$FAILED : res.peg$result;"," }",""),e.rules.forEach((function(n){u.push.apply(u,p(function(n){var o=[],s=n.bytecode,c=new Stack$1(n.name,"s","var",s),u=function t(n){var o=0,s=n.length,u=[],h=void 0;function x(e,r,a){var s=r+3,i=n[o+s-2],l=n[o+s-1],f=c.checkedIf(o,(function(){return o+=s+i,(a||t)(n.slice(o-i,o))}),l>0?function(){return o+=l,t(n.slice(o-l,o))}:null),d=f[0],m=f[1];u.push("if ("+e+") {"),u.push.apply(u,p(d)),l>0&&(u.push("} else {"),u.push.apply(u,p(m))),u.push("}")}function b(e,r,a){var s=r+3,i=1===a?"input.charAt(peg$currPos)":"input.substr(peg$currPos, "+a+")",p=null;n[o+s]===op$1.ACCEPT_N&&n[o+s+1]===a&&(u.push(c.push(i)),i=c.pop(),p=function(e){c.sp++;var r=t(e.slice(2));return r.unshift(1===a?"peg$currPos++;":"peg$currPos += "+a+";"),r}),x(e(i,null!==p),r,p)}for(var v=function(){switch(n[o]){case op$1.PUSH_EMPTY_STRING:u.push(c.push("''")),o++;break;case op$1.PUSH_CURR_POS:u.push(c.push("peg$currPos")),o++;break;case op$1.PUSH_UNDEFINED:u.push(c.push("undefined")),o++;break;case op$1.PUSH_NULL:u.push(c.push("null")),o++;break;case op$1.PUSH_FAILED:u.push(c.push("peg$FAILED")),o++;break;case op$1.PUSH_EMPTY_ARRAY:u.push(c.push("[]")),o++;break;case op$1.POP:c.pop(),o++;break;case op$1.POP_CURR_POS:u.push("peg$currPos = "+c.pop()+";"),o++;break;case op$1.POP_N:c.pop(n[o+1]),o+=2;break;case op$1.NIP:h=c.pop(),c.pop(),u.push(c.push(h)),o++;break;case op$1.APPEND:h=c.pop(),u.push(c.top()+".push("+h+");"),o++;break;case op$1.WRAP:u.push(c.push("["+c.pop(n[o+1]).join(", ")+"]")),o+=2;break;case op$1.TEXT:u.push(c.push("input.substring("+c.pop()+", peg$currPos)")),o++;break;case op$1.PLUCK:var s=n[o+3-1],v=3+s;h=n.slice(o+3,o+v),h=1===s?c.index(h[0]):"[ ".concat(h.map((function(e){return c.index(e)})).join(", ")," ]"),c.pop(n[o+1]),u.push(c.push(h)),o+=v;break;case op$1.IF:x(c.top(),0);break;case op$1.IF_ERROR:x(c.top()+" === peg$FAILED",0);break;case op$1.IF_NOT_ERROR:x(c.top()+" !== peg$FAILED",0);break;case op$1.IF_LT:x(c.top()+".length < "+n[o+1],1);break;case op$1.IF_GE:x(c.top()+".length >= "+n[o+1],1);break;case op$1.IF_LT_DYNAMIC:x(c.top()+".length < ("+c.index(n[o+1])+"|0)",1);break;case op$1.IF_GE_DYNAMIC:x(c.top()+".length >= ("+c.index(n[o+1])+"|0)",1);break;case op$1.WHILE_NOT_ERROR:T=c.top()+" !== peg$FAILED",C=n[o+2-1],w=c.checkedLoop(o,(function(){return o+=2+C,t(n.slice(o-C,o))})),u.push("while ("+T+") {"),u.push.apply(u,p(w)),u.push("}");break;case op$1.MATCH_ANY:x("input.length > peg$currPos",0);break;case op$1.MATCH_STRING:var A=n[o+1],y=r[A];b((function(e,t){return y.length>1?"".concat(e," === ").concat(l(A)):(e=t?"".concat(e,".charCodeAt(0)"):"input.charCodeAt(peg$currPos)","".concat(e," === ").concat(y.charCodeAt(0)))}),1,y.length);break;case op$1.MATCH_STRING_IC:var S=n[o+1];b((function(e){return"".concat(e,".toLowerCase() === ").concat(l(S))}),1,r[S].length);break;case op$1.MATCH_CHAR_CLASS:var _=n[o+1];b((function(e){return"".concat(f(_),".test(").concat(e,")")}),1,1);break;case op$1.ACCEPT_N:u.push(c.push(n[o+1]>1?"input.substr(peg$currPos, "+n[o+1]+")":"input.charAt(peg$currPos)")),u.push(n[o+1]>1?"peg$currPos += "+n[o+1]+";":"peg$currPos++;"),o+=2;break;case op$1.ACCEPT_STRING:u.push(c.push(l(n[o+1]))),u.push(r[n[o+1]].length>1?"peg$currPos += "+r[n[o+1]].length+";":"peg$currPos++;"),o+=2;break;case op$1.FAIL:u.push(c.push("peg$FAILED")),u.push("if (peg$silentFails === 0) { peg$fail("+d(n[o+1])+"); }"),o+=2;break;case op$1.LOAD_SAVED_POS:u.push("peg$savedPos = "+c.index(n[o+1])+";"),o+=2;break;case op$1.UPDATE_SAVED_POS:u.push("peg$savedPos = peg$currPos;"),o++;break;case op$1.CALL:h=function(e){var t=n[o+4-1];return m(n[o+1])+"("+n.slice(o+4,o+4+t).map((function(e){return c.index(e)})).join(", ")+")"}(),c.pop(n[o+2]),u.push(c.push(h)),o+=4+n[o+3];break;case op$1.RULE:u.push(c.push($(e.rules[n[o+1]].name)+"()")),o+=2;break;case op$1.LIBRARY_RULE:var E=n[o+2],k=-1===E?"":', "'+i[E]+'"';u.push(c.push("peg$callLibrary("+g(n[o+1])+k+")")),o+=3;break;case op$1.SILENT_FAILS_ON:u.push("peg$silentFails++;"),o++;break;case op$1.SILENT_FAILS_OFF:u.push("peg$silentFails--;"),o++;break;case op$1.SOURCE_MAP_PUSH:c.sourceMapPush(u,a[n[o+1]]),o+=2;break;case op$1.SOURCE_MAP_POP:c.sourceMapPop(),o++;break;case op$1.SOURCE_MAP_LABEL_PUSH:c.labels[n[o+1]]={label:r[n[o+2]],location:a[n[o+3]]},o+=4;break;case op$1.SOURCE_MAP_LABEL_POP:delete c.labels[n[o+1]],o+=2;break;default:throw new Error("Invalid opcode: "+n[o]+".")}var T,C,w};oi?-1:1:0}));for(var t="",r="",a=0;a=s.charCodeAt(0)?(e.splice(a--,1),e[a]=[t,r=i]):(t=s,r=i)}return e}function mergeCharacterClasses$1(e){var t=Object.create(null);e.rules.forEach((function(e){return t[e.name]=e.expression}));var r=Object.create(null),a=[function(e,a){if("class"===e.type&&!e.inverted)return a&&((e=__assign$1({},e)).parts=__spreadArray$3([],e.parts,!0)),e;if("literal"===e.type&&1===e.value.length)return{type:"class",parts:[e.value],inverted:!1,ignoreCase:e.ignoreCase,location:e.location};if("rule_ref"===e.type){var s=t[e.name];if(s){r[e.name]||(r[e.name]=!0,o(s));var i=n(s,!0);return i&&(i.location=e.location),i}}return null},visitor$7.build({choice:function(e){var t=null,r=!1;e.alternatives.forEach((function(a,s){var i;o(a);var c=n(a);c?t&&t.ignoreCase===c.ignoreCase?((i=t.parts).push.apply(i,c.parts),e.alternatives[s-1]=t,e.alternatives[s]=t,t.location={source:t.location.source,start:t.location.start,end:c.location.end},r=!0):t=c:t=null})),r&&(e.alternatives=e.alternatives.filter((function(e,t,r){return!t||e!==r[t-1]})),e.alternatives.forEach((function(t,r){"class"===t.type&&(t.parts=cleanParts(t.parts),1!==t.parts.length||Array.isArray(t.parts[0])||t.inverted||(e.alternatives[r]={type:"literal",value:t.parts[0],ignoreCase:t.ignoreCase,location:t.location}))})),1===e.alternatives.length&&cloneOver(e,e.alternatives[0]))},text:function(e){if(o(e.expression),"class"===e.expression.type||"literal"===e.expression.type){var t=e.location;cloneOver(e,e.expression),e.location=t}}})],n=a[0],o=a[1];e.rules.forEach((function(e){r[e.name]=!0,o(e.expression)}))}var mergeCharacterClasses_1=mergeCharacterClasses$1;function reportDuplicateImports$1(e,t,r){for(var a={},n=0,o=e.imports;n0||(a.push(e.name),o(e.expression),a.pop())},sequence:function(t){r.errors>0||t.elements.every((function(t){return o(t),!(r.errors>0||asts$3.alwaysConsumesOnSuccess(e,t))}))},repeated:function(t){r.errors>0||(o(t.expression),t.delimiter&&!asts$3.alwaysConsumesOnSuccess(e,t.expression)&&o(t.delimiter))},rule_ref:function(t){if(!(r.errors>0)){n.push(t);var s=asts$3.findRule(e,t.name);if(-1!==a.indexOf(t.name))return a.push(t.name),void r.error("Possible infinite loop when parsing (left recursion: "+a.join(" -> ")+")",s.nameLocation,n.map((function(e,t,r){return{message:t+1!==r.length?"Step ".concat(t+1,': call of the rule "').concat(e.name,'" without input consumption'):"Step ".concat(t+1,": call itself without input consumption - left recursion"),location:e.location}})));s&&o(s),n.pop()}}});o(e)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$2=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(e,t,r){var a=visitor$3.build({zero_or_more:function(t){asts$2.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},one_or_more:function(t){asts$2.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},repeated:function(t){if(t.delimiter&&a(t.delimiter),!(asts$2.alwaysConsumesOnSuccess(e,t.expression)||t.delimiter&&asts$2.alwaysConsumesOnSuccess(e,t.delimiter)))if(null===t.max.value)r.error("Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",t.location);else{var n=t.min?t.min:t.max;r.warning("constant"===n.type&&"constant"===t.max.type?"An expression may not consume any input and may always match ".concat(t.max.value," times"):"An expression may not consume any input and may always match with a maximum repetition count",t.location)}}});a(e)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts$1=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(e,t,r){visitor$2.build({rule_ref:function(t){asts$1.findRule(e,t.name)||r.error('Rule "'.concat(t.name,'" is not defined'),t.location)}})(e)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(e,t,r){var a=visitor$1.build({action:function(e){a(e.expression,e)},labeled:function(e,t){e.pick&&t&&r.error('"@" cannot be used with an action block',e.labelLocation,[{message:"Action block location",location:t.codeLocation}]),a(e.expression)}});a(e)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n0:e&&"function"==typeof e.offset}var compiler$2={visitor:visitor,passes:{prepare:[addImportedRules,reportInfiniteRecursion],check:[reportUndefinedRules,reportDuplicateRules,reportDuplicateLabels,reportInfiniteRepetition,reportIncorrectPlucking,reportDuplicateImports],transform:[fixLibraryNumbers,removeProxyRules,mergeCharacterClasses,inferenceMatchResult],generate:[generateBytecode,generateJS]},compile:function(ast,passes,options){if(options=void 0!==options?options:{},options=processOptions(options,{allowedStartRules:[ast.rules[0].name],cache:!1,dependencies:{},exportVar:null,format:"bare",output:"parser",trace:!1}),!Array.isArray(options.allowedStartRules))throw new Error("allowedStartRules must be an array");if(0===options.allowedStartRules.length)throw new Error("Must have at least one start rule");var allRules=ast.rules.map((function(e){return e.name}));if(options.allowedStartRules.some((function(e){return"*"===e})))options.allowedStartRules=allRules;else for(var _i=0,_a=options.allowedStartRules;_i<_a.length;_i++){var rule=_a[_i];if(-1===allRules.indexOf(rule))throw new Error('Unknown start rule "'.concat(rule,'"'))}if(("source-and-map"===options.output||"source-with-inline-map"===options.output)&&!isSourceMapCapable(options.grammarSource))throw new Error("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps");var session=new Session$1(options);switch(Object.keys(passes).forEach((function(e){session.stage=e,session.info("Process stage ".concat(e)),passes[e].forEach((function(t){session.info("Process pass ".concat(e,".").concat(t.name)),t(ast,options,session)})),session.checkErrors()})),options.output){case"parser":return eval(ast.code.toString());case"source":return ast.code.toString();case"source-and-map":return ast.code;case"source-with-inline-map":if("undefined"==typeof TextEncoder)throw new Error("TextEncoder is not supported by this platform");var sourceMap=ast.code.toStringWithSourceMap(),encoder=new TextEncoder,b64=base64$3(encoder.encode(JSON.stringify(sourceMap.map.toJSON())));return sourceMap.code+"//# sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(b64,"\n");case"ast":return ast;default:throw new Error("Invalid output format: "+options.output+".")}}},compiler_1=compiler$2,GrammarError$2=grammarError,GrammarLocation$1=grammarLocation,asts=asts_1,compiler$1=compiler_1,parser$3=parser$4,VERSION=version$1,RESERVED_WORDS=["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","null","true","false","enum","implements","interface","let","package","private","protected","public","static","yield","await","arguments","eval"],peg$4={VERSION:VERSION,RESERVED_WORDS:RESERVED_WORDS,GrammarError:GrammarError$2,GrammarLocation:GrammarLocation$1,parser:parser$3,compiler:compiler$1,generate:function(e,t){var r,a,n="plugins"in(t=void 0!==t?t:{})?t.plugins:[],o={parser:peg$4.parser,passes:(r=peg$4.compiler.passes,a={},Object.keys(r).forEach((function(e){a[e]=r[e].slice()})),a),reservedWords:peg$4.RESERVED_WORDS.slice()};n.forEach((function(e){e.use(o,t)})),Array.isArray(e)||(e=[{source:t.grammarSource,text:e}]);var s=asts.combine(e.map((function(e){var t=e.source,r=e.text;return o.parser.parse(r,{grammarSource:t,reservedWords:o.reservedWords})})));return peg$4.compiler.compile(s,o.passes,t)}},peg_1=peg$4,utils={},chai$o=require$$0,Call=function(){function e(e){this.args=e}return e.prototype.calledWithExactly=function(){for(var e=[],t=0;t=18"},require$$2={name:name,version:version,description:description,keywords:keywords,homepage:homepage,repository:repository,bugs:bugs,license:license,author:author,main:main,browser:browser,unpkg:unpkg,jsdelivr:jsdelivr,types:types,bin:bin,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies,browserslist:browserslist,engines:engines},sourceMap={},sourceMapGenerator={},base64Vlq={},base64$2={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$2.encode=function(e){if(0<=e&&e>>=VLQ_BASE_SHIFT,a>0&&(t|=VLQ_CONTINUATION_BIT),r+=base64$1.encode(t)}while(a>0);return r};var util$4={},urlBrowser=require$$0$1.URL;const URL$1=urlBrowser;function getArg(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$4.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(e){return e}function toSetString(e){return isProtoString(e)?"$"+e:e}function fromSetString(e){return isProtoString(e)?e.slice(1):e}function isProtoString(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp(e.name,t.name)))))}function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}util$4.toSetString=supportsNullProto?identity:toSetString,util$4.fromSetString=supportsNullProto?identity:fromSetString,util$4.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated,util$4.parseSourceMapInput=parseSourceMapInput;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(e){return t=>{const r=getURLType(t),a=buildSafeBase(t),n=new URL$1(t,a);e(n);const o=n.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(a,o)}}function withBase(e,t){return new URL$1(e,t).toString()}function buildUniqueSegment(e,t){let r=0;for(;;){const a=e+r++;if(-1===t.indexOf(a))return a}}function buildSafeBase(e){const t=e.split("..").length-1,r=buildUniqueSegment("p",e);let a=`${PROTOCOL_AND_HOST}/`;for(let e=0;e0&&!a[a.length-1]&&a.pop();r.length>0&&a.length>0&&r[0]===a[0];)r.shift(),a.shift();return a.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory=createSafeHandler((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),trimFilename=createSafeHandler((e=>{e.href=new URL$1(".",e.toString()).toString()})),normalize=createSafeHandler((e=>{}));function join(e,t){const r=getURLType(t),a=getURLType(e);if(e=ensureDirectory(e),"absolute"===r)return withBase(t,void 0);if("absolute"===a)return withBase(t,e);if("scheme-relative"===r)return normalize(t);if("scheme-relative"===a)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(t);if("path-absolute"===a)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(t+e);return computeRelativeURL(n,withBase(t,withBase(e,n)))}function relative(e,t){const r=relativeIfPossible(e,t);return"string"==typeof r?r:normalize(t)}function relativeIfPossible(e,t){if(getURLType(e)!==getURLType(t))return null;const r=buildSafeBase(e+t),a=new URL$1(e,r),n=new URL$1(t,r);try{new URL$1("",n.toString())}catch(e){return null}return n.protocol!==a.protocol||n.user!==a.user||n.password!==a.password||n.hostname!==a.hostname||n.port!==a.port?null:computeRelativeURL(a,n)}function computeSourceURL(e,t,r){e&&"path-absolute"===getURLType(t)&&(t=t.replace(/^\//,""));let a=normalize(t||"");return e&&(a=join(e,a)),r&&(a=join(trimFilename(r),a)),a}util$4.normalize=normalize,util$4.join=join,util$4.relative=relative,util$4.computeSourceURL=computeSourceURL;var arraySet={};let ArraySet$2=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){const a=new e;for(let e=0,n=t.length;e=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||a==r&&o>=n||util$3.compareByGeneratedPositionsInflated(e,t)<=0}let MappingList$1=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$3.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$2=util$4,ArraySet$1=arraySet.ArraySet,MappingList=mappingList.MappingList;let SourceMapGenerator$1=class e{constructor(e){e||(e={}),this._file=util$2.getArg(e,"file",null),this._sourceRoot=util$2.getArg(e,"sourceRoot",null),this._skipValidation=util$2.getArg(e,"skipValidation",!1),this._sources=new ArraySet$1,this._names=new ArraySet$1,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(t){const r=t.sourceRoot,a=new e({file:t.file,sourceRoot:r});return t.eachMapping((function(e){const t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=r&&(t.source=util$2.relative(r,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),a.addMapping(t)})),t.sources.forEach((function(e){let n=e;null!==r&&(n=util$2.relative(r,e)),a._sources.has(n)||a._sources.add(n);const o=t.sourceContentFor(e);null!=o&&a.setSourceContent(e,o)})),a}addMapping(e){const t=util$2.getArg(e,"generated"),r=util$2.getArg(e,"original",null);let a=util$2.getArg(e,"source",null),n=util$2.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,a,n),null!=a&&(a=String(a),this._sources.has(a)||this._sources.add(a)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:a,name:n})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$2.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$2.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$2.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let a=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');a=e.file}const n=this._sourceRoot;null!=n&&(a=util$2.relative(n,a));const o=this._mappings.toArray().length>0?new ArraySet$1:this._sources,s=new ArraySet$1;this._mappings.unsortedForEach((function(t){if(t.source===a&&null!=t.originalLine){const a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=util$2.join(r,t.source)),null!=n&&(t.source=util$2.relative(n,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}const i=t.source;null==i||o.has(i)||o.add(i);const c=t.name;null==c||s.has(c)||s.add(c)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const a=e.sourceContentFor(t);null!=a&&(null!=r&&(t=util$2.join(r,t)),null!=n&&(t=util$2.relative(n,t)),this.setSourceContent(t,a))}),this)}_validateMapping(e,t,r,a){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!a);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:a}))}_serializeMappings(){let e,t,r,a,n=0,o=1,s=0,i=0,c=0,u=0,p="";const l=this._mappings.toArray();for(let f=0,d=l.length;f0){if(!util$2.compareByGeneratedPositionsInflated(t,l[f-1]))continue;e+=","}e+=base64VLQ.encode(t.generatedColumn-n),n=t.generatedColumn,null!=t.source&&(a=this._sources.indexOf(t.source),e+=base64VLQ.encode(a-u),u=a,e+=base64VLQ.encode(t.originalLine-1-i),i=t.originalLine-1,e+=base64VLQ.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ.encode(r-c),c=r)),p+=e}return p}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$2.relative(t,e));const r=util$2.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}};SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceMapConsumer={},binarySearch$1={};!function(e){function t(r,a,n,o,s,i){const c=Math.floor((a-r)/2)+r,u=s(n,o[c],!0);return 0===u?c:u>0?a-c>1?t(c,a,n,o,s,i):i==e.LEAST_UPPER_BOUND?a1?t(r,c,n,o,s,i):i==e.LEAST_UPPER_BOUND?c:r<0?-1:r}e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2,e.search=function(r,a,n,o){if(0===a.length)return-1;let s=t(-1,a.length,r,a,n,o||e.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===n(a[s],a[s-1],!0);)--s;return s}}(binarySearch$1);var readWasmBrowser={exports:{}};let mappingsWasm=null;readWasmBrowser.exports=function(){if("string"==typeof mappingsWasm)return fetch(mappingsWasm).then((e=>e.arrayBuffer()));if(mappingsWasm instanceof ArrayBuffer)return Promise.resolve(mappingsWasm);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},readWasmBrowser.exports.initialize=e=>{mappingsWasm=e};var readWasmBrowserExports=readWasmBrowser.exports;const readWasm$1=readWasmBrowserExports;function Mapping(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}let cachedWasm=null;var wasm$1=function(){if(cachedWasm)return cachedWasm;const e=[];return cachedWasm=readWasm$1().then((t=>WebAssembly.instantiate(t,{env:{mapping_callback(t,r,a,n,o,s,i,c,u,p){const l=new Mapping;l.generatedLine=t+1,l.generatedColumn=r,a&&(l.lastGeneratedColumn=n-1),o&&(l.source=s,l.originalLine=i+1,l.originalColumn=c,u&&(l.name=p)),e[e.length-1](l)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}}))).then((t=>({exports:t.instance.exports,withMappingCallback:(t,r)=>{e.push(t);try{r()}finally{e.pop()}}}))).then(null,(e=>{throw cachedWasm=null,e})),cachedWasm};const util$1=util$4,binarySearch=binarySearch$1,ArraySet=arraySet.ArraySet,readWasm=readWasmBrowserExports,wasm=wasm$1,INTERNAL=Symbol("smcInternal");let SourceMapConsumer$1=class e{constructor(e,t){return e==INTERNAL?Promise.resolve(this):_factory(e,t)}static initialize(e){readWasm.initialize(e["lib/mappings.wasm"])}static fromSourceMap(e,t){return _factoryBSM(e,t)}static async with(t,r,a){const n=await new e(t,r);try{return await a(n)}finally{n.destroy()}}eachMapping(e,t,r){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(e){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};SourceMapConsumer$1.prototype._version=3,SourceMapConsumer$1.GENERATED_ORDER=1,SourceMapConsumer$1.ORIGINAL_ORDER=2,SourceMapConsumer$1.GREATEST_LOWER_BOUND=1,SourceMapConsumer$1.LEAST_UPPER_BOUND=2,sourceMapConsumer.SourceMapConsumer=SourceMapConsumer$1;class BasicSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let a=e;"string"==typeof e&&(a=util$1.parseSourceMapInput(e));const n=util$1.getArg(a,"version"),o=util$1.getArg(a,"sources").map(String),s=util$1.getArg(a,"names",[]),i=util$1.getArg(a,"sourceRoot",null),c=util$1.getArg(a,"sourcesContent",null),u=util$1.getArg(a,"mappings"),p=util$1.getArg(a,"file",null);if(n!=r._version)throw new Error("Unsupported version: "+n);return r._sourceLookupCache=new Map,r._names=ArraySet.fromArray(s.map(String),!0),r._sources=ArraySet.fromArray(o,!0),r._absoluteSources=ArraySet.fromArray(r._sources.toArray().map((function(e){return util$1.computeSourceURL(i,e,t)})),!0),r.sourceRoot=i,r.sourcesContent=c,r._mappings=u,r._sourceMapURL=t,r.file=p,r._computedColumnSpans=!1,r._mappingsPtr=0,r._wasm=null,wasm().then((e=>(r._wasm=e,r)))}))}_findSourceIndex(e){const t=this._sourceLookupCache.get(e);if("number"==typeof t)return t;const r=util$1.computeSourceURL(null,e,this._sourceMapURL);if(this._absoluteSources.has(r)){const t=this._absoluteSources.indexOf(r);return this._sourceLookupCache.set(e,t),t}const a=util$1.computeSourceURL(this.sourceRoot,e,this._sourceMapURL);if(this._absoluteSources.has(a)){const t=this._absoluteSources.indexOf(a);return this._sourceLookupCache.set(e,t),t}return-1}static fromSourceMap(e,t){return new BasicSourceMapConsumer(e.toString())}get sources(){return this._absoluteSources.toArray()}_getMappingsPtr(){return 0===this._mappingsPtr&&this._parseMappings(),this._mappingsPtr}_parseMappings(){const e=this._mappings,t=e.length,r=this._wasm.exports.allocate_mappings(t),a=new Uint8Array(this._wasm.exports.memory.buffer,r,t);for(let r=0;r{null!==t.source&&(t.source=this._absoluteSources.at(t.source),null!==t.name&&(t.name=this._names.at(t.name))),this._computedColumnSpans&&null===t.lastGeneratedColumn&&(t.lastGeneratedColumn=1/0),e.call(a,t)}),(()=>{switch(n){case SourceMapConsumer$1.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case SourceMapConsumer$1.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}}))}allGeneratedPositionsFor(e){let t=util$1.getArg(e,"source");const r=util$1.getArg(e,"line"),a=e.column||0;if(t=this._findSourceIndex(t),t<0)return[];if(r<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");const n=[];return this._wasm.withMappingCallback((e=>{let t=e.lastGeneratedColumn;this._computedColumnSpans&&null===t&&(t=1/0),n.push({line:e.generatedLine,column:e.generatedColumn,lastColumn:t})}),(()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),t,r-1,"column"in e,a)})),n}destroy(){0!==this._mappingsPtr&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(e){const t={generatedLine:util$1.getArg(e,"line"),generatedColumn:util$1.getArg(e,"column")};if(t.generatedLine<1)throw new Error("Line numbers must be >= 1");if(t.generatedColumn<0)throw new Error("Column numbers must be >= 0");let r,a=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==a&&(a=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>r=e),(()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),t.generatedLine-1,t.generatedColumn,a)})),r&&r.generatedLine===t.generatedLine){let e=util$1.getArg(r,"source",null);null!==e&&(e=this._absoluteSources.at(e));let t=util$1.getArg(r,"name",null);return null!==t&&(t=this._names.at(t)),{source:e,line:util$1.getArg(r,"originalLine",null),column:util$1.getArg(r,"originalColumn",null),name:t}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))}sourceContentFor(e,t){if(!this.sourcesContent)return null;const r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')}generatedPositionFor(e){let t=util$1.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};const r={source:t,originalLine:util$1.getArg(e,"line"),originalColumn:util$1.getArg(e,"column")};if(r.originalLine<1)throw new Error("Line numbers must be >= 1");if(r.originalColumn<0)throw new Error("Column numbers must be >= 0");let a,n=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==n&&(n=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>a=e),(()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),r.source,r.originalLine-1,r.originalColumn,n)})),a&&a.source===r.source){let e=a.lastGeneratedColumn;return this._computedColumnSpans&&null===e&&(e=1/0),{line:util$1.getArg(a,"generatedLine",null),column:util$1.getArg(a,"generatedColumn",null),lastColumn:e}}return{line:null,column:null,lastColumn:null}}}BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer$1,sourceMapConsumer.BasicSourceMapConsumer=BasicSourceMapConsumer;class IndexedSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let a=e;"string"==typeof e&&(a=util$1.parseSourceMapInput(e));const n=util$1.getArg(a,"version"),o=util$1.getArg(a,"sections");if(n!=r._version)throw new Error("Unsupported version: "+n);let s={line:-1,column:0};return Promise.all(o.map((e=>{if(e.url)throw new Error("Support for url field in sections not implemented.");const r=util$1.getArg(e,"offset"),a=util$1.getArg(r,"line"),n=util$1.getArg(r,"column");if(a({generatedOffset:{generatedLine:a+1,generatedColumn:n+1},consumer:e})))}))).then((e=>(r._sections=e,r)))}))}get sources(){const e=[];for(let t=0;t=0?this._sections[t]:null,a=t>=0&&t+1=0?this._sections[t]:null,a=t>=0&&t+1{const t=r.generatedOffset.generatedLine-1,n=r.generatedOffset.generatedColumn-1;return 1===e.line&&(e.column+=n,"number"==typeof e.lastColumn&&(e.lastColumn+=n)),e.lastColumn===1/0&&a&&e.line===a.generatedOffset.generatedLine&&(e.lastColumn=a.generatedOffset.generatedColumn-2),e.line+=t,e})):[]}eachMapping(e,t,r){this._sections.forEach(((a,n)=>{const o=n+1=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,a=this.children.length;r0){for(t=[],r=0;r start)"])}})),it("reports multiple errors in each compilation stage",(function(){try{peg.generate('\n start = leftRecursion\n leftRecursion = duplicatedLabel:duplicatedRule duplicatedLabel:missingRule\n duplicatedRule = missingRule\n duplicatedRule = "nothing"\n ')}catch(t){expect$k(t).with.property("stage","check"),expect$k(t).with.property("problems").to.be.an("array"),t.problems.forEach((function(e){expect$k(e).to.be.an("array").lengthOf.gte(2),expect$k(e[0]).to.be.oneOf(["error","warning","info"])}));var e=t.problems.filter((function(e){return"error"===e[0]})).map((function(e){return e[1]}));expect$k(e).to.include.members(['Rule "missingRule" is not defined','Rule "duplicatedRule" is already defined','Label "duplicatedLabel" is already defined'])}}))}))}));var chai$j=require$$0,parser$2=parser$4,compiler=compiler_1,expect$j=chai$j.expect;describe("Peggy compiler",(function(){it("checks start rules",(function(){var e=parser$2.parse("foo='1'");expect$j(compiler.compile(e,compiler.passes)).to.be.an("object"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:null})})).to.throw("allowedStartRules must be an array"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:[]})})).to.throw("Must have at least one start rule"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:["bar"]})})).to.throw('Unknown start rule "bar"')})),it("checks output type",(function(){var e=parser$2.parse("foo='1'");expect$j(compiler.compile(e,compiler.passes,{output:"source"})).to.be.a("string"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"INVALID OUTPUT TYPE"})})).to.throw("Invalid output format: INVALID OUTPUT TYPE.")})),it("generates inline sourceMappingURL",(function(){var e=parser$2.parse("foo='1'");if(expect$j(e).to.be.an("object"),"function"==typeof TextEncoder&&(expect$j(compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:"src.peggy"})).to.match(/^\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,/m),"object"==typeof globalThis)){var t=globalThis.TextEncoder;delete globalThis.TextEncoder,expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:"src.peggy"})})).to.throw("TextEncoder is not supported by this platform"),globalThis.TextEncoder=t}})),it("requires grammarSource with source-map",(function(){var e=parser$2.parse("foo='1'");expect$j(e).to.be.an("object"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-and-map"})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-and-map",grammarSource:""})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps"),"function"==typeof TextEncoder&&expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:{toString:function(){return""}}})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps")}))}));var chai$i=require$$0,Intern=intern,expect$i=chai$i.expect;describe("utility class Intern",(function(){it("handles strings",(function(){var e=new Intern;expect$i(e.add("one")).to.equal(0),expect$i(e.add("one")).to.equal(0),expect$i(e.add("two")).to.equal(1),expect$i(e.add("one")).to.equal(0),expect$i(e.add("two")).to.equal(1),expect$i(e.add(void 0)).to.equal(-1),expect$i(e.add(null)).to.equal(-1),expect$i(e.items.length).to.equal(2),expect$i(e.items).to.deep.equal(["one","two"]),expect$i(e.get(0)).to.equal("one"),expect$i(e.get(1)).to.equal("two"),expect$i(e.get(-1)).to.equal(void 0),expect$i(e.get(10)).to.equal(void 0);var t=e.map((function(e,t){return[e,t]}));expect$i(t).to.deep.equal([["one",0],["two",1]])})),it("does conversions",(function(){var e=new Intern({convert:function(e){return Array.from(e).map((function(e){return e.codePointAt(0)}))}});expect$i(e.add("abc")).to.equal(0),expect$i(e.add("abc")).to.equal(0),expect$i(e.add("abd")).to.equal(1),expect$i(e.get(0)).to.deep.equal([97,98,99]),expect$i(e.get(1)).to.deep.equal([97,98,100])})),it("stringifies",(function(){var e=new Intern({stringify:function(){return"same"}});expect$i(e.add("abc")).to.equal(0),expect$i(e.add("def")).to.equal(0)}))}));var __spreadArray$1=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),it("reports indirect left recursion",(function(){expect$6(pass$2).to.reportError(["start = stop","stop = start"].join("\n"),{message:"Possible infinite loop when parsing (left recursion: start -> stop -> start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),describe("in sequences",(function(){it("reports left recursion if all preceding elements match empty string",(function(){expect$6(pass$2).to.reportError("start = '' '' '' start")})),it("doesn't report left recursion if some preceding element doesn't match empty string",(function(){expect$6(pass$2).to.not.reportError("start = 'a' '' '' start"),expect$6(pass$2).to.not.reportError("start = '' 'a' '' start"),expect$6(pass$2).to.not.reportError("start = '' '' 'a' start")})),it("reports left recursion when rule reference is wrapped in an expression",(function(){expect$6(pass$2).to.reportError("start = '' start?")})),it("computes expressions that always consume input on success correctly",(function(){expect$6(pass$2).to.reportError(["start = a start","a 'a' = ''"].join("\n")),expect$6(pass$2).to.not.reportError(["start = a start","a 'a' = 'a'"].join("\n")),expect$6(pass$2).to.reportError("start = ('' / 'a' / 'b') start"),expect$6(pass$2).to.reportError("start = ('a' / '' / 'b') start"),expect$6(pass$2).to.reportError("start = ('a' / 'b' / '') start"),expect$6(pass$2).to.not.reportError("start = ('a' / 'b' / 'c') start"),expect$6(pass$2).to.reportError("start = ('' { }) start"),expect$6(pass$2).to.not.reportError("start = ('a' { }) start"),expect$6(pass$2).to.reportError("start = ('' '' '') start"),expect$6(pass$2).to.not.reportError("start = ('a' '' '') start"),expect$6(pass$2).to.not.reportError("start = ('' 'a' '') start"),expect$6(pass$2).to.not.reportError("start = ('' '' 'a') start"),expect$6(pass$2).to.reportError("start = a:'' start"),expect$6(pass$2).to.not.reportError("start = a:'a' start"),expect$6(pass$2).to.reportError("start = $'' start"),expect$6(pass$2).to.not.reportError("start = $'a' start"),expect$6(pass$2).to.reportError("start = &'' start"),expect$6(pass$2).to.reportError("start = &'a' start"),expect$6(pass$2).to.reportError("start = !'' start"),expect$6(pass$2).to.reportError("start = !'a' start"),expect$6(pass$2).to.reportError("start = ''? start"),expect$6(pass$2).to.reportError("start = 'a'? start"),expect$6(pass$2).to.reportError("start = ''* start"),expect$6(pass$2).to.reportError("start = 'a'* start"),expect$6(pass$2).to.reportError("start = ''+ start"),expect$6(pass$2).to.not.reportError("start = 'a'+ start"),expect$6(pass$2).to.reportError("start = ''| .. | start"),expect$6(pass$2).to.reportError("start = ''|0.. | start"),expect$6(pass$2).to.reportError("start = ''|1.. | start"),expect$6(pass$2).to.reportError("start = ''|2.. | start"),expect$6(pass$2).to.reportError("start = ''| ..1| start"),expect$6(pass$2).to.reportError("start = ''| ..3| start"),expect$6(pass$2).to.reportError("start = ''|2..3| start"),expect$6(pass$2).to.reportError("start = ''| 42 | start"),expect$6(pass$2).to.reportError("start = 'a'| .. | start"),expect$6(pass$2).to.reportError("start = 'a'|0.. | start"),expect$6(pass$2).to.not.reportError("start = 'a'|1.. | start"),expect$6(pass$2).to.not.reportError("start = 'a'|2.. | start"),expect$6(pass$2).to.reportError("start = 'a'| ..1| start"),expect$6(pass$2).to.reportError("start = 'a'| ..3| start"),expect$6(pass$2).to.not.reportError("start = 'a'|2..3| start"),expect$6(pass$2).to.not.reportError("start = 'a'| 42 | start"),expect$6(pass$2).to.reportError("start = ('') start"),expect$6(pass$2).to.not.reportError("start = ('a') start"),expect$6(pass$2).to.reportError("start = &{ } start"),expect$6(pass$2).to.reportError("start = !{ } start"),expect$6(pass$2).to.reportError(["start = a start","a = ''"].join("\n")),expect$6(pass$2).to.not.reportError(["start = a start","a = 'a'"].join("\n")),expect$6(pass$2).to.reportError("start = '' start"),expect$6(pass$2).to.not.reportError("start = 'a' start"),expect$6(pass$2).to.not.reportError("start = [a-d] start"),expect$6(pass$2).to.not.reportError("start = . start")}))})),describe("in repeated with delimiter",(function(){it("doesn't report left recursion for delimiter if expression not match empty string",(function(){expect$6(pass$2).to.not.reportError("start = 'a'| .. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|0.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|1.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|2.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'| ..3, start|"),expect$6(pass$2).to.not.reportError("start = 'a'|2..3, start|"),expect$6(pass$2).to.not.reportError("start = 'a'| 42 , start|")})),it("reports left recursion for delimiter if expression match empty string",(function(){expect$6(pass$2).to.reportError("start = ''| .. , start|"),expect$6(pass$2).to.reportError("start = ''|0.. , start|"),expect$6(pass$2).to.reportError("start = ''|1.. , start|"),expect$6(pass$2).to.reportError("start = ''|2.. , start|"),expect$6(pass$2).to.reportError("start = ''| ..3, start|"),expect$6(pass$2).to.reportError("start = ''|2..3, start|"),expect$6(pass$2).to.reportError("start = ''| 42 , start|")})),it("does not inifinite loop",(function(){expect$6(pass$2).to.reportError('\n start = expr*\n\n expr\n = expr "++"\n ',{message:"Possible infinite loop when parsing (left recursion: start -> expr -> expr)"})}))}))}));var chai$5=require$$0,helpers$1=helpers$d,pass$1=reportInfiniteRepetition_1;chai$5.use(helpers$1);var expect$5=chai$5.expect;describe("compiler pass |reportInfiniteRepetition|",(function(){it("reports infinite loops for zero_or_more",(function(){expect$5(pass$1).to.reportError("start = ('')*",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("reports infinite loops for one_or_more",(function(){expect$5(pass$1).to.reportError("start = ('')+",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),describe("reports infinite loops for repeated",(function(){describe("without delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:16,line:1,column:17}}}),expect$5(pass$1).to.reportError("start = ('')|0..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.reportError("start = ('')|1..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.reportError("start = ('')|2..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.not.reportError("start = ('')| ..1|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 |")})),it("with variable boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|len..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:19,line:1,column:20}}}),expect$5(pass$1).to.not.reportError("start = ('')|..len|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2|"),expect$5(pass$1).to.not.reportError("start = ('')|len|")})),it("with function boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|{}..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:18,line:1,column:19}}}),expect$5(pass$1).to.not.reportError("start = ('')|..{}|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}|"),expect$5(pass$1).to.not.reportError("start = ('')|{}|")}))})),describe("with empty delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')| .., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|0.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|1.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|2.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.not.reportError("start = ('')| ..1, ''|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3, ''|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 , ''|")})),it("with variable boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|len.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:23,line:1,column:24}}}),expect$5(pass$1).to.not.reportError("start = ('')|..len, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|len, ''|")})),it("with function boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|{}.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:22,line:1,column:23}}}),expect$5(pass$1).to.not.reportError("start = ('')|..{}, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|{}, ''|")}))})),describe("with non-empty delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')| .., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|0.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|1.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|2.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| ..1, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 , 'a'|")})),it("with variable boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')|len.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|..len, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|len, 'a'|")})),it("with function boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')|{}.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|..{}, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|{}, 'a'|")}))}))})),it("computes expressions that always consume input on success correctly",(function(){expect$5(pass$1).to.reportError(["start = a*","a 'a' = ''"].join("\n")),expect$5(pass$1).to.not.reportError(["start = a*","a 'a' = 'a'"].join("\n")),expect$5(pass$1).to.reportError("start = ('' / 'a' / 'b')*"),expect$5(pass$1).to.reportError("start = ('a' / '' / 'b')*"),expect$5(pass$1).to.reportError("start = ('a' / 'b' / '')*"),expect$5(pass$1).to.not.reportError("start = ('a' / 'b' / 'c')*"),expect$5(pass$1).to.reportError("start = ('' { })*"),expect$5(pass$1).to.not.reportError("start = ('a' { })*"),expect$5(pass$1).to.reportError("start = ('' '' '')*"),expect$5(pass$1).to.not.reportError("start = ('a' '' '')*"),expect$5(pass$1).to.not.reportError("start = ('' 'a' '')*"),expect$5(pass$1).to.not.reportError("start = ('' '' 'a')*"),expect$5(pass$1).to.reportError("start = (a:'')*"),expect$5(pass$1).to.not.reportError("start = (a:'a')*"),expect$5(pass$1).to.reportError("start = ($'')*"),expect$5(pass$1).to.not.reportError("start = ($'a')*"),expect$5(pass$1).to.reportError("start = (&'')*"),expect$5(pass$1).to.reportError("start = (&'a')*"),expect$5(pass$1).to.reportError("start = (!'')*"),expect$5(pass$1).to.reportError("start = (!'a')*"),expect$5(pass$1).to.reportError("start = (''?)*"),expect$5(pass$1).to.reportError("start = ('a'?)*"),expect$5(pass$1).to.reportError("start = (''*)*"),expect$5(pass$1).to.reportError("start = ('a'*)*"),expect$5(pass$1).to.reportError("start = (''+)*"),expect$5(pass$1).to.not.reportError("start = ('a'+)*"),expect$5(pass$1).to.reportError("start = ('')*"),expect$5(pass$1).to.not.reportError("start = ('a')*"),expect$5(pass$1).to.reportError("start = (&{ })*"),expect$5(pass$1).to.reportError("start = (!{ })*"),expect$5(pass$1).to.reportError("start = 'a'|.., ('')*|"),expect$5(pass$1).to.not.reportError("start = 'a'|.., ('b')*|"),expect$5(pass$1).to.reportError(["start = a*","a = ''"].join("\n")),expect$5(pass$1).to.not.reportError(["start = a*","a = 'a'"].join("\n")),expect$5(pass$1).to.reportError("start = ''*"),expect$5(pass$1).to.not.reportError("start = 'a'*"),expect$5(pass$1).to.not.reportError("start = [a-d]*"),expect$5(pass$1).to.not.reportError("start = .*")}))}));var chai$4=require$$0,helpers=helpers$d,pass=reportUndefinedRules_1;chai$4.use(helpers);var expect$4=chai$4.expect;describe("compiler pass |reportUndefinedRules|",(function(){it("reports undefined rules",(function(){expect$4(pass).to.reportError("start = undefined",{message:'Rule "undefined" is not defined',location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}})}))}));var chai$3=require$$0,Stack=stack,expect$3=chai$3.expect;describe("utility class Stack",(function(){describe("for an empty stack",(function(){var e=void 0;beforeEach((function(){e=new Stack("rule","v","let",[42])})),describe("throws an error when attempting",(function(){it("`pop`",(function(){expect$3((function(){return e.pop()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42")})),it("`top`",(function(){expect$3((function(){return e.top()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42")})),it("`result`",(function(){expect$3((function(){return e.result()})).to.throw(RangeError,"Rule 'rule': The variable stack is empty, can't get the result")})),it("`index`",(function(){expect$3((function(){return e.index(-2)})).to.throw(RangeError,"Rule 'rule': The variable stack overflow: attempt to get a variable at a negative index -2.\nBytecode: 42"),expect$3((function(){return e.index(0)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42"),expect$3((function(){return e.index(2)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -3.\nBytecode: 42")})),it("`sourceMapPop`",(function(){expect$3((function(){return e.sourceMapPop()})).to.throw(RangeError,"Rule 'rule': Attempting to pop an empty source map stack.\nBytecode: 42")}))})),it("`defines` returns an empty string",(function(){expect$3(e.defines()).to.equal("")}))})),it("throws an error when attempting `pop` more than `push`",(function(){var e=new Stack("rule","v","let",[42]);e.push("1"),expect$3((function(){return e.pop(3)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -2.\nBytecode: 42")})),it("returns a variable with an index 0 for `result`",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),expect$3(e.result()).to.equal("v0")})),it("`defines` returns a define expression for all used variables",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),e.push("2"),e.pop(),e.push("3"),expect$3(e.defines()).to.equal("let v0, v1;")})),describe("`checkedIf` method",(function(){var e=void 0;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),describe("does not throws an error",(function(){it("without the else brach",(function(){expect$3((function(){return e.checkedIf(0,(function(){}))})).to.not.throw(),expect$3((function(){return e.checkedIf(0,(function(){return e.pop()}))})).to.not.throw(),expect$3((function(){return e.checkedIf(0,(function(){return e.push("2")}))})).to.not.throw()})),describe("when the stack pointer",(function(){it("was not moving in both the arms",(function(){function t(){}function r(){e.push("1"),e.pop()}function a(){e.push("1"),e.push("2"),e.pop(2)}function n(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$3((function(){return e.checkedIf(0,t,t)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,r,r)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,a,a)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,n,n)})).to.not.throw()})),it("increases on the same value in both the arms",(function(){expect$3((function(){return e.checkedIf(0,(function(){return e.push("1")}),(function(){return e.push("2")}))})).to.not.throw()})),it("decreases on the same value in both the arms",(function(){e.push("2"),expect$3((function(){return e.checkedIf(0,(function(){return e.pop(2)}),(function(){e.pop(),e.pop()}))})).to.not.throw()}))}))})),describe("throws an error when the stack pointer",(function(){it("was not moving in `if` and decreases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: -1). Bytecode: 42")})),it("decreases in `if` and was not moving in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 0). Bytecode: 42")})),it("was not moving in `if` and increases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: 1). Bytecode: 42")})),it("increases in `if` and was not moving in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: 0). Bytecode: 42")})),it("decreases in `if` and increases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 1). Bytecode: 42")})),it("increases in `if` and decreases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: -1). Bytecode: 42")}))}))})),describe("`checkedLoop` method",(function(){var e=void 0;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),it("does not throws an error when the stack pointer was not moving",(function(){function t(){}function r(){e.push("1"),e.pop()}function a(){e.push("1"),e.push("2"),e.pop(2)}function n(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$3((function(){return e.checkedLoop(0,t)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,r)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,a)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,n)})).to.not.throw()})),it("throws an error when the stack pointer increases",(function(){expect$3((function(){return e.checkedLoop(0,(function(){return e.push("1")}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: 1). Bytecode: 42")})),it("throws an error when the stack pointer decreases",(function(){expect$3((function(){return e.checkedLoop(0,(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: -1). Bytecode: 42")}))})),describe("SourceNode handling",(function(){it("sourceNode handles unknown column",(function(){expect$3(Stack.sourceNode({source:"",start:{line:1,column:0,offset:0},end:{line:1,column:0,offset:0}},["foo"],"test").column).to.equal(null)}))}))}));var chai$2=require$$0,_a$1=utils$1,hex=_a$1.hex,stringEscape=_a$1.stringEscape,regexpClassEscape=_a$1.regexpClassEscape,base64=_a$1.base64,expect$2=chai$2.expect;describe("utility functions",(function(){it("hex",(function(){expect$2(hex("0")).to.equal("30"),expect$2(hex("\0")).to.equal("0"),expect$2(hex("\n")).to.equal("A"),expect$2(hex("\ufeff")).to.equal("FEFF")})),it("stringEscape",(function(){expect$2(stringEscape("abc")).to.equal("abc"),expect$2(stringEscape('\\"\0\b\t\n\v\f\r')).to.equal('\\\\\\"\\0\\b\\t\\n\\v\\f\\r'),expect$2(stringEscape("")).to.equal("\\x01\\x0F"),expect$2(stringEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$2(stringEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$2(stringEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("regexpClassEscape",(function(){expect$2(regexpClassEscape("\\\0\b\t\n\v\f\r")).to.equal("\\\\\\0\\b\\t\\n\\v\\f\\r"),expect$2(regexpClassEscape("/]^-")).to.equal("\\/\\]\\^\\-"),expect$2(regexpClassEscape("")).to.equal("\\x01\\x0F"),expect$2(regexpClassEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$2(regexpClassEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$2(regexpClassEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("base64",(function(){expect$2(base64(new Uint8Array([]))).to.equal(""),expect$2(base64(new Uint8Array([97]))).to.equal("YQ=="),expect$2(base64(new Uint8Array([97,98]))).to.equal("YWI="),expect$2(base64(new Uint8Array([97,98,99]))).to.equal("YWJj"),expect$2(base64(new Uint8Array([97,98,99,100]))).to.equal("YWJjZA=="),expect$2(base64(new Uint8Array([97,98,99,100,101]))).to.equal("YWJjZGU="),expect$2(base64(new Uint8Array([97,98,99,100,101,102]))).to.equal("YWJjZGVm")}))}));var chai$1=require$$0,_a=peg_1,GrammarError=_a.GrammarError,GrammarLocation=_a.GrammarLocation,expect$1=chai$1.expect,location={source:void 0,start:{offset:0,line:1,column:1},end:{offset:4,line:1,column:5}};describe("Grammar Errors",(function(){it("might not have a location",(function(){var e=new GrammarError("message");expect$1(e.location).to.equal(void 0),expect$1(e.toString()).to.equal("GrammarError: message")})),it("might have locations",(function(){location.source=void 0;var e=new GrammarError("message",location);expect$1(e.location).to.eql(location),expect$1(e.toString()).to.equal("GrammarError: message\n at 1:1"),e=new GrammarError("message",null,[{message:"Subinfo",location:location}]),expect$1(e.location).to.equal(null),expect$1(e.toString()).to.equal("GrammarError: message\n from 1:1: Subinfo"),location.source="foo.peggy",e=new GrammarError("message",location,[{message:"Subinfo",location:location}]),expect$1(e.toString()).to.equal("GrammarError: message\n at foo.peggy:1:1\n from foo.peggy:1:1: Subinfo")})),describe("formats",(function(){var e={source:"foo.peggy",text:"some error\nthat"},t={source:"foo.peggy",start:{offset:5,line:1,column:6},end:{offset:11,line:2,column:1}},r=[{message:"Subinfo",location:t}];describe("single problem",(function(){describe("with main location",(function(){location.source="foo.peggy";var t=new GrammarError("message",location,r);it("with zero-length error at the end",(function(){var t=new GrammarError("message",{source:"foo.peggy",start:{offset:4,line:1,column:5},end:{offset:4,line:1,column:5}});expect$1(t.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:5\n |\n1 | some error\n | ^")})),it("with source",(function(){expect$1(t.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:1\n |\n1 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(t.format([])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo")}))})),describe("without main location",(function(){var t=new GrammarError("message",null,r);it("with source",(function(){expect$1(t.format([e])).to.equal("error: message\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(t.format([])).to.equal("error: message\n at foo.peggy:1:6: Subinfo")}))}))})),describe("several problems",(function(){describe("with main location",(function(){location.source="foo.peggy";var a=new GrammarError("message",location,r);a.problems.push(["warning","Warning message",t,[{message:"Warning Subinfo",location:t}]]),a.problems.push(["info","Info message",null,[]]),it("null source text",(function(){expect$1(a.format([{source:null,text:null}])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo"),expect$1(a.format([{source:null,text:void 0}])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo")})),it("with source",(function(){expect$1(a.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:1\n |\n1 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\n\nwarning: Warning message\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\nnote: Warning Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("with GrammarLocation",(function(){var r=new GrammarLocation("foo.peggy",{offset:12,line:15,column:8});expect$1(String(r)).to.equal("foo.peggy"),location.source=r,t.source=r,a.diagnostics.push({message:"Column not offset",location:{source:r,start:{offset:11,line:2,column:1},end:{offset:15,line:2,column:5}}}),expect$1(a.format([{source:r,text:e.text}])).to.equal("error: message\n --\x3e foo.peggy:15:8\n |\n15 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^\nnote: Column not offset\n --\x3e foo.peggy:16:1\n |\n16 | that\n | ^^^^\n\nwarning: Warning message\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^\nnote: Warning Subinfo\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^"),location.source="foo.peggy",t.source="foo.peggy",a.diagnostics.pop()})),it("without source",(function(){expect$1(a.format([])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo")}))})),describe("without main location",(function(){var a=new GrammarError("message",null,r);a.problems.push(["warning","Warning message",null,[{message:"Warning Subinfo",location:t}]]),a.problems.push(["info","Info message",null,[]]),it("with source",(function(){expect$1(a.format([e])).to.equal("error: message\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\n\nwarning: Warning message\nnote: Warning Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(a.format([])).to.equal("error: message\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6: Warning Subinfo")}))}))}))}))}));var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n1&&e.delimiter&&n(e.delimiter)))},semantic_and:a,semantic_not:a,rule_ref:function(t){var r=asts$8.findRule(e,t.name);return r?n(r):void 0},library_ref:function(){return!1},literal:function(e){return""!==e.value},class:r,any:r});return n(t)},combine:function(e){return e.reduce((function(e,t){return e.topLevelInitializer=combinePossibleArrays(e.topLevelInitializer,t.topLevelInitializer),e.initializer=combinePossibleArrays(e.initializer,t.initializer),e.rules=e.rules.concat(t.rules),e}))}},asts_1=asts$8;function addImportedRules$1(e){for(var t=0,r=0,a=e.imports;r0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$a.build({rule:function(e){var t=void 0,r=0;if(void 0===e.match){e.match=SOMETIMES_MATCH$1;do{if(t=e.match,e.match=o(e.expression),++r>6)throw new GrammarError$4("Infinity cycle detected when trying to evaluate node match result",e.location)}while(t!==e.match)}return e.match},named:a,choice:function(e){return e.match=n(e.alternatives,!0)},action:a,sequence:function(e){return e.match=n(e.elements,!1)},labeled:a,text:a,simple_and:a,simple_not:function(e){return e.match=-o(e.expression)},optional:r,zero_or_more:r,one_or_more:a,repeated:function(e){var t=o(e.expression),r=e.delimiter?o(e.delimiter):NEVER_MATCH$1,a=e.min?e.min:e.max;return"constant"!==a.type||"constant"!==e.max.type?e.match=SOMETIMES_MATCH$1:0===e.max.value||null!==e.max.value&&a.value>e.max.value?e.match=NEVER_MATCH$1:t===NEVER_MATCH$1?e.match=0===a.value?ALWAYS_MATCH$1:NEVER_MATCH$1:t===ALWAYS_MATCH$1?e.delimiter&&a.value>=2?e.match=r:e.match=ALWAYS_MATCH$1:e.delimiter&&a.value>=2?e.match=r===NEVER_MATCH$1?NEVER_MATCH$1:SOMETIMES_MATCH$1:e.match=0===a.value?ALWAYS_MATCH$1:SOMETIMES_MATCH$1},group:a,semantic_and:t,semantic_not:t,rule_ref:function(t){var r=asts$7.findRule(e,t.name);return r?t.match=o(r):SOMETIMES_MATCH$1},library_ref:function(){return 0},literal:function(e){var t=0===e.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},class:function(e){var t=0===e.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},any:t});o(e)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,__spreadArray$5=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n1?f(SOMETIMES_MATCH,[op$2.IF_ERROR],l([op$2.POP],e(t.slice(1),r)),[]):[])}(e.alternatives,t)},action:function(e,t){var r=p(t.env),a="sequence"!==e.expression.type||0===e.expression.elements.length,n=v(e.expression,{sp:t.sp+(a?1:0),env:r,action:e}),o=e.expression.match||0,s=a&&o!==NEVER_MATCH?c(!1,Object.keys(r),e):-1;return a?l([op$2.PUSH_CURR_POS],n,f(o,[op$2.IF_NOT_ERROR],l([op$2.LOAD_SAVED_POS,1],d(s,1,r,t.sp+2)),[]),[op$2.NIP]):n},sequence:function(e,t){return l([op$2.PUSH_CURR_POS],function t(r,a){if(r.length>0){var n=e.elements.length-r.length+1;return l(v(r[0],{sp:a.sp,env:a.env,pluck:a.pluck,action:null}),f(r[0].match||0,[op$2.IF_NOT_ERROR],t(r.slice(1),{sp:a.sp+1,env:a.env,pluck:a.pluck,action:a.action}),l(n>1?[op$2.POP_N,n]:[op$2.POP],[op$2.POP_CURR_POS],[op$2.PUSH_FAILED])))}if(a.pluck&&a.pluck.length>0)return l([op$2.PLUCK,e.elements.length+1,a.pluck.length],a.pluck.map((function(e){return a.sp-e})));if(a.action){var o=c(!1,Object.keys(a.env),a.action);return l([op$2.LOAD_SAVED_POS,e.elements.length],d(o,e.elements.length+1,a.env,a.sp))}return l([op$2.WRAP,e.elements.length],[op$2.NIP])}(e.elements,{sp:t.sp+1,env:t.env,pluck:[],action:t.action}))},labeled:function(e,a){var n=a.env,o=e.label,s=a.sp+1;o&&(n=p(a.env),a.env[o]=s),e.pick&&a.pluck.push(s);var i=v(e.expression,{sp:a.sp,env:n,action:null});return o&&e.labelLocation&&t&&"source-and-map"===t.output?l([op$2.SOURCE_MAP_LABEL_PUSH,s,r.add(o),u(e.labelLocation)],i,[op$2.SOURCE_MAP_LABEL_POP,s]):i},text:function(e,t){return l([op$2.PUSH_CURR_POS],v(e.expression,{sp:t.sp+1,env:p(t.env),action:null}),f(e.match||0,[op$2.IF_NOT_ERROR],l([op$2.POP],[op$2.TEXT]),[op$2.NIP]))},simple_and:function(e,t){return m(e.expression,!1,t)},simple_not:function(e,t){return m(e.expression,!0,t)},optional:function(e,t){return l(v(e.expression,{sp:t.sp,env:p(t.env),action:null}),f(-(e.expression.match||0),[op$2.IF_ERROR],l([op$2.POP],[op$2.PUSH_NULL]),[]))},zero_or_more:function(e,t){var r=v(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return l([op$2.PUSH_EMPTY_ARRAY],r,$(r),[op$2.POP])},one_or_more:function(e,t){var r=v(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return l([op$2.PUSH_EMPTY_ARRAY],r,f(e.expression.match||0,[op$2.IF_NOT_ERROR],l($(r),[op$2.POP]),l([op$2.POP],[op$2.POP],[op$2.PUSH_FAILED])))},repeated:function(e,t){var r=e.min?e.min:e.max,a="constant"!==r.type||r.value>0,n="constant"!==e.max.type&&null!==e.max.value,o=a?2:1,s=e.min?h(e.min,t.env,t.sp,2+("function"===e.max.type?1:0)):{pre:[],post:[],sp:t.sp},i=h(e.max,t.env,s.sp,o),c=v(e.expression,{sp:i.sp+o,env:p(t.env),action:null}),u=null!==e.delimiter?v(e.expression,{sp:i.sp+o+1,env:p(t.env),action:null}):c,d=function(e,t,r,a,n){return e?l([op$2.PUSH_CURR_POS],v(e,{sp:a.sp+n+1,env:p(a.env),action:null}),f(e.match||0,[op$2.IF_NOT_ERROR],l([op$2.POP],r,f(-t,[op$2.IF_ERROR],[op$2.POP,op$2.POP_CURR_POS,op$2.PUSH_FAILED],[op$2.NIP])),[op$2.NIP])):r}(e.delimiter,e.expression.match||0,u,t,o),m=x(d,e.max),g=n?x(c,e.max):c,b=l(a?[op$2.PUSH_CURR_POS]:[],[op$2.PUSH_EMPTY_ARRAY],g,$(m),[op$2.POP]);return l(s.pre,i.pre,a?function(e,t){var r="constant"===t.type?[op$2.IF_LT,t.value]:[op$2.IF_LT_DYNAMIC,t.sp||0];return l(e,f(SOMETIMES_MATCH,r,[op$2.POP,op$2.POP_CURR_POS,op$2.PUSH_FAILED],[op$2.NIP]))}(b,r):b,i.post,s.post)},group:function(e,t){return v(e.expression,{sp:t.sp,env:p(t.env),action:null})},semantic_and:function(e,t){return g(e,!1,t)},semantic_not:function(e,t){return g(e,!0,t)},rule_ref:function(t){return[op$2.RULE,asts$6.indexOfRule(e,t.name)]},library_ref:function(e){return[op$2.LIBRARY_RULE,e.libraryNumber,o.add(e.name)]},literal:function(e){if(e.value.length>0){var t=e.match||0,a=t===SOMETIMES_MATCH||t===ALWAYS_MATCH&&!e.ignoreCase?r.add(e.ignoreCase?e.value.toLowerCase():e.value):-1,o=t!==ALWAYS_MATCH?n.add({type:"literal",value:e.value,ignoreCase:e.ignoreCase}):-1;return f(t,e.ignoreCase?[op$2.MATCH_STRING_IC,a]:[op$2.MATCH_STRING,a],e.ignoreCase?[op$2.ACCEPT_N,e.value.length]:[op$2.ACCEPT_STRING,a],[op$2.FAIL,o])}return[op$2.PUSH_EMPTY_STRING]},class:function(e){var t=e.match||0,r=t===SOMETIMES_MATCH?a.add(e):-1,o=t!==ALWAYS_MATCH?n.add({type:"class",value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase}):-1;return f(t,[op$2.MATCH_CHAR_CLASS,r],[op$2.ACCEPT_N,1],[op$2.FAIL,o])},any:function(e){var t=e.match||0,r=t!==ALWAYS_MATCH?n.add({type:"any"}):-1;return f(t,[op$2.MATCH_ANY],[op$2.ACCEPT_N,1],[op$2.FAIL,r])}},t&&"source-and-map"===t.output&&Object.keys(b).forEach((function(e){var t=b[e];b[e]=function(e){for(var r=[],a=1;a>>=VLQ_BASE_SHIFT$1,a>0&&(t|=VLQ_CONTINUATION_BIT$1),r+=base64$5.encode(t)}while(a>0);return r};var util$8={};function getArg$1(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$8.getArg=getArg$1;const supportsNullProto$1=!("__proto__"in Object.create(null));function identity$1(e){return e}function toSetString$1(e){return isProtoString$1(e)?"$"+e:e}function fromSetString$1(e){return isProtoString$1(e)?e.slice(1):e}function isProtoString$1(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp$1(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated$1(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp$1(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp$1(e.name,t.name)))))}util$8.toSetString=supportsNullProto$1?identity$1:toSetString$1,util$8.fromSetString=supportsNullProto$1?identity$1:fromSetString$1,util$8.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated$1;const PROTOCOL$1="http:",PROTOCOL_AND_HOST$1=`${PROTOCOL$1}//host`;function createSafeHandler$1(e){return t=>{const r=getURLType$1(t),a=buildSafeBase$1(t),n=new URL(t,a);e(n);const o=n.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL$1.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST$1.length):computeRelativeURL$1(a,o)}}function withBase$1(e,t){return new URL(e,t).toString()}function buildUniqueSegment$1(e,t){let r=0;for(;;){const a=e+r++;if(-1===t.indexOf(a))return a}}function buildSafeBase$1(e){const t=e.split("..").length-1,r=buildUniqueSegment$1("p",e);let a=`${PROTOCOL_AND_HOST$1}/`;for(let e=0;e0&&!a[a.length-1]&&a.pop();r.length>0&&a.length>0&&r[0]===a[0];)r.shift(),a.shift();return a.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory$1=createSafeHandler$1((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),normalize$1=createSafeHandler$1((e=>{}));function join$1(e,t){const r=getURLType$1(t),a=getURLType$1(e);if(e=ensureDirectory$1(e),"absolute"===r)return withBase$1(t,void 0);if("absolute"===a)return withBase$1(t,e);if("scheme-relative"===r)return normalize$1(t);if("scheme-relative"===a)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL$1.length);if("path-absolute"===r)return normalize$1(t);if("path-absolute"===a)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL_AND_HOST$1.length);const n=buildSafeBase$1(t+e);return computeRelativeURL$1(n,withBase$1(t,withBase$1(e,n)))}function relative$1(e,t){const r=relativeIfPossible$1(e,t);return"string"==typeof r?r:normalize$1(t)}function relativeIfPossible$1(e,t){if(getURLType$1(e)!==getURLType$1(t))return null;const r=buildSafeBase$1(e+t),a=new URL(e,r),n=new URL(t,r);try{new URL("",n.toString())}catch(e){return null}return n.protocol!==a.protocol||n.user!==a.user||n.password!==a.password||n.hostname!==a.hostname||n.port!==a.port?null:computeRelativeURL$1(a,n)}util$8.normalize=normalize$1,util$8.join=join$1,util$8.relative=relative$1;var arraySet$1={};let ArraySet$4=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){const a=new e;for(let e=0,n=t.length;e=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||a==r&&o>=n||util$7.compareByGeneratedPositionsInflated(e,t)<=0}let MappingList$3=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter$1(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$7.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};mappingList$1.MappingList=MappingList$3;const base64VLQ$1=base64Vlq$1,util$6=util$8,ArraySet$3=arraySet$1.ArraySet,MappingList$2=mappingList$1.MappingList;let SourceMapGenerator$3=class e{constructor(e){e||(e={}),this._file=util$6.getArg(e,"file",null),this._sourceRoot=util$6.getArg(e,"sourceRoot",null),this._skipValidation=util$6.getArg(e,"skipValidation",!1),this._sources=new ArraySet$3,this._names=new ArraySet$3,this._mappings=new MappingList$2,this._sourcesContents=null}static fromSourceMap(t){const r=t.sourceRoot,a=new e({file:t.file,sourceRoot:r});return t.eachMapping((function(e){const t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=r&&(t.source=util$6.relative(r,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),a.addMapping(t)})),t.sources.forEach((function(e){let n=e;null!=r&&(n=util$6.relative(r,e)),a._sources.has(n)||a._sources.add(n);const o=t.sourceContentFor(e);null!=o&&a.setSourceContent(e,o)})),a}addMapping(e){const t=util$6.getArg(e,"generated"),r=util$6.getArg(e,"original",null);let a=util$6.getArg(e,"source",null),n=util$6.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,a,n),null!=a&&(a=String(a),this._sources.has(a)||this._sources.add(a)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:a,name:n})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$6.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$6.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$6.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let a=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');a=e.file}const n=this._sourceRoot;null!=n&&(a=util$6.relative(n,a));const o=this._mappings.toArray().length>0?new ArraySet$3:this._sources,s=new ArraySet$3;this._mappings.unsortedForEach((function(t){if(t.source===a&&null!=t.originalLine){const a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=util$6.join(r,t.source)),null!=n&&(t.source=util$6.relative(n,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}const i=t.source;null==i||o.has(i)||o.add(i);const c=t.name;null==c||s.has(c)||s.add(c)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const a=e.sourceContentFor(t);null!=a&&(null!=r&&(t=util$6.join(r,t)),null!=n&&(t=util$6.relative(n,t)),this.setSourceContent(t,a))}),this)}_validateMapping(e,t,r,a){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!a);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:a}))}_serializeMappings(){let e,t,r,a,n=0,o=1,s=0,i=0,c=0,u=0,p="";const l=this._mappings.toArray();for(let f=0,d=l.length;f0){if(!util$6.compareByGeneratedPositionsInflated(t,l[f-1]))continue;e+=","}e+=base64VLQ$1.encode(t.generatedColumn-n),n=t.generatedColumn,null!=t.source&&(a=this._sources.indexOf(t.source),e+=base64VLQ$1.encode(a-u),u=a,e+=base64VLQ$1.encode(t.originalLine-1-i),i=t.originalLine-1,e+=base64VLQ$1.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ$1.encode(r-c),c=r)),p+=e}return p}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$6.relative(t,e));const r=util$6.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}};SourceMapGenerator$3.prototype._version=3,sourceMapGenerator$1.SourceMapGenerator=SourceMapGenerator$3;var sourceNode$1={};const SourceMapGenerator$2=sourceMapGenerator$1.SourceMapGenerator,util$5=util$8,REGEX_NEWLINE$1=/(\r?\n)/,NEWLINE_CODE$1=10,isSourceNode$1="$$$isSourceNode$$$";let SourceNode$4=class e{constructor(e,t,r,a,n){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==n?null:n,this[isSourceNode$1]=!0,null!=a&&this.add(a)}static fromStringWithSourceMap(t,r,a){const n=new e,o=t.split(REGEX_NEWLINE$1);let s=0;const i=function(){return e()+(e()||"");function e(){return s=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode$1]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,a=this.children.length;r0){for(t=[],r=0;r' at an index ").concat(e,".\nBytecode: ").concat(this.bytecode));return this.varName+e},e.sourceNode=function(e,t,r){var a=GrammarLocation$3.offsetStart(e);return new SourceNode$3(a.line,a.column?a.column-1:null,String(e.source),t,r)},e.prototype.push=function(t){++this.sp>this.maxSp&&(this.maxSp=this.sp);var r=this.labels[this.sp],a=[this.name(this.sp)," = ",t,";"];if(r){if(this.sourceMapStack.length){var n=e.sourceNode(r.location,a.splice(0,2),r.label),o=this.sourceMapPopInternal(),s=o.parts,i=o.location,c=i.start.offsett.end.offset&&(r[2]={start:t.end,end:r[2].end,source:r[2].source})}this.sourceMapStack.push([e,e.length,t])},e.prototype.sourceMapPopInternal=function(){var e=this.sourceMapStack.pop();if(!e)throw new RangeError("Rule '".concat(this.ruleName,"': Attempting to pop an empty source map stack.\nBytecode: ").concat(this.bytecode));var t=e[0],r=e[1],a=e[2],n=t.splice(r).map((function(e){return e instanceof SourceNode$3?e:e+"\n"}));if(n.length){var o=GrammarLocation$3.offsetStart(a);t.push(new SourceNode$3(o.line,o.column-1,String(a.source),n))}return{parts:t,location:a}},e.prototype.sourceMapPop=function(e){var t=this.sourceMapPopInternal().location;if(this.sourceMapStack.length&&t.end.offset>2],n+=t[(3&e[o])<<4|e[o+1]>>4],n+=t[(15&e[o+1])<<2|e[o+2]>>6],n+=t[63&e[o+2]];return 1===r?(n+=t[e[a]>>2],n+=t[(3&e[a])<<4],n+="=="):2===r&&(n+=t[e[a]>>2],n+=t[(3&e[a])<<4|e[a+1]>>4],n+=t[(15&e[a+1])<<2],n+="="),n}utils$1.hex=hex$1,utils$1.stringEscape=stringEscape$2,utils$1.regexpClassEscape=regexpClassEscape$2,utils$1.base64=base64$4;var OPS_TO_PREFIXED_TYPES={$:"text","&":"simple_and","!":"simple_not"},OPS_TO_SUFFIXED_TYPES={"?":"optional","*":"zero_or_more","+":"one_or_more"},OPS_TO_SEMANTIC_PREDICATE_TYPES={"&":"semantic_and","!":"semantic_not"};function peg$subclass(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function peg$SyntaxError(e,t,r,a){var n=Error.call(this,e);return Object.setPrototypeOf&&Object.setPrototypeOf(n,peg$SyntaxError.prototype),n.expected=t,n.found=r,n.location=a,n.name="SyntaxError",n}function peg$padEnd(e,t,r){return r=r||" ",e.length>t?e:(t-=e.length,e+(r+=r.repeat(t)).slice(0,t))}function peg$parse(e,t){var r,a={},n=(t=void 0!==t?t:{}).grammarSource,o={Grammar:Br,ImportsAndSource:function(){var t,r,n;return t=Ar,r=function(){var t,r;return t=Ar,r=Ar,Mr(),r=e.substring(r,Ar),yr=t,At(r)}(),n=function(){var t,r,n,o;for(t=Ar,r=Ar,n=[],e.length>Ar?(o=e.charAt(Ar),Ar++):(o=a,0===kr&&Or(ce));o!==a;)n.push(o),e.length>Ar?(o=e.charAt(Ar),Ar++):(o=a,0===kr&&Or(ce));return r=e.substring(r,Ar),yr=t,vt(r)}(),yr=t,bt(r,n)}},s=Br,i="import",c=";",u=",",p="*",l="as",f="{",d="}",m="from",g="=",$="/",h="@",x=":",b="|",v="..",A="(",y=")",S=".",_="\n",E="\r\n",k="/*",T="*/",C="//",w="\\",P="i",R='"',L="'",F="[",O="^",B="]",M="-",D="0",I="b",j="f",N="n",U="r",q="t",G="v",H="x",z="u",W=/^[!$&]/,V=/^[*-+?]/,Y=/^[!&]/,Q=/^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/,J=/^[\n\r\u2028\u2029]/,X=/^[\r\u2028-\u2029]/,K=/^[A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376-\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\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\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E46\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\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\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\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\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,Z=/^[$0-9_\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962-\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u09E6-\u09EF\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B62-\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CE2-\u0CE3\u0CE6-\u0CEF\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62-\u0D63\u0D66-\u0D6F\u0D82-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18-\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F3F\u0F71-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19D9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u200C-\u200D\u203F-\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099-\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880-\uA881\uA8B4-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F1\uA900-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C-\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5-\uAAF6\uABE3-\uABEA\uABEC-\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33-\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]/,ee=/^[\n\r"\\\u2028-\u2029]/,te=/^[\n\r'\\\u2028-\u2029]/,re=/^[\n\r\\-\]\u2028-\u2029]/,ae=/^["'\\]/,ne=/^[0-9ux]/,oe=/^[0-9]/,se=/^[0-9a-f]/i,ie=/^[{}]/,ce={type:"any"},ue=wr("import",!1),pe=wr(";",!1),le=wr(",",!1),fe=wr("*",!1),de=wr("as",!1),me=wr("{",!1),ge=wr("}",!1),$e=wr("from",!1),he=wr("=",!1),xe=wr("/",!1),be=wr("@",!1),ve=wr(":",!1),Ae=Pr(["!","$","&"],!1,!1),ye=Pr([["*","+"],"?"],!1,!1),Se=wr("|",!1),_e=wr("..",!1),Ee=wr("(",!1),ke=wr(")",!1),Te=wr(".",!1),Ce=Pr(["!","&"],!1,!1),we=Rr("whitespace"),Pe=Pr(["\t",["\v","\f"]," "," "," ",[" "," "]," "," "," ","\ufeff"],!1,!1),Re=Pr(["\n","\r","\u2028","\u2029"],!1,!1),Le=Rr("end of line"),Fe=wr("\n",!1),Oe=wr("\r\n",!1),Be=Pr(["\r",["\u2028","\u2029"]],!1,!1),Me=Rr("comment"),De=wr("/*",!1),Ie=wr("*/",!1),je=wr("//",!1),Ne=Rr("identifier"),Ue=Pr([["A","Z"],"_",["a","z"],"ª","µ","º",["À","Ö"],["Ø","ö"],["ø","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ",["Ͱ","ʹ"],["Ͷ","ͷ"],["ͺ","ͽ"],"Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ρ"],["Σ","ϵ"],["Ϸ","ҁ"],["Ҋ","ԯ"],["Ա","Ֆ"],"ՙ",["ա","և"],["א","ת"],["װ","ײ"],["ؠ","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۥ","ۦ"],["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ߴ","ߵ"],"ߺ",["ࠀ","ࠕ"],"ࠚ","ࠤ","ࠨ",["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॱ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๆ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],"ໆ",["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["ა","ჺ"],["ჼ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["Ꭰ","Ᏽ"],["ᏸ","ᏽ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛮ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៗ","ៜ",["ᠠ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],"ᪧ",["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱽ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ᴀ","ᶿ"],["Ḁ","ἕ"],["Ἐ","Ἕ"],["ἠ","ὅ"],["Ὀ","Ὅ"],["ὐ","ὗ"],"Ὑ","Ὓ","Ὕ",["Ὗ","ώ"],["ᾀ","ᾴ"],["ᾶ","ᾼ"],"ι",["ῂ","ῄ"],["ῆ","ῌ"],["ῐ","ΐ"],["ῖ","Ί"],["ῠ","Ῥ"],["ῲ","ῴ"],["ῶ","ῼ"],"ⁱ","ⁿ",["ₐ","ₜ"],"ℂ","ℇ",["ℊ","ℓ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℯ","ℹ"],["ℼ","ℿ"],["ⅅ","ⅉ"],"ⅎ",["Ⅰ","ↈ"],["Ⰰ","Ⱞ"],["ⰰ","ⱞ"],["Ⱡ","ⳤ"],["Ⳬ","ⳮ"],["Ⳳ","ⳳ"],["ⴀ","ⴥ"],"ⴧ","ⴭ",["ⴰ","ⵧ"],"ⵯ",["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"ⸯ",["々","〇"],["〡","〩"],["〱","〵"],["〸","〼"],["ぁ","ゖ"],["ゝ","ゟ"],["ァ","ヺ"],["ー","ヿ"],["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꒌ"],["ꓐ","ꓽ"],["ꔀ","ꘌ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],["Ꙁ","ꙮ"],["ꙿ","ꚝ"],["ꚠ","ꛯ"],["ꜗ","ꜟ"],["Ꜣ","ꞈ"],["Ꞌ","Ɬ"],["Ʞ","ꞷ"],["ꟷ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],"ꧏ",["ꧠ","ꧤ"],["ꧦ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫝ"],["ꫠ","ꫪ"],["ꫲ","ꫴ"],["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꬰ","ꭚ"],["ꭜ","ꭥ"],["ꭰ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],["ff","st"],["ﬓ","ﬗ"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["A","Z"],["a","z"],["ヲ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),qe=wr("\\",!1),Ge=Pr(["$",["0","9"],"_",["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","٩"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],["۰","۹"],"ܑ",["ܰ","݊"],["ަ","ް"],["߀","߉"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ः"],["ऺ","़"],["ा","ॏ"],["॑","ॗ"],["ॢ","ॣ"],["०","९"],["ঁ","ঃ"],"়",["া","ৄ"],["ে","ৈ"],["ো","্"],"ৗ",["ৢ","ৣ"],["০","৯"],["ਁ","ਃ"],"਼",["ਾ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["੦","ੱ"],"ੵ",["ઁ","ઃ"],"઼",["ા","ૅ"],["ે","ૉ"],["ો","્"],["ૢ","ૣ"],["૦","૯"],["ଁ","ଃ"],"଼",["ା","ୄ"],["େ","ୈ"],["ୋ","୍"],["ୖ","ୗ"],["ୢ","ୣ"],["୦","୯"],"ஂ",["ா","ூ"],["ெ","ை"],["ொ","்"],"ௗ",["௦","௯"],["ఀ","ః"],["ా","ౄ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],["౦","౯"],["ಁ","ಃ"],"಼",["ಾ","ೄ"],["ೆ","ೈ"],["ೊ","್"],["ೕ","ೖ"],["ೢ","ೣ"],["೦","೯"],["ഁ","ഃ"],["ാ","ൄ"],["െ","ൈ"],["ൊ","്"],"ൗ",["ൢ","ൣ"],["൦","൯"],["ං","ඃ"],"්",["ා","ු"],"ූ",["ෘ","ෟ"],["෦","෯"],["ෲ","ෳ"],"ั",["ิ","ฺ"],["็","๎"],["๐","๙"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["໐","໙"],["༘","༙"],["༠","༩"],"༵","༷","༹",["༾","༿"],["ཱ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ါ","ှ"],["၀","၉"],["ၖ","ၙ"],["ၞ","ၠ"],["ၢ","ၤ"],["ၧ","ၭ"],["ၱ","ၴ"],["ႂ","ႍ"],["ႏ","ႝ"],["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","៓"],"៝",["០","៩"],["᠋","᠍"],["᠐","᠙"],"ᢩ",["ᤠ","ᤫ"],["ᤰ","᤻"],["᥆","᥏"],["᧐","᧙"],["ᨗ","ᨛ"],["ᩕ","ᩞ"],["᩠","᩼"],["᩿","᪉"],["᪐","᪙"],["᪰","᪽"],["ᬀ","ᬄ"],["᬴","᭄"],["᭐","᭙"],["᭫","᭳"],["ᮀ","ᮂ"],["ᮡ","ᮭ"],["᮰","᮹"],["᯦","᯳"],["ᰤ","᰷"],["᱀","᱉"],["᱐","᱙"],["᳐","᳒"],["᳔","᳨"],"᳭",["ᳲ","᳴"],["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["‌","‍"],["‿","⁀"],"⁔",["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〯"],["゙","゚"],["꘠","꘩"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠣ","ꠧ"],["ꢀ","ꢁ"],["ꢴ","꣄"],["꣐","꣙"],["꣠","꣱"],["꤀","꤉"],["ꤦ","꤭"],["ꥇ","꥓"],["ꦀ","ꦃ"],["꦳","꧀"],["꧐","꧙"],"ꧥ",["꧰","꧹"],["ꨩ","ꨶ"],"ꩃ",["ꩌ","ꩍ"],["꩐","꩙"],["ꩻ","ꩽ"],"ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫫ","ꫯ"],["ꫵ","꫶"],["ꯣ","ꯪ"],["꯬","꯭"],["꯰","꯹"],"ﬞ",["︀","️"],["︠","︯"],["︳","︴"],["﹍","﹏"],["0","9"],"_"],!1,!1),He=Rr("literal"),ze=wr("i",!1),We=Rr("string"),Ve=wr('"',!1),Ye=wr("'",!1),Qe=Pr(["\n","\r",'"',"\\",["\u2028","\u2029"]],!1,!1),Je=Pr(["\n","\r","'","\\",["\u2028","\u2029"]],!1,!1),Xe=Rr("character class"),Ke=wr("[",!1),Ze=wr("^",!1),et=wr("]",!1),tt=wr("-",!1),rt=Pr(["\n","\r",["\\","]"],["\u2028","\u2029"]],!1,!1),at=wr("0",!1),nt=Pr(['"',"'","\\"],!1,!1),ot=wr("b",!1),st=wr("f",!1),it=wr("n",!1),ct=wr("r",!1),ut=wr("t",!1),pt=wr("v",!1),lt=Pr([["0","9"],"u","x"],!1,!1),ft=wr("x",!1),dt=wr("u",!1),mt=Pr([["0","9"]],!1,!1),gt=Pr([["0","9"],["a","f"]],!1,!0),$t=Rr("code block"),ht=Pr(["{","}"],!1,!1),xt=function(e,t,r,a){return{type:"grammar",imports:e,topLevelInitializer:t,initializer:r,rules:a,location:Tr()}},bt=function(e,t){return[e,t]},vt=function(e){return{type:"top_level_initializer",code:e,codeLocation:Tr()}},At=function(e){return{type:"top_level_initializer",code:e,codeLocation:Tr()}},yt=function(e,t){return{type:"grammar_import",what:e,from:t,location:Tr()}},St=function(e){return{type:"grammar_import",what:[],from:e,location:Tr()}},_t=function(e,t){return t?Array.isArray(t)?(t.unshift(e),t):[e,t]:[e]},Et=function(e){return{type:"import_binding_default",binding:e[0],location:e[1]}},kt=function(e){return[{type:"import_binding_all",binding:e[0],location:e[1]}]},Tt=function(){return[]},Ct=function(e,t){return{type:"import_binding_rename",rename:e[0],renameLocation:e[1],binding:t[0],location:t[1]}},wt=function(e){return{type:"import_binding",binding:e[0],location:e[1]}},Pt=function(e){return{type:"import_module_specifier",module:e,location:Tr()}},Rt=function(e){return[e,Tr()]},Lt=function(e){return[e,Tr()]},Ft=function(e){return Sa.indexOf(e[0])>=0&&Cr("Binding identifier can't be a reserved word \"".concat(e[0],'"'),e[1]),e[0]},Ot=function(e){return{type:"top_level_initializer",code:e[0],codeLocation:e[1],location:Tr()}},Bt=function(e){return{type:"initializer",code:e[0],codeLocation:e[1],location:Tr()}},Mt=function(e,t,r){return{type:"rule",name:e[0],nameLocation:e[1],expression:null!==t?{type:"named",name:t,expression:r,location:Tr()}:r,location:Tr()}},Dt=function(e,t){return t.length>0?{type:"choice",alternatives:[e].concat(t),location:Tr()}:e},It=function(e,t){return null!==t?{type:"action",expression:e,code:t[0],codeLocation:t[1],location:Tr()}:e},jt=function(e,t){return t.length>0||"labeled"===e.type&&e.pick?{type:"sequence",elements:[e].concat(t),location:Tr()}:e},Nt=function(e,t,r){return r.type.startsWith("semantic_")&&Cr('"@" cannot be used on a semantic predicate',e),{type:"labeled",label:null!==t?t[0]:null,labelLocation:null!==t?t[1]:e,pick:!0,expression:r,location:Tr()}},Ut=function(e,t){return{type:"labeled",label:e[0],labelLocation:e[1],expression:t,location:Tr()}},qt=function(){return Tr()},Gt=function(e){return Sa.indexOf(e[0])>=0&&Cr("Label can't be a reserved word \"".concat(e[0],'"'),e[1]),e},Ht=function(e,t){return{type:OPS_TO_PREFIXED_TYPES[e],expression:t,location:Tr()}},zt=function(e,t){return{type:OPS_TO_SUFFIXED_TYPES[t],expression:e,location:Tr()}},Wt=function(e,t,r){var a=t[0],n=t[1];return"constant"===n.type&&0===n.value&&Cr("The maximum count of repetitions of the rule must be > 0",n.location),{type:"repeated",min:a,max:n,expression:e,delimiter:r,location:Tr()}},Vt=function(e,t){return[null!==e?e:{type:"constant",value:0},null!==t?t:{type:"constant",value:null}]},Yt=function(e){return[null,e]},Qt=function(e){return{type:"constant",value:e,location:Tr()}},Jt=function(e){return{type:"variable",value:e[0],location:Tr()}},Xt=function(e){return{type:"function",value:e[0],codeLocation:e[1],location:Tr()}},Kt=function(e){return"labeled"===e.type||"sequence"===e.type?{type:"group",expression:e,location:Tr()}:e},Zt=function(e,t){return{type:"library_ref",name:t[0],library:e[0],libraryNumber:-1,location:Tr()}},er=function(e){return{type:"rule_ref",name:e[0],location:Tr()}},tr=function(e,t){return{type:OPS_TO_SEMANTIC_PREDICATE_TYPES[e],code:t[0],codeLocation:t[1],location:Tr()}},rr=function(e,t){return[e+t.join(""),Tr()]},ar=function(e,t){return{type:"literal",value:e,ignoreCase:null!==t,location:Tr()}},nr=function(e){return e.join("")},or=function(e){return e.join("")},sr=function(e,t,r){return{type:"class",parts:t.filter((function(e){return""!==e})),inverted:null!==e,ignoreCase:null!==r,location:Tr()}},ir=function(t,r){return t.charCodeAt(0)>r.charCodeAt(0)&&Cr("Invalid character range: "+e.substring(yr,Ar)+"."),[t,r]},cr=function(){return""},ur=function(){return"\0"},pr=function(){return"\b"},lr=function(){return"\f"},fr=function(){return"\n"},dr=function(){return"\r"},mr=function(){return"\t"},gr=function(){return"\v"},$r=function(e){return String.fromCharCode(parseInt(e,16))},hr=function(e){return String.fromCharCode(parseInt(e,16))},xr=function(){return{type:"any",location:Tr()}},br=function(e){return[e,Tr()]},vr=function(e){return parseInt(e,10)},Ar=0|t.peg$currPos,yr=Ar,Sr=[{line:1,column:1}],_r=Ar,Er=t.peg$maxFailExpected||[],kr=0|t.peg$silentFails;if(t.startRule){if(!(t.startRule in o))throw new Error("Can't start parsing from rule \""+t.startRule+'".');s=o[t.startRule]}function Tr(){return Fr(yr,Ar)}function Cr(e,t){throw function(e,t){return new peg$SyntaxError(e,null,null,t)}(e,t=void 0!==t?t:Fr(yr,Ar))}function wr(e,t){return{type:"literal",text:e,ignoreCase:t}}function Pr(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function Rr(e){return{type:"other",description:e}}function Lr(t){var r,a=Sr[t];if(a)return a;if(t>=Sr.length)r=Sr.length-1;else for(r=t;!Sr[--r];);for(a={line:(a=Sr[r]).line,column:a.column};r_r&&(_r=Ar,Er=[]),Er.push(e))}function Br(){var t,r,n,o,s,i,c,u;if(t=Ar,r=Mr(),n=Ar,o=Aa(),s=function(){var t,r,n,o;return t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a&&(n=ba())!==a?(125===e.charCodeAt(Ar)?(o=d,Ar++):(o=a,0===kr&&Or(ge)),o!==a&&ya()!==a?(yr=t,t=Ot(n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),s!==a?n=s:(Ar=n,n=a),n===a&&(n=null),o=Ar,s=Aa(),i=function(){var e,t;return e=Ar,(t=ba())!==a&&ya()!==a?(yr=e,e=Bt(t)):(Ar=e,e=a),e}(),i!==a?o=i:(Ar=o,o=a),o===a&&(o=null),s=Aa(),i=[],c=Ar,(u=Gr())!==a?(Aa(),c=u):(Ar=c,c=a),c!==a)for(;c!==a;)i.push(c),c=Ar,(u=Gr())!==a?(Aa(),c=u):(Ar=c,c=a);else i=a;return i!==a?(yr=t,t=xt(r,n,o,i)):(Ar=t,t=a),t}function Mr(){var e,t;for(e=[],t=Dr();t!==a;)e.push(t),t=Dr();return e}function Dr(){var t,r,n,o,s,p,l,f;return t=Ar,Aa(),e.substr(Ar,6)===i?(r=i,Ar+=6):(r=a,0===kr&&Or(ue)),r!==a?(Aa(),n=function(){var t,r,n,o,s;return(t=Ir())===a&&(t=jr())===a&&(t=Ar,r=function(){var e,t;return e=Ar,(t=qr())!==a&&(yr=e,t=Et(t)),e=t}(),r!==a?(n=Ar,Aa(),44===e.charCodeAt(Ar)?(o=u,Ar++):(o=a,0===kr&&Or(le)),o!==a?(Aa(),(s=Ir())===a&&(s=jr()),s!==a?n=s:(Ar=n,n=a)):(Ar=n,n=a),n===a&&(n=null),yr=t,t=_t(r,n)):(Ar=t,t=a)),t}(),n!==a?(o=Aa(),s=function(){var t,r,n;return t=Ar,e.substr(Ar,4)===m?(r=m,Ar+=4):(r=a,0===kr&&Or($e)),r!==a?(Aa(),(n=Ur())!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a),t}(),s!==a?(p=Ar,l=Aa(),59===e.charCodeAt(Ar)?(f=c,Ar++):(f=a,0===kr&&Or(pe)),f!==a?p=l=[l,f]:(Ar=p,p=a),p===a&&(p=null),yr=t,t=yt(n,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,Aa(),e.substr(Ar,6)===i?(r=i,Ar+=6):(r=a,0===kr&&Or(ue)),r!==a?(Aa(),(n=Ur())!==a?(o=Ar,s=Aa(),59===e.charCodeAt(Ar)?(p=c,Ar++):(p=a,0===kr&&Or(pe)),p!==a?o=s=[s,p]:(Ar=o,o=a),o===a&&(o=null),yr=t,t=St(n)):(Ar=t,t=a)):(Ar=t,t=a)),t}function Ir(){var t,r,n,o;return t=Ar,42===e.charCodeAt(Ar)?(r=p,Ar++):(r=a,0===kr&&Or(fe)),r!==a?(Aa(),e.substr(Ar,2)===l?(n=l,Ar+=2):(n=a,0===kr&&Or(de)),n!==a?(Aa(),(o=qr())!==a?(yr=t,t=kt(o)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}function jr(){var t,r,n,o,s;return t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(Aa(),125===e.charCodeAt(Ar)?(n=d,Ar++):(n=a,0===kr&&Or(ge)),n!==a?(yr=t,t=Tt()):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(Aa(),n=function(){var t,r,n,o,s,i;for(t=Ar,r=[],n=Nr();n!==a;)r.push(n),n=Ar,o=Ar,s=Aa(),44===e.charCodeAt(Ar)?(i=u,Ar++):(i=a,0===kr&&Or(le)),i!==a?o=s=[s,i,Aa()]:(Ar=o,o=a),o!==a&&(o=Nr())===a?(Ar=n,n=a):n=o;return r.length<1?(Ar=t,t=a):t=r,t}(),n!==a?(Aa(),o=Ar,44===e.charCodeAt(Ar)?(s=u,Ar++):(s=a,0===kr&&Or(le)),s!==a?o=s=[s,Aa()]:(Ar=o,o=a),o===a&&(o=null),125===e.charCodeAt(Ar)?(s=d,Ar++):(s=a,0===kr&&Or(ge)),s!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)),t}function Nr(){var t,r,n,o;return t=Ar,r=function(){var e,t;return(e=oa())===a&&(e=Ar,(t=ca())!==a&&(yr=e,t=Lt(t)),e=t),e}(),r!==a?(Aa(),e.substr(Ar,2)===l?(n=l,Ar+=2):(n=a,0===kr&&Or(de)),n!==a?(Aa(),(o=qr())!==a?(yr=t,t=Ct(r,o)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=qr())!==a&&(yr=t,r=wt(r)),t=r),t}function Ur(){var e,t;return e=Ar,(t=ca())!==a&&(yr=e,t=Pt(t)),t}function qr(){var e,t;return e=Ar,t=function(){var e,t;return e=Ar,(t=oa())!==a&&(yr=e,t=Ft(t)),e=t}(),t!==a&&(yr=e,t=Rt(t)),t}function Gr(){var t,r,n,o,s;return t=Ar,(r=oa())!==a?(Aa(),n=Ar,(o=ca())!==a?(Aa(),n=o):(Ar=n,n=a),n===a&&(n=null),61===e.charCodeAt(Ar)?(o=g,Ar++):(o=a,0===kr&&Or(he)),o!==a?(Aa(),(s=Hr())!==a&&ya()!==a?(yr=t,t=Mt(r,n,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}function Hr(){var t,r,n,o,s,i;if(t=Ar,(r=zr())!==a){for(n=[],o=Ar,Aa(),47===e.charCodeAt(Ar)?(s=$,Ar++):(s=a,0===kr&&Or(xe)),s!==a?(Aa(),(i=zr())!==a?o=i:(Ar=o,o=a)):(Ar=o,o=a);o!==a;)n.push(o),o=Ar,Aa(),47===e.charCodeAt(Ar)?(s=$,Ar++):(s=a,0===kr&&Or(xe)),s!==a?(Aa(),(i=zr())!==a?o=i:(Ar=o,o=a)):(Ar=o,o=a);yr=t,t=Dt(r,n)}else Ar=t,t=a;return t}function zr(){var e,t,r,n;return e=Ar,t=function(){var e,t,r,n,o;if(e=Ar,(t=Wr())!==a){for(r=[],n=Ar,Aa(),(o=Wr())!==a?n=o:(Ar=n,n=a);n!==a;)r.push(n),n=Ar,Aa(),(o=Wr())!==a?n=o:(Ar=n,n=a);yr=e,e=jt(t,r)}else Ar=e,e=a;return e}(),t!==a?(r=Ar,Aa(),(n=ba())!==a?r=n:(Ar=r,r=a),r===a&&(r=null),yr=e,e=It(t,r)):(Ar=e,e=a),e}function Wr(){var t,r,n,o;return t=Ar,r=function(){var t,r;return t=Ar,64===e.charCodeAt(Ar)?(r=h,Ar++):(r=a,0===kr&&Or(be)),r!==a&&(yr=t,r=qt()),t=r}(),r!==a?((n=Vr())===a&&(n=null),(o=Yr())!==a?(yr=t,t=Nt(r,n,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=Vr())!==a?(n=Aa(),(o=Yr())!==a?(yr=t,t=Ut(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Yr())),t}function Vr(){var t,r,n;return t=Ar,(r=oa())!==a?(Aa(),58===e.charCodeAt(Ar)?(n=x,Ar++):(n=a,0===kr&&Or(ve)),n!==a?(yr=t,t=Gt(r)):(Ar=t,t=a)):(Ar=t,t=a),t}function Yr(){var t,r,n;return t=Ar,r=function(){var t;return t=e.charAt(Ar),W.test(t)?Ar++:(t=a,0===kr&&Or(Ae)),t}(),r!==a?(Aa(),(n=Qr())!==a?(yr=t,t=Ht(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Qr()),t}function Qr(){var t,r,n;return t=Ar,(r=Xr())!==a?(Aa(),n=function(){var t;return t=e.charAt(Ar),V.test(t)?Ar++:(t=a,0===kr&&Or(ye)),t}(),n!==a?(yr=t,t=zt(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=function(){var t,r,n,o,s,i,c;return t=Ar,(r=Xr())!==a?(Aa(),124===e.charCodeAt(Ar)?(n=b,Ar++):(n=a,0===kr&&Or(Se)),n!==a?(Aa(),o=function(){var t,r,n,o;return t=Ar,(r=Jr())===a&&(r=null),Aa(),e.substr(Ar,2)===v?(n=v,Ar+=2):(n=a,0===kr&&Or(_e)),n!==a?(Aa(),(o=Jr())===a&&(o=null),yr=t,t=Vt(r,o)):(Ar=t,t=a),t===a&&(t=Ar,(r=Jr())!==a&&(yr=t,r=Yt(r)),t=r),t}(),o!==a?(Aa(),s=Ar,44===e.charCodeAt(Ar)?(i=u,Ar++):(i=a,0===kr&&Or(le)),i!==a?(Aa(),(c=Hr())!==a?(Aa(),s=c):(Ar=s,s=a)):(Ar=s,s=a),s===a&&(s=null),124===e.charCodeAt(Ar)?(i=b,Ar++):(i=a,0===kr&&Or(Se)),i!==a?(yr=t,t=Wt(r,o,s)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=Xr())),t}function Jr(){var t,r;return t=Ar,r=function(){var t,r,n,o;if(t=Ar,r=Ar,n=[],(o=ha())!==a)for(;o!==a;)n.push(o),o=ha();else n=a;return(r=n!==a?e.substring(r,Ar):n)!==a&&(yr=t,r=vr(r)),t=r}(),r!==a&&(yr=t,r=Qt(r)),(t=r)===a&&(t=Ar,(r=oa())!==a&&(yr=t,r=Jt(r)),(t=r)===a&&(t=Ar,(r=ba())!==a&&(yr=t,r=Xt(r)),t=r)),t}function Xr(){var t,r,n,o;return t=function(){var t,r,n;return kr++,t=Ar,(r=ca())!==a?(105===e.charCodeAt(Ar)?(n=P,Ar++):(n=a,0===kr&&Or(ze)),n===a&&(n=null),yr=t,t=ar(r,n)):(Ar=t,t=a),kr--,t===a&&(r=a,0===kr&&Or(He)),t}(),t===a&&(t=function(){var t,r,n,o,s,i;if(kr++,t=Ar,91===e.charCodeAt(Ar)?(r=F,Ar++):(r=a,0===kr&&Or(Ke)),r!==a){for(94===e.charCodeAt(Ar)?(n=O,Ar++):(n=a,0===kr&&Or(Ze)),n===a&&(n=null),o=[],(s=la())===a&&(s=fa());s!==a;)o.push(s),(s=la())===a&&(s=fa());93===e.charCodeAt(Ar)?(s=B,Ar++):(s=a,0===kr&&Or(et)),s!==a?(105===e.charCodeAt(Ar)?(i=P,Ar++):(i=a,0===kr&&Or(ze)),i===a&&(i=null),yr=t,t=sr(n,o,i)):(Ar=t,t=a)}else Ar=t,t=a;return kr--,t===a&&(r=a,0===kr&&Or(Xe)),t}(),t===a&&(t=function(){var t,r;return t=Ar,46===e.charCodeAt(Ar)?(r=S,Ar++):(r=a,0===kr&&Or(Te)),r!==a&&(yr=t,r=xr()),t=r}(),t===a&&(t=function(){var t,r,n,o,s,i,c;return t=Ar,(r=oa())!==a?(46===e.charCodeAt(Ar)?(n=S,Ar++):(n=a,0===kr&&Or(Te)),n!==a&&(o=oa())!==a?(yr=t,t=Zt(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=Ar,(r=oa())!==a?(n=Ar,kr++,o=Ar,s=Aa(),i=Ar,(c=ca())!==a?i=c=[c,Aa()]:(Ar=i,i=a),i===a&&(i=null),61===e.charCodeAt(Ar)?(c=g,Ar++):(c=a,0===kr&&Or(he)),c!==a?o=s=[s,i,c]:(Ar=o,o=a),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a?(yr=t,t=er(r)):(Ar=t,t=a)):(Ar=t,t=a)),t}(),t===a&&(t=function(){var t,r,n;return t=Ar,r=function(){var t;return t=e.charAt(Ar),Y.test(t)?Ar++:(t=a,0===kr&&Or(Ce)),t}(),r!==a?(Aa(),(n=ba())!==a?(yr=t,t=tr(r,n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=Ar,40===e.charCodeAt(Ar)?(r=A,Ar++):(r=a,0===kr&&Or(Ee)),r!==a?(Aa(),(n=Hr())!==a?(Aa(),41===e.charCodeAt(Ar)?(o=y,Ar++):(o=a,0===kr&&Or(ke)),o!==a?(yr=t,t=Kt(n)):(Ar=t,t=a)):(Ar=t,t=a)):(Ar=t,t=a)))))),t}function Kr(){var t;return e.length>Ar?(t=e.charAt(Ar),Ar++):(t=a,0===kr&&Or(ce)),t}function Zr(){var t;return kr++,t=e.charAt(Ar),Q.test(t)?Ar++:(t=a,0===kr&&Or(Pe)),kr--,t===a&&0===kr&&Or(we),t}function ea(){var t;return t=e.charAt(Ar),J.test(t)?Ar++:(t=a,0===kr&&Or(Re)),t}function ta(){var t;return kr++,10===e.charCodeAt(Ar)?(t=_,Ar++):(t=a,0===kr&&Or(Fe)),t===a&&(e.substr(Ar,2)===E?(t=E,Ar+=2):(t=a,0===kr&&Or(Oe)),t===a&&(t=e.charAt(Ar),X.test(t)?Ar++:(t=a,0===kr&&Or(Be)))),kr--,t===a&&0===kr&&Or(Le),t}function ra(){var t;return kr++,(t=function(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===k?(r=k,Ar+=2):(r=a,0===kr&&Or(De)),r!==a){for(n=[],o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);e.substr(Ar,2)===T?(o=T,Ar+=2):(o=a,0===kr&&Or(Ie)),o!==a?t=r=[r,n,o]:(Ar=t,t=a)}else Ar=t,t=a;return t}())===a&&(t=na()),kr--,t===a&&0===kr&&Or(Me),t}function aa(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===k?(r=k,Ar+=2):(r=a,0===kr&&Or(De)),r!==a){for(n=[],o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),i===a&&(i=ea()),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,e.substr(Ar,2)===T?(i=T,Ar+=2):(i=a,0===kr&&Or(Ie)),i===a&&(i=ea()),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);e.substr(Ar,2)===T?(o=T,Ar+=2):(o=a,0===kr&&Or(Ie)),o!==a?t=r=[r,n,o]:(Ar=t,t=a)}else Ar=t,t=a;return t}function na(){var t,r,n,o,s,i;if(t=Ar,e.substr(Ar,2)===C?(r=C,Ar+=2):(r=a,0===kr&&Or(je)),r!==a){for(n=[],o=Ar,s=Ar,kr++,i=ea(),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=ea(),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);t=r=[r,n]}else Ar=t,t=a;return t}function oa(){var e,t,r,n;if(kr++,e=Ar,(t=sa())!==a){for(r=[],n=ia();n!==a;)r.push(n),n=ia();yr=e,e=rr(t,r)}else Ar=e,e=a;return kr--,e===a&&(t=a,0===kr&&Or(Ne)),e}function sa(){var t,r,n;return t=e.charAt(Ar),K.test(t)?Ar++:(t=a,0===kr&&Or(Ue)),t===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=$a())!==a?t=n:(Ar=t,t=a)),t}function ia(){var t;return(t=sa())===a&&(t=e.charAt(Ar),Z.test(t)?Ar++:(t=a,0===kr&&Or(Ge))),t}function ca(){var t,r,n,o;if(kr++,t=Ar,34===e.charCodeAt(Ar)?(r=R,Ar++):(r=a,0===kr&&Or(Ve)),r!==a){for(n=[],o=ua();o!==a;)n.push(o),o=ua();34===e.charCodeAt(Ar)?(o=R,Ar++):(o=a,0===kr&&Or(Ve)),o!==a?(yr=t,t=nr(n)):(Ar=t,t=a)}else Ar=t,t=a;if(t===a)if(t=Ar,39===e.charCodeAt(Ar)?(r=L,Ar++):(r=a,0===kr&&Or(Ye)),r!==a){for(n=[],o=pa();o!==a;)n.push(o),o=pa();39===e.charCodeAt(Ar)?(o=L,Ar++):(o=a,0===kr&&Or(Ye)),o!==a?(yr=t,t=or(n)):(Ar=t,t=a)}else Ar=t,t=a;return kr--,t===a&&(r=a,0===kr&&Or(We)),t}function ua(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),ee.test(o)?Ar++:(o=a,0===kr&&Or(Qe)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function pa(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),te.test(o)?Ar++:(o=a,0===kr&&Or(Je)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function la(){var t,r,n,o;return t=Ar,(r=fa())!==a?(45===e.charCodeAt(Ar)?(n=M,Ar++):(n=a,0===kr&&Or(tt)),n!==a&&(o=fa())!==a?(yr=t,t=ir(r,o)):(Ar=t,t=a)):(Ar=t,t=a),t}function fa(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=e.charAt(Ar),re.test(o)?Ar++:(o=a,0===kr&&Or(rt)),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),(t=r!==a?e.substring(t,Ar):r)===a&&(t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&(n=ma())!==a?t=n:(Ar=t,t=a),t===a&&(t=da())),t}function da(){var t,r;return t=Ar,92===e.charCodeAt(Ar)?(r=w,Ar++):(r=a,0===kr&&Or(qe)),r!==a&&ta()!==a?(yr=t,t=cr()):(Ar=t,t=a),t}function ma(){var t,r,n,o;return t=function(){var t;return(t=ga())===a&&(t=function(){var t,r,n,o;return t=Ar,r=Ar,n=Ar,kr++,o=function(){var t;return(t=ga())===a&&(t=e.charAt(Ar),ne.test(t)?Ar++:(t=a,0===kr&&Or(lt))),t}(),o===a&&(o=ea()),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a&&(o=Kr())!==a?r=n=[n,o]:(Ar=r,r=a),t=r!==a?e.substring(t,Ar):r}()),t}(),t===a&&(t=Ar,48===e.charCodeAt(Ar)?(r=D,Ar++):(r=a,0===kr&&Or(at)),r!==a?(n=Ar,kr++,o=ha(),kr--,o===a?n=void 0:(Ar=n,n=a),n!==a?(yr=t,t=ur()):(Ar=t,t=a)):(Ar=t,t=a),t===a&&(t=function(){var t,r,n,o,s,i;return t=Ar,120===e.charCodeAt(Ar)?(r=H,Ar++):(r=a,0===kr&&Or(ft)),r!==a?(n=Ar,o=Ar,(s=xa())!==a&&(i=xa())!==a?o=s=[s,i]:(Ar=o,o=a),(n=o!==a?e.substring(n,Ar):o)!==a?(yr=t,t=$r(n)):(Ar=t,t=a)):(Ar=t,t=a),t}(),t===a&&(t=$a()))),t}function ga(){var t,r;return t=e.charAt(Ar),ae.test(t)?Ar++:(t=a,0===kr&&Or(nt)),t===a&&(t=Ar,98===e.charCodeAt(Ar)?(r=I,Ar++):(r=a,0===kr&&Or(ot)),r!==a&&(yr=t,r=pr()),(t=r)===a&&(t=Ar,102===e.charCodeAt(Ar)?(r=j,Ar++):(r=a,0===kr&&Or(st)),r!==a&&(yr=t,r=lr()),(t=r)===a&&(t=Ar,110===e.charCodeAt(Ar)?(r=N,Ar++):(r=a,0===kr&&Or(it)),r!==a&&(yr=t,r=fr()),(t=r)===a&&(t=Ar,114===e.charCodeAt(Ar)?(r=U,Ar++):(r=a,0===kr&&Or(ct)),r!==a&&(yr=t,r=dr()),(t=r)===a&&(t=Ar,116===e.charCodeAt(Ar)?(r=q,Ar++):(r=a,0===kr&&Or(ut)),r!==a&&(yr=t,r=mr()),(t=r)===a&&(t=Ar,118===e.charCodeAt(Ar)?(r=G,Ar++):(r=a,0===kr&&Or(pt)),r!==a&&(yr=t,r=gr()),t=r)))))),t}function $a(){var t,r,n,o,s,i,c,u;return t=Ar,117===e.charCodeAt(Ar)?(r=z,Ar++):(r=a,0===kr&&Or(dt)),r!==a?(n=Ar,o=Ar,(s=xa())!==a&&(i=xa())!==a&&(c=xa())!==a&&(u=xa())!==a?o=s=[s,i,c,u]:(Ar=o,o=a),(n=o!==a?e.substring(n,Ar):o)!==a?(yr=t,t=hr(n)):(Ar=t,t=a)):(Ar=t,t=a),t}function ha(){var t;return t=e.charAt(Ar),oe.test(t)?Ar++:(t=a,0===kr&&Or(mt)),t}function xa(){var t;return t=e.charAt(Ar),se.test(t)?Ar++:(t=a,0===kr&&Or(gt)),t}function ba(){var t,r,n,o;return kr++,t=Ar,123===e.charCodeAt(Ar)?(r=f,Ar++):(r=a,0===kr&&Or(me)),r!==a?(n=function(){var e,t;return e=Ar,t=va(),yr=e,e=t=br(t)}(),125===e.charCodeAt(Ar)?(o=d,Ar++):(o=a,0===kr&&Or(ge)),o!==a?t=n:(Ar=t,t=a)):(Ar=t,t=a),kr--,t===a&&(r=a,0===kr&&Or($t)),t}function va(){var t,r,n,o,s,i;if(t=Ar,r=[],n=[],o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a),o!==a)for(;o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);else n=a;for(n===a&&(n=Ar,123===e.charCodeAt(Ar)?(o=f,Ar++):(o=a,0===kr&&Or(me)),o!==a?(s=va(),125===e.charCodeAt(Ar)?(i=d,Ar++):(i=a,0===kr&&Or(ge)),i!==a?n=o=[o,s,i]:(Ar=n,n=a)):(Ar=n,n=a));n!==a;){if(r.push(n),n=[],o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a),o!==a)for(;o!==a;)n.push(o),o=Ar,s=Ar,kr++,i=e.charAt(Ar),ie.test(i)?Ar++:(i=a,0===kr&&Or(ht)),kr--,i===a?s=void 0:(Ar=s,s=a),s!==a&&(i=Kr())!==a?o=s=[s,i]:(Ar=o,o=a);else n=a;n===a&&(n=Ar,123===e.charCodeAt(Ar)?(o=f,Ar++):(o=a,0===kr&&Or(me)),o!==a?(s=va(),125===e.charCodeAt(Ar)?(i=d,Ar++):(i=a,0===kr&&Or(ge)),i!==a?n=o=[o,s,i]:(Ar=n,n=a)):(Ar=n,n=a))}return e.substring(t,Ar)}function Aa(){var e,t;for(e=[],(t=Zr())===a&&(t=ta())===a&&(t=ra());t!==a;)e.push(t),(t=Zr())===a&&(t=ta())===a&&(t=ra());return e}function ya(){var t,r,n,o;if(t=[],r=Ar,n=Aa(),59===e.charCodeAt(Ar)?(o=c,Ar++):(o=a,0===kr&&Or(pe)),o!==a?r=n=[n,o]:(Ar=r,r=a),r!==a)for(;r!==a;)t.push(r),r=Ar,n=Aa(),59===e.charCodeAt(Ar)?(o=c,Ar++):(o=a,0===kr&&Or(pe)),o!==a?r=n=[n,o]:(Ar=r,r=a);else t=a;return t===a&&(t=Ar,r=function(){var e,t;for(e=[],(t=Zr())===a&&(t=aa());t!==a;)e.push(t),(t=Zr())===a&&(t=aa());return e}(),(n=na())===a&&(n=null),(o=ta())!==a?t=r=[r,n,o]:(Ar=t,t=a),t===a&&(t=Ar,r=Aa(),n=function(){var t,r;return t=Ar,kr++,e.length>Ar?(r=e.charAt(Ar),Ar++):(r=a,0===kr&&Or(ce)),kr--,r===a?t=void 0:(Ar=t,t=a),t}(),n!==a?t=r=[r,n]:(Ar=t,t=a))),t}var Sa=t.reservedWords||[];if(r=s(),t.peg$library)return{peg$result:r,peg$currPos:Ar,peg$FAILED:a,peg$maxFailExpected:Er,peg$maxFailPos:_r};if(r!==a&&Ar===e.length)return r;throw r!==a&&Ar0){for(t=1,r=1;t0&&(t.forEach((function(e){o.push("var "+e+' = require("'+stringEscape$1(u[e])+'");')})),o.push(""));for(var s=e.imports.length,i=0;i0&&(n.forEach((function(e){o.push("import "+e+' from "'+stringEscape$1(u[e])+'";')})),o.push(""));for(var s=0;s targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))'," ? this.location.source.offset(s)"," : s;",' var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", offset_s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + offset_s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),t.trace&&u.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var w="{ "+c.map((function(e){return e+": "+$(e)})).join(", ")+" }",P=$(c[0]);if(u.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+w+";"," var peg$startRuleFunction = "+P+";","",new SourceNode$2(null,null,t.grammarSource,__spreadArray$4([r.map((function(e,t){return" var "+l(t)+' = "'+stringEscape$1(e)+'";'})).concat("",n.map((function(e,t){return" var "+f(t)+" = /^["+((r=e).inverted?"^":"")+r.value.map((function(e){return Array.isArray(e)?regexpClassEscape$1(e[0])+"-"+regexpClassEscape$1(e[1]):regexpClassEscape$1(e)})).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r}))).concat("",o.map((function(e,t){return" var "+d(t)+" = "+function(e){switch(e.type){case"rule":return'peg$otherExpectation("'+stringEscape$1(e.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape$1(e.value)+'", '+e.ignoreCase+")";case"class":return"peg$classExpectation(["+e.value.map((function(e){return Array.isArray(e)?'["'+stringEscape$1(e[0])+'", "'+stringEscape$1(e[1])+'"]':'"'+stringEscape$1(e)+'"'})).join(", ")+"], "+e.inverted+", "+e.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(e)+")")}}(e)+";"}))).concat("").join("\n")],s.map((function(e,t){return wrapInSourceNode("\n var ".concat(m(t)," = function(").concat(e.params.join(", "),") {"),e.body,e.location,"};")})),!0)),""," var peg$currPos = options.peg$currPos | 0;"," var peg$savedPos = peg$currPos;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = peg$currPos;"," var peg$maxFailExpected = options.peg$maxFailExpected || [];"," var peg$silentFails = options.peg$silentFails | 0;",""),t.cache&&u.push(" var peg$resultsCache = {};",""),t.trace&&u.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),u.push(" var peg$result;",""," if (options.startRule) {"," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," if (pos >= peg$posDetailsCache.length) {"," p = peg$posDetailsCache.length - 1;"," } else {"," p = pos;"," while (!peg$posDetailsCache[--p]) {}"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos, offset) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," var res = {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };",' if (offset && peg$source && (typeof peg$source.offset === "function")) {'," res.start = peg$source.offset(res.start);"," res.end = peg$source.offset(res.end);"," }"," return res;"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),e.imports.length>0&&u.push(" var peg$assign = Object.assign || function(t) {"," var i, s;"," for (i = 1; i < arguments.length; i++) {"," s = arguments[i];"," for (var p in s) {"," if (Object.prototype.hasOwnProperty.call(s, p)) {"," t[p] = s[p];"," }"," }"," }"," return t;"," };",""," function peg$callLibrary(lib, startRule) {"," const opts = peg$assign({}, options, {"," startRule: startRule,"," peg$currPos: peg$currPos,"," peg$silentFails: peg$silentFails,"," peg$library: true,"," peg$maxFailExpected: peg$maxFailExpected"," });"," const res = lib.parse(input, opts);"," peg$currPos = res.peg$currPos;"," peg$maxFailPos = res.peg$maxFailPos;"," peg$maxFailExpected = res.peg$maxFailExpected;"," return (res.peg$result === res.peg$FAILED) ? peg$FAILED : res.peg$result;"," }",""),e.rules.forEach((function(n){u.push.apply(u,p(function(n){var o=[],s=n.bytecode,c=new Stack$1(n.name,"s","var",s),u=function t(n){var o=0,s=n.length,u=[],h=void 0;function x(e,r,a){var s=r+3,i=n[o+s-2],l=n[o+s-1],f=c.checkedIf(o,(function(){return o+=s+i,(a||t)(n.slice(o-i,o))}),l>0?function(){return o+=l,t(n.slice(o-l,o))}:null),d=f[0],m=f[1];u.push("if ("+e+") {"),u.push.apply(u,p(d)),l>0&&(u.push("} else {"),u.push.apply(u,p(m))),u.push("}")}function b(e,r,a){var s=r+3,i=1===a?"input.charAt(peg$currPos)":"input.substr(peg$currPos, "+a+")",p=null;n[o+s]===op$1.ACCEPT_N&&n[o+s+1]===a&&(u.push(c.push(i)),i=c.pop(),p=function(e){c.sp++;var r=t(e.slice(2));return r.unshift(1===a?"peg$currPos++;":"peg$currPos += "+a+";"),r}),x(e(i,null!==p),r,p)}for(var v=function(){switch(n[o]){case op$1.PUSH_EMPTY_STRING:u.push(c.push("''")),o++;break;case op$1.PUSH_CURR_POS:u.push(c.push("peg$currPos")),o++;break;case op$1.PUSH_UNDEFINED:u.push(c.push("undefined")),o++;break;case op$1.PUSH_NULL:u.push(c.push("null")),o++;break;case op$1.PUSH_FAILED:u.push(c.push("peg$FAILED")),o++;break;case op$1.PUSH_EMPTY_ARRAY:u.push(c.push("[]")),o++;break;case op$1.POP:c.pop(),o++;break;case op$1.POP_CURR_POS:u.push("peg$currPos = "+c.pop()+";"),o++;break;case op$1.POP_N:c.pop(n[o+1]),o+=2;break;case op$1.NIP:h=c.pop(),c.pop(),u.push(c.push(h)),o++;break;case op$1.APPEND:h=c.pop(),u.push(c.top()+".push("+h+");"),o++;break;case op$1.WRAP:u.push(c.push("["+c.pop(n[o+1]).join(", ")+"]")),o+=2;break;case op$1.TEXT:u.push(c.push("input.substring("+c.pop()+", peg$currPos)")),o++;break;case op$1.PLUCK:var s=n[o+3-1],v=3+s;h=n.slice(o+3,o+v),h=1===s?c.index(h[0]):"[ ".concat(h.map((function(e){return c.index(e)})).join(", ")," ]"),c.pop(n[o+1]),u.push(c.push(h)),o+=v;break;case op$1.IF:x(c.top(),0);break;case op$1.IF_ERROR:x(c.top()+" === peg$FAILED",0);break;case op$1.IF_NOT_ERROR:x(c.top()+" !== peg$FAILED",0);break;case op$1.IF_LT:x(c.top()+".length < "+n[o+1],1);break;case op$1.IF_GE:x(c.top()+".length >= "+n[o+1],1);break;case op$1.IF_LT_DYNAMIC:x(c.top()+".length < ("+c.index(n[o+1])+"|0)",1);break;case op$1.IF_GE_DYNAMIC:x(c.top()+".length >= ("+c.index(n[o+1])+"|0)",1);break;case op$1.WHILE_NOT_ERROR:T=c.top()+" !== peg$FAILED",C=n[o+2-1],w=c.checkedLoop(o,(function(){return o+=2+C,t(n.slice(o-C,o))})),u.push("while ("+T+") {"),u.push.apply(u,p(w)),u.push("}");break;case op$1.MATCH_ANY:x("input.length > peg$currPos",0);break;case op$1.MATCH_STRING:var A=n[o+1],y=r[A];b((function(e,t){return y.length>1?"".concat(e," === ").concat(l(A)):(e=t?"".concat(e,".charCodeAt(0)"):"input.charCodeAt(peg$currPos)","".concat(e," === ").concat(y.charCodeAt(0)))}),1,y.length);break;case op$1.MATCH_STRING_IC:var S=n[o+1];b((function(e){return"".concat(e,".toLowerCase() === ").concat(l(S))}),1,r[S].length);break;case op$1.MATCH_CHAR_CLASS:var _=n[o+1];b((function(e){return"".concat(f(_),".test(").concat(e,")")}),1,1);break;case op$1.ACCEPT_N:u.push(c.push(n[o+1]>1?"input.substr(peg$currPos, "+n[o+1]+")":"input.charAt(peg$currPos)")),u.push(n[o+1]>1?"peg$currPos += "+n[o+1]+";":"peg$currPos++;"),o+=2;break;case op$1.ACCEPT_STRING:u.push(c.push(l(n[o+1]))),u.push(r[n[o+1]].length>1?"peg$currPos += "+r[n[o+1]].length+";":"peg$currPos++;"),o+=2;break;case op$1.FAIL:u.push(c.push("peg$FAILED")),u.push("if (peg$silentFails === 0) { peg$fail("+d(n[o+1])+"); }"),o+=2;break;case op$1.LOAD_SAVED_POS:u.push("peg$savedPos = "+c.index(n[o+1])+";"),o+=2;break;case op$1.UPDATE_SAVED_POS:u.push("peg$savedPos = peg$currPos;"),o++;break;case op$1.CALL:h=function(e){var t=n[o+4-1];return m(n[o+1])+"("+n.slice(o+4,o+4+t).map((function(e){return c.index(e)})).join(", ")+")"}(),c.pop(n[o+2]),u.push(c.push(h)),o+=4+n[o+3];break;case op$1.RULE:u.push(c.push($(e.rules[n[o+1]].name)+"()")),o+=2;break;case op$1.LIBRARY_RULE:var E=n[o+2],k=-1===E?"":', "'+i[E]+'"';u.push(c.push("peg$callLibrary("+g(n[o+1])+k+")")),o+=3;break;case op$1.SILENT_FAILS_ON:u.push("peg$silentFails++;"),o++;break;case op$1.SILENT_FAILS_OFF:u.push("peg$silentFails--;"),o++;break;case op$1.SOURCE_MAP_PUSH:c.sourceMapPush(u,a[n[o+1]]),o+=2;break;case op$1.SOURCE_MAP_POP:c.sourceMapPop(),o++;break;case op$1.SOURCE_MAP_LABEL_PUSH:c.labels[n[o+1]]={label:r[n[o+2]],location:a[n[o+3]]},o+=4;break;case op$1.SOURCE_MAP_LABEL_POP:delete c.labels[n[o+1]],o+=2;break;default:throw new Error("Invalid opcode: "+n[o]+".")}var T,C,w};oi?-1:1:0}));for(var t="",r="",a=0;a=s.charCodeAt(0)?(e.splice(a--,1),e[a]=[t,r=i]):(t=s,r=i)}return e}function mergeCharacterClasses$1(e){var t=Object.create(null);e.rules.forEach((function(e){return t[e.name]=e.expression}));var r=Object.create(null),a=[function(e,a){if("class"===e.type&&!e.inverted)return a&&((e=__assign$1({},e)).parts=__spreadArray$3([],e.parts,!0)),e;if("literal"===e.type&&1===e.value.length)return{type:"class",parts:[e.value],inverted:!1,ignoreCase:e.ignoreCase,location:e.location};if("rule_ref"===e.type){var s=t[e.name];if(s){r[e.name]||(r[e.name]=!0,o(s));var i=n(s,!0);return i&&(i.location=e.location),i}}return null},visitor$7.build({choice:function(e){var t=null,r=!1;e.alternatives.forEach((function(a,s){var i;o(a);var c=n(a);c?t&&t.ignoreCase===c.ignoreCase?((i=t.parts).push.apply(i,c.parts),e.alternatives[s-1]=t,e.alternatives[s]=t,t.location={source:t.location.source,start:t.location.start,end:c.location.end},r=!0):t=c:t=null})),r&&(e.alternatives=e.alternatives.filter((function(e,t,r){return!t||e!==r[t-1]})),e.alternatives.forEach((function(t,r){"class"===t.type&&(t.parts=cleanParts(t.parts),1!==t.parts.length||Array.isArray(t.parts[0])||t.inverted||(e.alternatives[r]={type:"literal",value:t.parts[0],ignoreCase:t.ignoreCase,location:t.location}))})),1===e.alternatives.length&&cloneOver(e,e.alternatives[0]))},text:function(e){if(o(e.expression),"class"===e.expression.type||"literal"===e.expression.type){var t=e.location;cloneOver(e,e.expression),e.location=t}}})],n=a[0],o=a[1];e.rules.forEach((function(e){r[e.name]=!0,o(e.expression)}))}var mergeCharacterClasses_1=mergeCharacterClasses$1;function reportDuplicateImports$1(e,t,r){for(var a={},n=0,o=e.imports;n0||(a.push(e.name),o(e.expression),a.pop())},sequence:function(t){r.errors>0||t.elements.every((function(t){return o(t),!(r.errors>0||asts$3.alwaysConsumesOnSuccess(e,t))}))},repeated:function(t){r.errors>0||(o(t.expression),t.delimiter&&!asts$3.alwaysConsumesOnSuccess(e,t.expression)&&o(t.delimiter))},rule_ref:function(t){if(!(r.errors>0)){n.push(t);var s=asts$3.findRule(e,t.name);if(-1!==a.indexOf(t.name))return a.push(t.name),void r.error("Possible infinite loop when parsing (left recursion: "+a.join(" -> ")+")",s.nameLocation,n.map((function(e,t,r){return{message:t+1!==r.length?"Step ".concat(t+1,': call of the rule "').concat(e.name,'" without input consumption'):"Step ".concat(t+1,": call itself without input consumption - left recursion"),location:e.location}})));s&&o(s),n.pop()}}});o(e)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$2=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(e,t,r){var a=visitor$3.build({zero_or_more:function(t){asts$2.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},one_or_more:function(t){asts$2.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},repeated:function(t){if(t.delimiter&&a(t.delimiter),!(asts$2.alwaysConsumesOnSuccess(e,t.expression)||t.delimiter&&asts$2.alwaysConsumesOnSuccess(e,t.delimiter)))if(null===t.max.value)r.error("Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",t.location);else{var n=t.min?t.min:t.max;r.warning("constant"===n.type&&"constant"===t.max.type?"An expression may not consume any input and may always match ".concat(t.max.value," times"):"An expression may not consume any input and may always match with a maximum repetition count",t.location)}}});a(e)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts$1=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(e,t,r){visitor$2.build({rule_ref:function(t){asts$1.findRule(e,t.name)||r.error('Rule "'.concat(t.name,'" is not defined'),t.location)}})(e)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(e,t,r){var a=visitor$1.build({action:function(e){a(e.expression,e)},labeled:function(e,t){e.pick&&t&&r.error('"@" cannot be used with an action block',e.labelLocation,[{message:"Action block location",location:t.codeLocation}]),a(e.expression)}});a(e)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n0:e&&"function"==typeof e.offset}var compiler$2={visitor:visitor,passes:{prepare:[addImportedRules,reportInfiniteRecursion],check:[reportUndefinedRules,reportDuplicateRules,reportDuplicateLabels,reportInfiniteRepetition,reportIncorrectPlucking,reportDuplicateImports],transform:[fixLibraryNumbers,removeProxyRules,mergeCharacterClasses,inferenceMatchResult],generate:[generateBytecode,generateJS]},compile:function(ast,passes,options){if(options=void 0!==options?options:{},options=processOptions(options,{allowedStartRules:[ast.rules[0].name],cache:!1,dependencies:{},exportVar:null,format:"bare",output:"parser",trace:!1}),!Array.isArray(options.allowedStartRules))throw new Error("allowedStartRules must be an array");if(0===options.allowedStartRules.length)throw new Error("Must have at least one start rule");var allRules=ast.rules.map((function(e){return e.name}));if(options.allowedStartRules.some((function(e){return"*"===e})))options.allowedStartRules=allRules;else for(var _i=0,_a=options.allowedStartRules;_i<_a.length;_i++){var rule=_a[_i];if(-1===allRules.indexOf(rule))throw new Error('Unknown start rule "'.concat(rule,'"'))}if(("source-and-map"===options.output||"source-with-inline-map"===options.output)&&!isSourceMapCapable(options.grammarSource))throw new Error("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps");var session=new Session$1(options);switch(Object.keys(passes).forEach((function(e){session.stage=e,session.info("Process stage ".concat(e)),passes[e].forEach((function(t){session.info("Process pass ".concat(e,".").concat(t.name)),t(ast,options,session)})),session.checkErrors()})),options.output){case"parser":return eval(ast.code.toString());case"source":return ast.code.toString();case"source-and-map":return ast.code;case"source-with-inline-map":if("undefined"==typeof TextEncoder)throw new Error("TextEncoder is not supported by this platform");var sourceMap=ast.code.toStringWithSourceMap(),encoder=new TextEncoder,b64=base64$3(encoder.encode(JSON.stringify(sourceMap.map.toJSON())));return sourceMap.code+"//# sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(b64,"\n");case"ast":return ast;default:throw new Error("Invalid output format: "+options.output+".")}}},compiler_1=compiler$2,GrammarError$2=grammarError,GrammarLocation$1=grammarLocation,asts=asts_1,compiler$1=compiler_1,parser$3=parser$4,VERSION=version$1,RESERVED_WORDS=["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","null","true","false","enum","implements","interface","let","package","private","protected","public","static","yield","await","arguments","eval"],peg$4={VERSION:VERSION,RESERVED_WORDS:RESERVED_WORDS,GrammarError:GrammarError$2,GrammarLocation:GrammarLocation$1,parser:parser$3,compiler:compiler$1,generate:function(e,t){var r,a,n="plugins"in(t=void 0!==t?t:{})?t.plugins:[],o={parser:peg$4.parser,passes:(r=peg$4.compiler.passes,a={},Object.keys(r).forEach((function(e){a[e]=r[e].slice()})),a),reservedWords:peg$4.RESERVED_WORDS.slice()};n.forEach((function(e){e.use(o,t)})),Array.isArray(e)||(e=[{source:t.grammarSource,text:e}]);var s=asts.combine(e.map((function(e){var t=e.source,r=e.text;return o.parser.parse(r,{grammarSource:t,reservedWords:o.reservedWords})})));return peg$4.compiler.compile(s,o.passes,t)}},peg_1=peg$4,utils={},chai$o=require$$0,Call=function(){function e(e){this.args=e}return e.prototype.calledWithExactly=function(){for(var e=[],t=0;t=18"},require$$2={name:name,version:version,description:description,keywords:keywords,homepage:homepage,repository:repository,bugs:bugs,license:license,author:author,main:main,browser:browser,unpkg:unpkg,jsdelivr:jsdelivr,types:types,bin:bin,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies,browserslist:browserslist,engines:engines},sourceMap={},sourceMapGenerator={},base64Vlq={},base64$2={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$2.encode=function(e){if(0<=e&&e>>=VLQ_BASE_SHIFT,a>0&&(t|=VLQ_CONTINUATION_BIT),r+=base64$1.encode(t)}while(a>0);return r};var util$4={},urlBrowser=require$$0$1.URL;const URL$1=urlBrowser;function getArg(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$4.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(e){return e}function toSetString(e){return isProtoString(e)?"$"+e:e}function fromSetString(e){return isProtoString(e)?e.slice(1):e}function isProtoString(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp(e.name,t.name)))))}function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}util$4.toSetString=supportsNullProto?identity:toSetString,util$4.fromSetString=supportsNullProto?identity:fromSetString,util$4.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated,util$4.parseSourceMapInput=parseSourceMapInput;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(e){return t=>{const r=getURLType(t),a=buildSafeBase(t),n=new URL$1(t,a);e(n);const o=n.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(a,o)}}function withBase(e,t){return new URL$1(e,t).toString()}function buildUniqueSegment(e,t){let r=0;for(;;){const a=e+r++;if(-1===t.indexOf(a))return a}}function buildSafeBase(e){const t=e.split("..").length-1,r=buildUniqueSegment("p",e);let a=`${PROTOCOL_AND_HOST}/`;for(let e=0;e0&&!a[a.length-1]&&a.pop();r.length>0&&a.length>0&&r[0]===a[0];)r.shift(),a.shift();return a.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory=createSafeHandler((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),trimFilename=createSafeHandler((e=>{e.href=new URL$1(".",e.toString()).toString()})),normalize=createSafeHandler((e=>{}));function join(e,t){const r=getURLType(t),a=getURLType(e);if(e=ensureDirectory(e),"absolute"===r)return withBase(t,void 0);if("absolute"===a)return withBase(t,e);if("scheme-relative"===r)return normalize(t);if("scheme-relative"===a)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(t);if("path-absolute"===a)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(t+e);return computeRelativeURL(n,withBase(t,withBase(e,n)))}function relative(e,t){const r=relativeIfPossible(e,t);return"string"==typeof r?r:normalize(t)}function relativeIfPossible(e,t){if(getURLType(e)!==getURLType(t))return null;const r=buildSafeBase(e+t),a=new URL$1(e,r),n=new URL$1(t,r);try{new URL$1("",n.toString())}catch(e){return null}return n.protocol!==a.protocol||n.user!==a.user||n.password!==a.password||n.hostname!==a.hostname||n.port!==a.port?null:computeRelativeURL(a,n)}function computeSourceURL(e,t,r){e&&"path-absolute"===getURLType(t)&&(t=t.replace(/^\//,""));let a=normalize(t||"");return e&&(a=join(e,a)),r&&(a=join(trimFilename(r),a)),a}util$4.normalize=normalize,util$4.join=join,util$4.relative=relative,util$4.computeSourceURL=computeSourceURL;var arraySet={};let ArraySet$2=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){const a=new e;for(let e=0,n=t.length;e=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||a==r&&o>=n||util$3.compareByGeneratedPositionsInflated(e,t)<=0}let MappingList$1=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$3.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$2=util$4,ArraySet$1=arraySet.ArraySet,MappingList=mappingList.MappingList;let SourceMapGenerator$1=class e{constructor(e){e||(e={}),this._file=util$2.getArg(e,"file",null),this._sourceRoot=util$2.getArg(e,"sourceRoot",null),this._skipValidation=util$2.getArg(e,"skipValidation",!1),this._sources=new ArraySet$1,this._names=new ArraySet$1,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(t){const r=t.sourceRoot,a=new e({file:t.file,sourceRoot:r});return t.eachMapping((function(e){const t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=r&&(t.source=util$2.relative(r,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),a.addMapping(t)})),t.sources.forEach((function(e){let n=e;null!==r&&(n=util$2.relative(r,e)),a._sources.has(n)||a._sources.add(n);const o=t.sourceContentFor(e);null!=o&&a.setSourceContent(e,o)})),a}addMapping(e){const t=util$2.getArg(e,"generated"),r=util$2.getArg(e,"original",null);let a=util$2.getArg(e,"source",null),n=util$2.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,a,n),null!=a&&(a=String(a),this._sources.has(a)||this._sources.add(a)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:a,name:n})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$2.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$2.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$2.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let a=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');a=e.file}const n=this._sourceRoot;null!=n&&(a=util$2.relative(n,a));const o=this._mappings.toArray().length>0?new ArraySet$1:this._sources,s=new ArraySet$1;this._mappings.unsortedForEach((function(t){if(t.source===a&&null!=t.originalLine){const a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=util$2.join(r,t.source)),null!=n&&(t.source=util$2.relative(n,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}const i=t.source;null==i||o.has(i)||o.add(i);const c=t.name;null==c||s.has(c)||s.add(c)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const a=e.sourceContentFor(t);null!=a&&(null!=r&&(t=util$2.join(r,t)),null!=n&&(t=util$2.relative(n,t)),this.setSourceContent(t,a))}),this)}_validateMapping(e,t,r,a){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!a);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:a}))}_serializeMappings(){let e,t,r,a,n=0,o=1,s=0,i=0,c=0,u=0,p="";const l=this._mappings.toArray();for(let f=0,d=l.length;f0){if(!util$2.compareByGeneratedPositionsInflated(t,l[f-1]))continue;e+=","}e+=base64VLQ.encode(t.generatedColumn-n),n=t.generatedColumn,null!=t.source&&(a=this._sources.indexOf(t.source),e+=base64VLQ.encode(a-u),u=a,e+=base64VLQ.encode(t.originalLine-1-i),i=t.originalLine-1,e+=base64VLQ.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ.encode(r-c),c=r)),p+=e}return p}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$2.relative(t,e));const r=util$2.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}};SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceMapConsumer={},binarySearch$1={};!function(e){function t(r,a,n,o,s,i){const c=Math.floor((a-r)/2)+r,u=s(n,o[c],!0);return 0===u?c:u>0?a-c>1?t(c,a,n,o,s,i):i==e.LEAST_UPPER_BOUND?a1?t(r,c,n,o,s,i):i==e.LEAST_UPPER_BOUND?c:r<0?-1:r}e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2,e.search=function(r,a,n,o){if(0===a.length)return-1;let s=t(-1,a.length,r,a,n,o||e.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===n(a[s],a[s-1],!0);)--s;return s}}(binarySearch$1);var readWasmBrowser={exports:{}};let mappingsWasm=null;readWasmBrowser.exports=function(){if("string"==typeof mappingsWasm)return fetch(mappingsWasm).then((e=>e.arrayBuffer()));if(mappingsWasm instanceof ArrayBuffer)return Promise.resolve(mappingsWasm);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},readWasmBrowser.exports.initialize=e=>{mappingsWasm=e};var readWasmBrowserExports=readWasmBrowser.exports;const readWasm$1=readWasmBrowserExports;function Mapping(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}let cachedWasm=null;var wasm$1=function(){if(cachedWasm)return cachedWasm;const e=[];return cachedWasm=readWasm$1().then((t=>WebAssembly.instantiate(t,{env:{mapping_callback(t,r,a,n,o,s,i,c,u,p){const l=new Mapping;l.generatedLine=t+1,l.generatedColumn=r,a&&(l.lastGeneratedColumn=n-1),o&&(l.source=s,l.originalLine=i+1,l.originalColumn=c,u&&(l.name=p)),e[e.length-1](l)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}}))).then((t=>({exports:t.instance.exports,withMappingCallback:(t,r)=>{e.push(t);try{r()}finally{e.pop()}}}))).then(null,(e=>{throw cachedWasm=null,e})),cachedWasm};const util$1=util$4,binarySearch=binarySearch$1,ArraySet=arraySet.ArraySet,readWasm=readWasmBrowserExports,wasm=wasm$1,INTERNAL=Symbol("smcInternal");let SourceMapConsumer$1=class e{constructor(e,t){return e==INTERNAL?Promise.resolve(this):_factory(e,t)}static initialize(e){readWasm.initialize(e["lib/mappings.wasm"])}static fromSourceMap(e,t){return _factoryBSM(e,t)}static async with(t,r,a){const n=await new e(t,r);try{return await a(n)}finally{n.destroy()}}eachMapping(e,t,r){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(e){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};SourceMapConsumer$1.prototype._version=3,SourceMapConsumer$1.GENERATED_ORDER=1,SourceMapConsumer$1.ORIGINAL_ORDER=2,SourceMapConsumer$1.GREATEST_LOWER_BOUND=1,SourceMapConsumer$1.LEAST_UPPER_BOUND=2,sourceMapConsumer.SourceMapConsumer=SourceMapConsumer$1;class BasicSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let a=e;"string"==typeof e&&(a=util$1.parseSourceMapInput(e));const n=util$1.getArg(a,"version"),o=util$1.getArg(a,"sources").map(String),s=util$1.getArg(a,"names",[]),i=util$1.getArg(a,"sourceRoot",null),c=util$1.getArg(a,"sourcesContent",null),u=util$1.getArg(a,"mappings"),p=util$1.getArg(a,"file",null);if(n!=r._version)throw new Error("Unsupported version: "+n);return r._sourceLookupCache=new Map,r._names=ArraySet.fromArray(s.map(String),!0),r._sources=ArraySet.fromArray(o,!0),r._absoluteSources=ArraySet.fromArray(r._sources.toArray().map((function(e){return util$1.computeSourceURL(i,e,t)})),!0),r.sourceRoot=i,r.sourcesContent=c,r._mappings=u,r._sourceMapURL=t,r.file=p,r._computedColumnSpans=!1,r._mappingsPtr=0,r._wasm=null,wasm().then((e=>(r._wasm=e,r)))}))}_findSourceIndex(e){const t=this._sourceLookupCache.get(e);if("number"==typeof t)return t;const r=util$1.computeSourceURL(null,e,this._sourceMapURL);if(this._absoluteSources.has(r)){const t=this._absoluteSources.indexOf(r);return this._sourceLookupCache.set(e,t),t}const a=util$1.computeSourceURL(this.sourceRoot,e,this._sourceMapURL);if(this._absoluteSources.has(a)){const t=this._absoluteSources.indexOf(a);return this._sourceLookupCache.set(e,t),t}return-1}static fromSourceMap(e,t){return new BasicSourceMapConsumer(e.toString())}get sources(){return this._absoluteSources.toArray()}_getMappingsPtr(){return 0===this._mappingsPtr&&this._parseMappings(),this._mappingsPtr}_parseMappings(){const e=this._mappings,t=e.length,r=this._wasm.exports.allocate_mappings(t),a=new Uint8Array(this._wasm.exports.memory.buffer,r,t);for(let r=0;r{null!==t.source&&(t.source=this._absoluteSources.at(t.source),null!==t.name&&(t.name=this._names.at(t.name))),this._computedColumnSpans&&null===t.lastGeneratedColumn&&(t.lastGeneratedColumn=1/0),e.call(a,t)}),(()=>{switch(n){case SourceMapConsumer$1.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case SourceMapConsumer$1.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}}))}allGeneratedPositionsFor(e){let t=util$1.getArg(e,"source");const r=util$1.getArg(e,"line"),a=e.column||0;if(t=this._findSourceIndex(t),t<0)return[];if(r<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");const n=[];return this._wasm.withMappingCallback((e=>{let t=e.lastGeneratedColumn;this._computedColumnSpans&&null===t&&(t=1/0),n.push({line:e.generatedLine,column:e.generatedColumn,lastColumn:t})}),(()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),t,r-1,"column"in e,a)})),n}destroy(){0!==this._mappingsPtr&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(e){const t={generatedLine:util$1.getArg(e,"line"),generatedColumn:util$1.getArg(e,"column")};if(t.generatedLine<1)throw new Error("Line numbers must be >= 1");if(t.generatedColumn<0)throw new Error("Column numbers must be >= 0");let r,a=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==a&&(a=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>r=e),(()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),t.generatedLine-1,t.generatedColumn,a)})),r&&r.generatedLine===t.generatedLine){let e=util$1.getArg(r,"source",null);null!==e&&(e=this._absoluteSources.at(e));let t=util$1.getArg(r,"name",null);return null!==t&&(t=this._names.at(t)),{source:e,line:util$1.getArg(r,"originalLine",null),column:util$1.getArg(r,"originalColumn",null),name:t}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))}sourceContentFor(e,t){if(!this.sourcesContent)return null;const r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')}generatedPositionFor(e){let t=util$1.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};const r={source:t,originalLine:util$1.getArg(e,"line"),originalColumn:util$1.getArg(e,"column")};if(r.originalLine<1)throw new Error("Line numbers must be >= 1");if(r.originalColumn<0)throw new Error("Column numbers must be >= 0");let a,n=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==n&&(n=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>a=e),(()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),r.source,r.originalLine-1,r.originalColumn,n)})),a&&a.source===r.source){let e=a.lastGeneratedColumn;return this._computedColumnSpans&&null===e&&(e=1/0),{line:util$1.getArg(a,"generatedLine",null),column:util$1.getArg(a,"generatedColumn",null),lastColumn:e}}return{line:null,column:null,lastColumn:null}}}BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer$1,sourceMapConsumer.BasicSourceMapConsumer=BasicSourceMapConsumer;class IndexedSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let a=e;"string"==typeof e&&(a=util$1.parseSourceMapInput(e));const n=util$1.getArg(a,"version"),o=util$1.getArg(a,"sections");if(n!=r._version)throw new Error("Unsupported version: "+n);let s={line:-1,column:0};return Promise.all(o.map((e=>{if(e.url)throw new Error("Support for url field in sections not implemented.");const r=util$1.getArg(e,"offset"),a=util$1.getArg(r,"line"),n=util$1.getArg(r,"column");if(a({generatedOffset:{generatedLine:a+1,generatedColumn:n+1},consumer:e})))}))).then((e=>(r._sections=e,r)))}))}get sources(){const e=[];for(let t=0;t=0?this._sections[t]:null,a=t>=0&&t+1=0?this._sections[t]:null,a=t>=0&&t+1{const t=r.generatedOffset.generatedLine-1,n=r.generatedOffset.generatedColumn-1;return 1===e.line&&(e.column+=n,"number"==typeof e.lastColumn&&(e.lastColumn+=n)),e.lastColumn===1/0&&a&&e.line===a.generatedOffset.generatedLine&&(e.lastColumn=a.generatedOffset.generatedColumn-2),e.line+=t,e})):[]}eachMapping(e,t,r){this._sections.forEach(((a,n)=>{const o=n+1=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,a=this.children.length;r0){for(t=[],r=0;r start)"])}})),it("reports multiple errors in each compilation stage",(function(){try{peg.generate('\n start = leftRecursion\n leftRecursion = duplicatedLabel:duplicatedRule duplicatedLabel:missingRule\n duplicatedRule = missingRule\n duplicatedRule = "nothing"\n ')}catch(t){expect$k(t).with.property("stage","check"),expect$k(t).with.property("problems").to.be.an("array"),t.problems.forEach((function(e){expect$k(e).to.be.an("array").lengthOf.gte(2),expect$k(e[0]).to.be.oneOf(["error","warning","info"])}));var e=t.problems.filter((function(e){return"error"===e[0]})).map((function(e){return e[1]}));expect$k(e).to.include.members(['Rule "missingRule" is not defined','Rule "duplicatedRule" is already defined','Label "duplicatedLabel" is already defined'])}}))}))}));var chai$j=require$$0,parser$2=parser$4,compiler=compiler_1,expect$j=chai$j.expect;describe("Peggy compiler",(function(){it("checks start rules",(function(){var e=parser$2.parse("foo='1'");expect$j(compiler.compile(e,compiler.passes)).to.be.an("object"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:null})})).to.throw("allowedStartRules must be an array"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:[]})})).to.throw("Must have at least one start rule"),expect$j((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:["bar"]})})).to.throw('Unknown start rule "bar"')})),it("checks output type",(function(){var e=parser$2.parse("foo='1'");expect$j(compiler.compile(e,compiler.passes,{output:"source"})).to.be.a("string"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"INVALID OUTPUT TYPE"})})).to.throw("Invalid output format: INVALID OUTPUT TYPE.")})),it("generates inline sourceMappingURL",(function(){var e=parser$2.parse("foo='1'");if(expect$j(e).to.be.an("object"),"function"==typeof TextEncoder&&(expect$j(compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:"src.peggy"})).to.match(/^\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,/m),"object"==typeof globalThis)){var t=globalThis.TextEncoder;delete globalThis.TextEncoder,expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:"src.peggy"})})).to.throw("TextEncoder is not supported by this platform"),globalThis.TextEncoder=t}})),it("requires grammarSource with source-map",(function(){var e=parser$2.parse("foo='1'");expect$j(e).to.be.an("object"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-and-map"})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps"),expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-and-map",grammarSource:""})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps"),"function"==typeof TextEncoder&&expect$j((function(){return compiler.compile(e,compiler.passes,{output:"source-with-inline-map",grammarSource:{toString:function(){return""}}})})).to.throw("Must provide grammarSource (as a string or GrammarLocation) in order to generate source maps")}))}));var chai$i=require$$0,Intern=intern,expect$i=chai$i.expect;describe("utility class Intern",(function(){it("handles strings",(function(){var e=new Intern;expect$i(e.add("one")).to.equal(0),expect$i(e.add("one")).to.equal(0),expect$i(e.add("two")).to.equal(1),expect$i(e.add("one")).to.equal(0),expect$i(e.add("two")).to.equal(1),expect$i(e.add(void 0)).to.equal(-1),expect$i(e.add(null)).to.equal(-1),expect$i(e.items.length).to.equal(2),expect$i(e.items).to.deep.equal(["one","two"]),expect$i(e.get(0)).to.equal("one"),expect$i(e.get(1)).to.equal("two"),expect$i(e.get(-1)).to.equal(void 0),expect$i(e.get(10)).to.equal(void 0);var t=e.map((function(e,t){return[e,t]}));expect$i(t).to.deep.equal([["one",0],["two",1]])})),it("does conversions",(function(){var e=new Intern({convert:function(e){return Array.from(e).map((function(e){return e.codePointAt(0)}))}});expect$i(e.add("abc")).to.equal(0),expect$i(e.add("abc")).to.equal(0),expect$i(e.add("abd")).to.equal(1),expect$i(e.get(0)).to.deep.equal([97,98,99]),expect$i(e.get(1)).to.deep.equal([97,98,100])})),it("stringifies",(function(){var e=new Intern({stringify:function(){return"same"}});expect$i(e.add("abc")).to.equal(0),expect$i(e.add("def")).to.equal(0)}))}));var __spreadArray$1=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),it("reports indirect left recursion",(function(){expect$6(pass$2).to.reportError(["start = stop","stop = start"].join("\n"),{message:"Possible infinite loop when parsing (left recursion: start -> stop -> start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),describe("in sequences",(function(){it("reports left recursion if all preceding elements match empty string",(function(){expect$6(pass$2).to.reportError("start = '' '' '' start")})),it("doesn't report left recursion if some preceding element doesn't match empty string",(function(){expect$6(pass$2).to.not.reportError("start = 'a' '' '' start"),expect$6(pass$2).to.not.reportError("start = '' 'a' '' start"),expect$6(pass$2).to.not.reportError("start = '' '' 'a' start")})),it("reports left recursion when rule reference is wrapped in an expression",(function(){expect$6(pass$2).to.reportError("start = '' start?")})),it("computes expressions that always consume input on success correctly",(function(){expect$6(pass$2).to.reportError(["start = a start","a 'a' = ''"].join("\n")),expect$6(pass$2).to.not.reportError(["start = a start","a 'a' = 'a'"].join("\n")),expect$6(pass$2).to.reportError("start = ('' / 'a' / 'b') start"),expect$6(pass$2).to.reportError("start = ('a' / '' / 'b') start"),expect$6(pass$2).to.reportError("start = ('a' / 'b' / '') start"),expect$6(pass$2).to.not.reportError("start = ('a' / 'b' / 'c') start"),expect$6(pass$2).to.reportError("start = ('' { }) start"),expect$6(pass$2).to.not.reportError("start = ('a' { }) start"),expect$6(pass$2).to.reportError("start = ('' '' '') start"),expect$6(pass$2).to.not.reportError("start = ('a' '' '') start"),expect$6(pass$2).to.not.reportError("start = ('' 'a' '') start"),expect$6(pass$2).to.not.reportError("start = ('' '' 'a') start"),expect$6(pass$2).to.reportError("start = a:'' start"),expect$6(pass$2).to.not.reportError("start = a:'a' start"),expect$6(pass$2).to.reportError("start = $'' start"),expect$6(pass$2).to.not.reportError("start = $'a' start"),expect$6(pass$2).to.reportError("start = &'' start"),expect$6(pass$2).to.reportError("start = &'a' start"),expect$6(pass$2).to.reportError("start = !'' start"),expect$6(pass$2).to.reportError("start = !'a' start"),expect$6(pass$2).to.reportError("start = ''? start"),expect$6(pass$2).to.reportError("start = 'a'? start"),expect$6(pass$2).to.reportError("start = ''* start"),expect$6(pass$2).to.reportError("start = 'a'* start"),expect$6(pass$2).to.reportError("start = ''+ start"),expect$6(pass$2).to.not.reportError("start = 'a'+ start"),expect$6(pass$2).to.reportError("start = ''| .. | start"),expect$6(pass$2).to.reportError("start = ''|0.. | start"),expect$6(pass$2).to.reportError("start = ''|1.. | start"),expect$6(pass$2).to.reportError("start = ''|2.. | start"),expect$6(pass$2).to.reportError("start = ''| ..1| start"),expect$6(pass$2).to.reportError("start = ''| ..3| start"),expect$6(pass$2).to.reportError("start = ''|2..3| start"),expect$6(pass$2).to.reportError("start = ''| 42 | start"),expect$6(pass$2).to.reportError("start = 'a'| .. | start"),expect$6(pass$2).to.reportError("start = 'a'|0.. | start"),expect$6(pass$2).to.not.reportError("start = 'a'|1.. | start"),expect$6(pass$2).to.not.reportError("start = 'a'|2.. | start"),expect$6(pass$2).to.reportError("start = 'a'| ..1| start"),expect$6(pass$2).to.reportError("start = 'a'| ..3| start"),expect$6(pass$2).to.not.reportError("start = 'a'|2..3| start"),expect$6(pass$2).to.not.reportError("start = 'a'| 42 | start"),expect$6(pass$2).to.reportError("start = ('') start"),expect$6(pass$2).to.not.reportError("start = ('a') start"),expect$6(pass$2).to.reportError("start = &{ } start"),expect$6(pass$2).to.reportError("start = !{ } start"),expect$6(pass$2).to.reportError(["start = a start","a = ''"].join("\n")),expect$6(pass$2).to.not.reportError(["start = a start","a = 'a'"].join("\n")),expect$6(pass$2).to.reportError("start = '' start"),expect$6(pass$2).to.not.reportError("start = 'a' start"),expect$6(pass$2).to.not.reportError("start = [a-d] start"),expect$6(pass$2).to.not.reportError("start = . start")}))})),describe("in repeated with delimiter",(function(){it("doesn't report left recursion for delimiter if expression not match empty string",(function(){expect$6(pass$2).to.not.reportError("start = 'a'| .. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|0.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|1.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'|2.. , start|"),expect$6(pass$2).to.not.reportError("start = 'a'| ..3, start|"),expect$6(pass$2).to.not.reportError("start = 'a'|2..3, start|"),expect$6(pass$2).to.not.reportError("start = 'a'| 42 , start|")})),it("reports left recursion for delimiter if expression match empty string",(function(){expect$6(pass$2).to.reportError("start = ''| .. , start|"),expect$6(pass$2).to.reportError("start = ''|0.. , start|"),expect$6(pass$2).to.reportError("start = ''|1.. , start|"),expect$6(pass$2).to.reportError("start = ''|2.. , start|"),expect$6(pass$2).to.reportError("start = ''| ..3, start|"),expect$6(pass$2).to.reportError("start = ''|2..3, start|"),expect$6(pass$2).to.reportError("start = ''| 42 , start|")})),it("does not inifinite loop",(function(){expect$6(pass$2).to.reportError('\n start = expr*\n\n expr\n = expr "++"\n ',{message:"Possible infinite loop when parsing (left recursion: start -> expr -> expr)"})}))}))}));var chai$5=require$$0,helpers$1=helpers$d,pass$1=reportInfiniteRepetition_1;chai$5.use(helpers$1);var expect$5=chai$5.expect;describe("compiler pass |reportInfiniteRepetition|",(function(){it("reports infinite loops for zero_or_more",(function(){expect$5(pass$1).to.reportError("start = ('')*",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("reports infinite loops for one_or_more",(function(){expect$5(pass$1).to.reportError("start = ('')+",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),describe("reports infinite loops for repeated",(function(){describe("without delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:16,line:1,column:17}}}),expect$5(pass$1).to.reportError("start = ('')|0..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.reportError("start = ('')|1..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.reportError("start = ('')|2..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}}),expect$5(pass$1).to.not.reportError("start = ('')| ..1|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 |")})),it("with variable boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|len..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:19,line:1,column:20}}}),expect$5(pass$1).to.not.reportError("start = ('')|..len|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2|"),expect$5(pass$1).to.not.reportError("start = ('')|len|")})),it("with function boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|{}..|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:18,line:1,column:19}}}),expect$5(pass$1).to.not.reportError("start = ('')|..{}|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}|"),expect$5(pass$1).to.not.reportError("start = ('')|{}|")}))})),describe("with empty delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')| .., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|0.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|1.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.reportError("start = ('')|2.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:21,line:1,column:22}}}),expect$5(pass$1).to.not.reportError("start = ('')| ..1, ''|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3, ''|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 , ''|")})),it("with variable boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|len.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:23,line:1,column:24}}}),expect$5(pass$1).to.not.reportError("start = ('')|..len, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|len, ''|")})),it("with function boundaries",(function(){expect$5(pass$1).to.reportError("start = ('')|{}.., ''|",{message:"Possible infinite loop when parsing (unbounded range repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:22,line:1,column:23}}}),expect$5(pass$1).to.not.reportError("start = ('')|..{}, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}, ''|"),expect$5(pass$1).to.not.reportError("start = ('')|{}, ''|")}))})),describe("with non-empty delimiter",(function(){it("with constant boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')| .., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|0.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|1.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|2.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| ..1, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| ..3, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|2..3, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')| 42 , 'a'|")})),it("with variable boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')|len.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|..len, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|len1..len2, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|len, 'a'|")})),it("with function boundaries",(function(){expect$5(pass$1).to.not.reportError("start = ('')|{}.., 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|..{}, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|{}..{}, 'a'|"),expect$5(pass$1).to.not.reportError("start = ('')|{}, 'a'|")}))}))})),it("computes expressions that always consume input on success correctly",(function(){expect$5(pass$1).to.reportError(["start = a*","a 'a' = ''"].join("\n")),expect$5(pass$1).to.not.reportError(["start = a*","a 'a' = 'a'"].join("\n")),expect$5(pass$1).to.reportError("start = ('' / 'a' / 'b')*"),expect$5(pass$1).to.reportError("start = ('a' / '' / 'b')*"),expect$5(pass$1).to.reportError("start = ('a' / 'b' / '')*"),expect$5(pass$1).to.not.reportError("start = ('a' / 'b' / 'c')*"),expect$5(pass$1).to.reportError("start = ('' { })*"),expect$5(pass$1).to.not.reportError("start = ('a' { })*"),expect$5(pass$1).to.reportError("start = ('' '' '')*"),expect$5(pass$1).to.not.reportError("start = ('a' '' '')*"),expect$5(pass$1).to.not.reportError("start = ('' 'a' '')*"),expect$5(pass$1).to.not.reportError("start = ('' '' 'a')*"),expect$5(pass$1).to.reportError("start = (a:'')*"),expect$5(pass$1).to.not.reportError("start = (a:'a')*"),expect$5(pass$1).to.reportError("start = ($'')*"),expect$5(pass$1).to.not.reportError("start = ($'a')*"),expect$5(pass$1).to.reportError("start = (&'')*"),expect$5(pass$1).to.reportError("start = (&'a')*"),expect$5(pass$1).to.reportError("start = (!'')*"),expect$5(pass$1).to.reportError("start = (!'a')*"),expect$5(pass$1).to.reportError("start = (''?)*"),expect$5(pass$1).to.reportError("start = ('a'?)*"),expect$5(pass$1).to.reportError("start = (''*)*"),expect$5(pass$1).to.reportError("start = ('a'*)*"),expect$5(pass$1).to.reportError("start = (''+)*"),expect$5(pass$1).to.not.reportError("start = ('a'+)*"),expect$5(pass$1).to.reportError("start = ('')*"),expect$5(pass$1).to.not.reportError("start = ('a')*"),expect$5(pass$1).to.reportError("start = (&{ })*"),expect$5(pass$1).to.reportError("start = (!{ })*"),expect$5(pass$1).to.reportError("start = 'a'|.., ('')*|"),expect$5(pass$1).to.not.reportError("start = 'a'|.., ('b')*|"),expect$5(pass$1).to.reportError(["start = a*","a = ''"].join("\n")),expect$5(pass$1).to.not.reportError(["start = a*","a = 'a'"].join("\n")),expect$5(pass$1).to.reportError("start = ''*"),expect$5(pass$1).to.not.reportError("start = 'a'*"),expect$5(pass$1).to.not.reportError("start = [a-d]*"),expect$5(pass$1).to.not.reportError("start = .*")}))}));var chai$4=require$$0,helpers=helpers$d,pass=reportUndefinedRules_1;chai$4.use(helpers);var expect$4=chai$4.expect;describe("compiler pass |reportUndefinedRules|",(function(){it("reports undefined rules",(function(){expect$4(pass).to.reportError("start = undefined",{message:'Rule "undefined" is not defined',location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}})}))}));var chai$3=require$$0,Stack=stack,expect$3=chai$3.expect;describe("utility class Stack",(function(){describe("for an empty stack",(function(){var e=void 0;beforeEach((function(){e=new Stack("rule","v","let",[42])})),describe("throws an error when attempting",(function(){it("`pop`",(function(){expect$3((function(){return e.pop()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42")})),it("`top`",(function(){expect$3((function(){return e.top()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42")})),it("`result`",(function(){expect$3((function(){return e.result()})).to.throw(RangeError,"Rule 'rule': The variable stack is empty, can't get the result")})),it("`index`",(function(){expect$3((function(){return e.index(-2)})).to.throw(RangeError,"Rule 'rule': The variable stack overflow: attempt to get a variable at a negative index -2.\nBytecode: 42"),expect$3((function(){return e.index(0)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42"),expect$3((function(){return e.index(2)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -3.\nBytecode: 42")})),it("`sourceMapPop`",(function(){expect$3((function(){return e.sourceMapPop()})).to.throw(RangeError,"Rule 'rule': Attempting to pop an empty source map stack.\nBytecode: 42")}))})),it("`defines` returns an empty string",(function(){expect$3(e.defines()).to.equal("")}))})),it("throws an error when attempting `pop` more than `push`",(function(){var e=new Stack("rule","v","let",[42]);e.push("1"),expect$3((function(){return e.pop(3)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -2.\nBytecode: 42")})),it("returns a variable with an index 0 for `result`",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),expect$3(e.result()).to.equal("v0")})),it("`defines` returns a define expression for all used variables",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),e.push("2"),e.pop(),e.push("3"),expect$3(e.defines()).to.equal("let v0, v1;")})),describe("`checkedIf` method",(function(){var e=void 0;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),describe("does not throws an error",(function(){it("without the else brach",(function(){expect$3((function(){return e.checkedIf(0,(function(){}))})).to.not.throw(),expect$3((function(){return e.checkedIf(0,(function(){return e.pop()}))})).to.not.throw(),expect$3((function(){return e.checkedIf(0,(function(){return e.push("2")}))})).to.not.throw()})),describe("when the stack pointer",(function(){it("was not moving in both the arms",(function(){function t(){}function r(){e.push("1"),e.pop()}function a(){e.push("1"),e.push("2"),e.pop(2)}function n(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$3((function(){return e.checkedIf(0,t,t)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,r,r)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,a,a)})).to.not.throw(),expect$3((function(){return e.checkedIf(0,n,n)})).to.not.throw()})),it("increases on the same value in both the arms",(function(){expect$3((function(){return e.checkedIf(0,(function(){return e.push("1")}),(function(){return e.push("2")}))})).to.not.throw()})),it("decreases on the same value in both the arms",(function(){e.push("2"),expect$3((function(){return e.checkedIf(0,(function(){return e.pop(2)}),(function(){e.pop(),e.pop()}))})).to.not.throw()}))}))})),describe("throws an error when the stack pointer",(function(){it("was not moving in `if` and decreases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: -1). Bytecode: 42")})),it("decreases in `if` and was not moving in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 0). Bytecode: 42")})),it("was not moving in `if` and increases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: 1). Bytecode: 42")})),it("increases in `if` and was not moving in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: 0). Bytecode: 42")})),it("decreases in `if` and increases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 1). Bytecode: 42")})),it("increases in `if` and decreases in `then`",(function(){expect$3((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: -1). Bytecode: 42")}))}))})),describe("`checkedLoop` method",(function(){var e=void 0;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),it("does not throws an error when the stack pointer was not moving",(function(){function t(){}function r(){e.push("1"),e.pop()}function a(){e.push("1"),e.push("2"),e.pop(2)}function n(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$3((function(){return e.checkedLoop(0,t)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,r)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,a)})).to.not.throw(),expect$3((function(){return e.checkedLoop(0,n)})).to.not.throw()})),it("throws an error when the stack pointer increases",(function(){expect$3((function(){return e.checkedLoop(0,(function(){return e.push("1")}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: 1). Bytecode: 42")})),it("throws an error when the stack pointer decreases",(function(){expect$3((function(){return e.checkedLoop(0,(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: -1). Bytecode: 42")}))})),describe("SourceNode handling",(function(){it("sourceNode handles unknown column",(function(){expect$3(Stack.sourceNode({source:"",start:{line:1,column:0,offset:0},end:{line:1,column:0,offset:0}},["foo"],"test").column).to.equal(null)}))}))}));var chai$2=require$$0,_a$1=utils$1,hex=_a$1.hex,stringEscape=_a$1.stringEscape,regexpClassEscape=_a$1.regexpClassEscape,base64=_a$1.base64,expect$2=chai$2.expect;describe("utility functions",(function(){it("hex",(function(){expect$2(hex("0")).to.equal("30"),expect$2(hex("\0")).to.equal("0"),expect$2(hex("\n")).to.equal("A"),expect$2(hex("\ufeff")).to.equal("FEFF")})),it("stringEscape",(function(){expect$2(stringEscape("abc")).to.equal("abc"),expect$2(stringEscape('\\"\0\b\t\n\v\f\r')).to.equal('\\\\\\"\\0\\b\\t\\n\\v\\f\\r'),expect$2(stringEscape("")).to.equal("\\x01\\x0F"),expect$2(stringEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$2(stringEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$2(stringEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("regexpClassEscape",(function(){expect$2(regexpClassEscape("\\\0\b\t\n\v\f\r")).to.equal("\\\\\\0\\b\\t\\n\\v\\f\\r"),expect$2(regexpClassEscape("/]^-")).to.equal("\\/\\]\\^\\-"),expect$2(regexpClassEscape("")).to.equal("\\x01\\x0F"),expect$2(regexpClassEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$2(regexpClassEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$2(regexpClassEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("base64",(function(){expect$2(base64(new Uint8Array([]))).to.equal(""),expect$2(base64(new Uint8Array([97]))).to.equal("YQ=="),expect$2(base64(new Uint8Array([97,98]))).to.equal("YWI="),expect$2(base64(new Uint8Array([97,98,99]))).to.equal("YWJj"),expect$2(base64(new Uint8Array([97,98,99,100]))).to.equal("YWJjZA=="),expect$2(base64(new Uint8Array([97,98,99,100,101]))).to.equal("YWJjZGU="),expect$2(base64(new Uint8Array([97,98,99,100,101,102]))).to.equal("YWJjZGVm")}))}));var chai$1=require$$0,_a=peg_1,GrammarError=_a.GrammarError,GrammarLocation=_a.GrammarLocation,expect$1=chai$1.expect,location={source:void 0,start:{offset:0,line:1,column:1},end:{offset:4,line:1,column:5}};describe("Grammar Errors",(function(){it("might not have a location",(function(){var e=new GrammarError("message");expect$1(e.location).to.equal(void 0),expect$1(e.toString()).to.equal("GrammarError: message")})),it("might have locations",(function(){location.source=void 0;var e=new GrammarError("message",location);expect$1(e.location).to.eql(location),expect$1(e.toString()).to.equal("GrammarError: message\n at 1:1"),e=new GrammarError("message",null,[{message:"Subinfo",location:location}]),expect$1(e.location).to.equal(null),expect$1(e.toString()).to.equal("GrammarError: message\n from 1:1: Subinfo"),location.source="foo.peggy",e=new GrammarError("message",location,[{message:"Subinfo",location:location}]),expect$1(e.toString()).to.equal("GrammarError: message\n at foo.peggy:1:1\n from foo.peggy:1:1: Subinfo")})),describe("formats",(function(){var e={source:"foo.peggy",text:"some error\nthat"},t={source:"foo.peggy",start:{offset:5,line:1,column:6},end:{offset:11,line:2,column:1}},r=[{message:"Subinfo",location:t}];describe("single problem",(function(){describe("with main location",(function(){location.source="foo.peggy";var t=new GrammarError("message",location,r);it("with zero-length error at the end",(function(){var t=new GrammarError("message",{source:"foo.peggy",start:{offset:4,line:1,column:5},end:{offset:4,line:1,column:5}});expect$1(t.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:5\n |\n1 | some error\n | ^")})),it("with source",(function(){expect$1(t.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:1\n |\n1 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(t.format([])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo")}))})),describe("without main location",(function(){var t=new GrammarError("message",null,r);it("with source",(function(){expect$1(t.format([e])).to.equal("error: message\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(t.format([])).to.equal("error: message\n at foo.peggy:1:6: Subinfo")}))}))})),describe("several problems",(function(){describe("with main location",(function(){location.source="foo.peggy";var a=new GrammarError("message",location,r);a.problems.push(["warning","Warning message",t,[{message:"Warning Subinfo",location:t}]]),a.problems.push(["info","Info message",null,[]]),it("null source text",(function(){expect$1(a.format([{source:null,text:null}])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo"),expect$1(a.format([{source:null,text:void 0}])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo")})),it("with source",(function(){expect$1(a.format([e])).to.equal("error: message\n --\x3e foo.peggy:1:1\n |\n1 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\n\nwarning: Warning message\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\nnote: Warning Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("with GrammarLocation",(function(){var r=new GrammarLocation("foo.peggy",{offset:12,line:15,column:8});expect$1(String(r)).to.equal("foo.peggy"),location.source=r,t.source=r,a.diagnostics.push({message:"Column not offset",location:{source:r,start:{offset:11,line:2,column:1},end:{offset:15,line:2,column:5}}}),expect$1(a.format([{source:r,text:e.text}])).to.equal("error: message\n --\x3e foo.peggy:15:8\n |\n15 | some error\n | ^^^^\nnote: Subinfo\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^\nnote: Column not offset\n --\x3e foo.peggy:16:1\n |\n16 | that\n | ^^^^\n\nwarning: Warning message\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^\nnote: Warning Subinfo\n --\x3e foo.peggy:15:13\n |\n15 | some error\n | ^^^^^"),location.source="foo.peggy",t.source="foo.peggy",a.diagnostics.pop()})),it("without source",(function(){expect$1(a.format([])).to.equal("error: message\n at foo.peggy:1:1\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6\n at foo.peggy:1:6: Warning Subinfo")}))})),describe("without main location",(function(){var a=new GrammarError("message",null,r);a.problems.push(["warning","Warning message",null,[{message:"Warning Subinfo",location:t}]]),a.problems.push(["info","Info message",null,[]]),it("with source",(function(){expect$1(a.format([e])).to.equal("error: message\nnote: Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^\n\nwarning: Warning message\nnote: Warning Subinfo\n --\x3e foo.peggy:1:6\n |\n1 | some error\n | ^^^^^")})),it("without source",(function(){expect$1(a.format([])).to.equal("error: message\n at foo.peggy:1:6: Subinfo\n\nwarning: Warning message\n at foo.peggy:1:6: Warning Subinfo")}))}))}))}))}));var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var a,n=0,o=t.length;n=20.8" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -6461,7 +6473,6 @@ "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -6476,7 +6487,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -6487,8 +6497,7 @@ "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/send": { "version": "0.18.0", diff --git a/package.json b/package.json index 6a6bc8cf..e607a00b 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "typescript": "^5.3.3" }, "dependencies": { + "@peggyjs/from-mem": "1.0.0", "commander": "^12.0.0", "source-map-generator": "0.8.0" },