@sheetxl/sdk 0.7.28-beta.1 → 0.7.28-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,6 +43,9 @@ sheet.getRange("B1").setValue(2);
43
43
  // Formula
44
44
  sheet.getRange("C1").setFormula("=A1*B1");
45
45
 
46
+ // wait for async calc.
47
+ await sheet.whenCalculationReady();
48
+
46
49
  // Read result
47
50
  console.log(sheet.getRange("C1").getValue()); // 84
48
51
 
@@ -1 +1 @@
1
- const e=require("./B7_pDFYCVzt-3hUs.cjs"),t=require("./D590vnHyyrIYenQ7.cjs");let n=require("@sheetxl/primitives"),r=require("@sheetxl/utils"),i=require("@sheetxl/formulas");i=e.r(i,1);let a=require("@sheetxl/formulas-extended");a=e.r(a,1);var o=[{pkg:`@sheetxl/formulas`,id:`@sheetxl/formulas`,files:[`functions.json`]},{pkg:`@sheetxl/formulas-extended`,id:`@sheetxl/formulas-extended`,files:[`functions.json`]},{pkg:`@sheetxl/sdk`,id:`@sheetxl/sdk:grammar`,files:[`grammar.json`]}],s=new Set;function c(e,t){let n=`${e.id}\0${t}`;s.has(n)||(s.add(n),r.DefaultLanguagePackService.registerPack(e.id,t,async()=>{let n={tag:t};return await Promise.all(e.files.map(async i=>{let a=await(0,r.fetchLocaleResource)(e.pkg,`${t}/${i}`).catch(()=>{});a&&(i===`functions.json`?n.functions=a:Object.assign(n,a))})),n}))}function l(e){if(e&&e!==`en`&&!e.startsWith(`en-`))for(let t of o)c(t,e)}var u=!1,d=new WeakMap;function f(){let e=t.an(),n=e?.functionHelp;if(!e||!n)return Promise.resolve(null);let r=d.get(e);return r||(r=n().then(e=>(e&&typeof e==`object`&&`default`in e?e.default:e)??null).catch(()=>null),d.set(e,r)),r}var p=(e,i,a,o,s,c)=>{let l=Object.keys(o);for(let u of l){let l=o[u],d=u,p=e=>{let t=null;e.s?t=e.s:e.r||e.g||(t=n.ScalarType.Number);let i={name:e.n,scalar:t,range:e.r??null,arrayDepth:e.d??0,optional:e.m===`?`,rest:e.m===`...`,enums:e.e??r.CommonUtils.EmptyArray};return e.l&&(i.lambda=e.l),e.a!==void 0&&(i.lambdaArity=e.a),e.o&&(i.errors=e.o),e.v!==void 0&&(i.defaultValue=e.v),e.u&&(i.omittable=!0),e.w!==void 0&&(i.omittedValue=e.w),e.g&&(i.repeating=e.g.map(p)),delete i.dim,i},m=[],h=l.p;if(h)for(let e=0;e<h.length;e++)m.push(p(h[e]));let g=null;l.r&&(g={},l.r.s&&(g.scalar=l.r.s),l.r.r&&(g.range=l.r.r===`p`||l.r.r===`r`||l.r.r===`m`?l.r.r:null),l.r.d&&(g.arrayDepth=l.r.d??0),l.r.l&&(g.lambda=l.r.l||null));let _={name:d,parameters:m,returnType:g,context:l.c?`calculation`:null,behavior:null},v=a[l.fn??d],y,b=new t.Gt(_,v,i,async e=>{if(!s)return null;let n;y?n=y:(n=(await s()).default,y=n);let i=n?.[d];if(!i)return console.warn(`No descriptor found for built-in function: ${d}`),null;let a=(await f())?.[d],o=i.p,l=o?{...o}:r.CommonUtils.EmptyObject,u=Object.keys(l);if(u.length>0)for(let e=0;e<u.length;e++){let t=u[e],n=o[t],r=a?.p?.[t];l[t]={description:r?.d??n.d??``,example:r?.e??n.e,defaultValue:n.v}}return{name:d,nameLocal:t.an()?.functions?.[d]??d,summary:a?.s??i.s??``,category:a?.c??i.c??c??null,parameters:l,deprecated:i.h??!1,links:i.l??r.CommonUtils.EmptyArray}},!0);e.set(d,b)}};exports.initializeFunctions=function(e,t){u||(u=!0,l(r.DefaultLanguagePackService.getActive()),r.DefaultLanguagePackService.addChangeListener(e=>l(e)));let n=(0,i.default)(e,p);if((0,a.default)(e,p,n),t)for(let r of t)r(e,p,n);return n};
1
+ const e=require("./B7_pDFYCVzt-3hUs.cjs"),t=require("./DoemwsUQoGCk0vBK.cjs");let n=require("@sheetxl/primitives"),r=require("@sheetxl/utils"),i=require("@sheetxl/formulas");i=e.r(i,1);let a=require("@sheetxl/formulas-extended");a=e.r(a,1);var o=[{pkg:`@sheetxl/formulas`,id:`@sheetxl/formulas`,files:[`functions.json`]},{pkg:`@sheetxl/formulas-extended`,id:`@sheetxl/formulas-extended`,files:[`functions.json`]},{pkg:`@sheetxl/sdk`,id:`@sheetxl/sdk:grammar`,files:[`grammar.json`]}],s=new Set;function c(e,t){let n=`${e.id}\0${t}`;s.has(n)||(s.add(n),r.DefaultLanguagePackService.registerPack(e.id,t,async()=>{let n={tag:t};return await Promise.all(e.files.map(async i=>{let a=await(0,r.fetchLocaleResource)(e.pkg,`${t}/${i}`).catch(()=>{});a&&(i===`functions.json`?n.functions=a:Object.assign(n,a))})),n}))}function l(e){if(e&&e!==`en`&&!e.startsWith(`en-`))for(let t of o)c(t,e)}var u=!1,d=new WeakMap;function f(){let e=t.an(),n=e?.functionHelp;if(!e||!n)return Promise.resolve(null);let r=d.get(e);return r||(r=n().then(e=>(e&&typeof e==`object`&&`default`in e?e.default:e)??null).catch(()=>null),d.set(e,r)),r}var p=(e,i,a,o,s,c)=>{let l=Object.keys(o);for(let u of l){let l=o[u],d=u,p=e=>{let t=null;e.s?t=e.s:e.r||e.g||(t=n.ScalarType.Number);let i={name:e.n,scalar:t,range:e.r??null,arrayDepth:e.d??0,optional:e.m===`?`,rest:e.m===`...`,enums:e.e??r.CommonUtils.EmptyArray};return e.l&&(i.lambda=e.l),e.a!==void 0&&(i.lambdaArity=e.a),e.o&&(i.errors=e.o),e.v!==void 0&&(i.defaultValue=e.v),e.u&&(i.omittable=!0),e.w!==void 0&&(i.omittedValue=e.w),e.g&&(i.repeating=e.g.map(p)),delete i.dim,i},m=[],h=l.p;if(h)for(let e=0;e<h.length;e++)m.push(p(h[e]));let g=null;l.r&&(g={},l.r.s&&(g.scalar=l.r.s),l.r.r&&(g.range=l.r.r===`p`||l.r.r===`r`||l.r.r===`m`?l.r.r:null),l.r.d&&(g.arrayDepth=l.r.d??0),l.r.l&&(g.lambda=l.r.l||null));let _={name:d,parameters:m,returnType:g,context:l.c?`calculation`:null,behavior:null},v=a[l.fn??d],y,b=new t.Gt(_,v,i,async e=>{if(!s)return null;let n;y?n=y:(n=(await s()).default,y=n);let i=n?.[d];if(!i)return console.warn(`No descriptor found for built-in function: ${d}`),null;let a=(await f())?.[d],o=i.p,l=o?{...o}:r.CommonUtils.EmptyObject,u=Object.keys(l);if(u.length>0)for(let e=0;e<u.length;e++){let t=u[e],n=o[t],r=a?.p?.[t];l[t]={description:r?.d??n.d??``,example:r?.e??n.e,defaultValue:n.v}}return{name:d,nameLocal:t.an()?.functions?.[d]??d,summary:a?.s??i.s??``,category:a?.c??i.c??c??null,parameters:l,deprecated:i.h??!1,links:i.l??r.CommonUtils.EmptyArray}},!0);e.set(d,b)}};exports.initializeFunctions=function(e,t){u||(u=!0,l(r.DefaultLanguagePackService.getActive()),r.DefaultLanguagePackService.addChangeListener(e=>l(e)));let n=(0,i.default)(e,p);if((0,a.default)(e,p,n),t)for(let r of t)r(e,p,n);return n};
@@ -1 +1 @@
1
- exports.loadEnumManifest=async function(){let e=`@0.7.28-beta.1`;e!==`@local`&&e!==`@0.0.0`||(e=``);let t=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${e}/types/scripting-enums.json`,n=await fetch(t);if(!n.ok)throw Error(`Unable to load script enum runtime (${n.status}) from ${t}.`);return n.json()};
1
+ exports.loadEnumManifest=async function(){let e=`@0.7.28-beta.2`;e!==`@local`&&e!==`@0.0.0`||(e=``);let t=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${e}/types/scripting-enums.json`,n=await fetch(t);if(!n.ok)throw Error(`Unable to load script enum runtime (${n.status}) from ${t}.`);return n.json()};
@@ -1,4 +1,4 @@
1
- const e=require("./D590vnHyyrIYenQ7.cjs");let t=require("@sheetxl/primitives");function n(e){console&&console.error&&console.error(`Error: ${e}`)}function r(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function i(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function a(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e}var o=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),this.definition.forEach(t=>{t.accept(e)})}},s=class extends o{constructor(e){super([]),this.idx=1,Object.assign(this,v(e))}set definition(e){}get definition(){return this.referencedRule===void 0?[]:this.referencedRule.definition}accept(e){e.visit(this)}},c=class extends o{constructor(e){super(e.definition),this.orgText=``,Object.assign(this,v(e))}},l=class extends o{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Object.assign(this,v(e))}},u=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},d=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},f=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},p=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},m=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},h=class extends o{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,v(e))}},g=class{constructor(e){this.idx=1,Object.assign(this,v(e))}accept(e){e.visit(this)}};function _(e){function t(e){return e.map(_)}if(e instanceof s){let t={type:`NonTerminal`,name:e.nonTerminalName,idx:e.idx};return typeof e.label==`string`&&(t.label=e.label),t}if(e instanceof l)return{type:`Alternative`,definition:t(e.definition)};if(e instanceof u)return{type:`Option`,idx:e.idx,definition:t(e.definition)};if(e instanceof d)return{type:`RepetitionMandatory`,idx:e.idx,definition:t(e.definition)};if(e instanceof f)return{type:`RepetitionMandatoryWithSeparator`,idx:e.idx,separator:_(new g({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof m)return{type:`RepetitionWithSeparator`,idx:e.idx,separator:_(new g({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof p)return{type:`Repetition`,idx:e.idx,definition:t(e.definition)};if(e instanceof h)return{type:`Alternation`,idx:e.idx,definition:t(e.definition)};if(e instanceof g){let t={type:`Terminal`,name:e.terminalType.name,label:(n=e.terminalType,typeof(r=n).LABEL==`string`&&r.LABEL!==``?n.LABEL:n.name),idx:e.idx};typeof e.label==`string`&&(t.terminalLabel=e.label);let i=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=i instanceof RegExp?i.source:i),t}if(e instanceof c)return{type:`Rule`,name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error(`non exhaustive match`);var n,r}function v(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var y=class{visit(e){let t=e;switch(t.constructor){case s:return this.visitNonTerminal(t);case l:return this.visitAlternative(t);case u:return this.visitOption(t);case d:return this.visitRepetitionMandatory(t);case f:return this.visitRepetitionMandatoryWithSeparator(t);case m:return this.visitRepetitionWithSeparator(t);case p:return this.visitRepetition(t);case h:return this.visitAlternation(t);case g:return this.visitTerminal(t);case c:return this.visitRule(t);default:throw Error(`non exhaustive match`)}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function b(e,t=[]){return e instanceof u||e instanceof p||e instanceof m||(e instanceof h?e.definition.some(e=>b(e,t)):!(e instanceof s&&t.includes(e))&&e instanceof o&&(e instanceof s&&t.push(e),e.definition.every(e=>b(e,t))))}function x(e){if(e instanceof s)return`SUBRULE`;if(e instanceof u)return`OPTION`;if(e instanceof h)return`OR`;if(e instanceof d)return`AT_LEAST_ONE`;if(e instanceof f)return`AT_LEAST_ONE_SEP`;if(e instanceof m)return`MANY_SEP`;if(e instanceof p)return`MANY`;if(e instanceof g)return`CONSUME`;throw Error(`non exhaustive match`)}var S=class{walk(e,t=[]){e.definition.forEach((n,r)=>{let i=e.definition.slice(r+1);if(n instanceof s)this.walkProdRef(n,i,t);else if(n instanceof g)this.walkTerminal(n,i,t);else if(n instanceof l)this.walkFlat(n,i,t);else if(n instanceof u)this.walkOption(n,i,t);else if(n instanceof d)this.walkAtLeastOne(n,i,t);else if(n instanceof f)this.walkAtLeastOneSep(n,i,t);else if(n instanceof m)this.walkManySep(n,i,t);else if(n instanceof p)this.walkMany(n,i,t);else{if(!(n instanceof h))throw Error(`non exhaustive match`);this.walkOr(n,i,t)}})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new u({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=C(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new u({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=C(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);e.definition.forEach(e=>{let t=new l({definition:[e]});this.walk(t,r)})}};function C(e,t,n){return[new u({definition:[new g({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function w(e){if(e instanceof s)return w(e.referencedRule);if(e instanceof g)return[e.terminalType];if(function(e){return e instanceof l||e instanceof u||e instanceof p||e instanceof d||e instanceof f||e instanceof m||e instanceof g||e instanceof c}(e))return function(e){let t=[],n=e.definition,r,i=0,a=n.length>i,o=!0;for(;a&&o;)r=n[i],o=b(r),t=t.concat(w(r)),i+=1,a=n.length>i;return[...new Set(t)]}(e);if(function(e){return e instanceof h}(e))return function(e){let t=e.definition.map(e=>w(e));return[...new Set(t.flat())]}(e);throw Error(`non exhaustive match`)}var T=`_~IN~_`,E=class extends S{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=(i=e.referencedRule,a=e.idx,i.name+a+T+this.topProd.name);var i,a;let o=w(new l({definition:t.concat(n)}));this.follows[r]=o}};function D(e){return e.charCodeAt(0)}function O(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function k(e,t){if(!0===e[t])throw`duplicate flag `+t;e[t],e[t]=!0}function A(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function j(){throw Error(`Internal Error - Should never get here!`)}function M(e){return e.type===`Character`}var N=[];for(let e=D(`0`);e<=D(`9`);e++)N.push(e);var P=[D(`_`)].concat(N);for(let e=D(`a`);e<=D(`z`);e++)P.push(e);for(let e=D(`A`);e<=D(`Z`);e++)P.push(e);var ee=[D(` `),D(`\f`),D(`
1
+ const e=require("./DoemwsUQoGCk0vBK.cjs");let t=require("@sheetxl/primitives");function n(e){console&&console.error&&console.error(`Error: ${e}`)}function r(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function i(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function a(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e}var o=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),this.definition.forEach(t=>{t.accept(e)})}},s=class extends o{constructor(e){super([]),this.idx=1,Object.assign(this,v(e))}set definition(e){}get definition(){return this.referencedRule===void 0?[]:this.referencedRule.definition}accept(e){e.visit(this)}},c=class extends o{constructor(e){super(e.definition),this.orgText=``,Object.assign(this,v(e))}},l=class extends o{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Object.assign(this,v(e))}},u=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},d=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},f=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},p=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},m=class extends o{constructor(e){super(e.definition),this.idx=1,Object.assign(this,v(e))}},h=class extends o{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,v(e))}},g=class{constructor(e){this.idx=1,Object.assign(this,v(e))}accept(e){e.visit(this)}};function _(e){function t(e){return e.map(_)}if(e instanceof s){let t={type:`NonTerminal`,name:e.nonTerminalName,idx:e.idx};return typeof e.label==`string`&&(t.label=e.label),t}if(e instanceof l)return{type:`Alternative`,definition:t(e.definition)};if(e instanceof u)return{type:`Option`,idx:e.idx,definition:t(e.definition)};if(e instanceof d)return{type:`RepetitionMandatory`,idx:e.idx,definition:t(e.definition)};if(e instanceof f)return{type:`RepetitionMandatoryWithSeparator`,idx:e.idx,separator:_(new g({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof m)return{type:`RepetitionWithSeparator`,idx:e.idx,separator:_(new g({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof p)return{type:`Repetition`,idx:e.idx,definition:t(e.definition)};if(e instanceof h)return{type:`Alternation`,idx:e.idx,definition:t(e.definition)};if(e instanceof g){let t={type:`Terminal`,name:e.terminalType.name,label:(n=e.terminalType,typeof(r=n).LABEL==`string`&&r.LABEL!==``?n.LABEL:n.name),idx:e.idx};typeof e.label==`string`&&(t.terminalLabel=e.label);let i=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=i instanceof RegExp?i.source:i),t}if(e instanceof c)return{type:`Rule`,name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error(`non exhaustive match`);var n,r}function v(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var y=class{visit(e){let t=e;switch(t.constructor){case s:return this.visitNonTerminal(t);case l:return this.visitAlternative(t);case u:return this.visitOption(t);case d:return this.visitRepetitionMandatory(t);case f:return this.visitRepetitionMandatoryWithSeparator(t);case m:return this.visitRepetitionWithSeparator(t);case p:return this.visitRepetition(t);case h:return this.visitAlternation(t);case g:return this.visitTerminal(t);case c:return this.visitRule(t);default:throw Error(`non exhaustive match`)}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function b(e,t=[]){return e instanceof u||e instanceof p||e instanceof m||(e instanceof h?e.definition.some(e=>b(e,t)):!(e instanceof s&&t.includes(e))&&e instanceof o&&(e instanceof s&&t.push(e),e.definition.every(e=>b(e,t))))}function x(e){if(e instanceof s)return`SUBRULE`;if(e instanceof u)return`OPTION`;if(e instanceof h)return`OR`;if(e instanceof d)return`AT_LEAST_ONE`;if(e instanceof f)return`AT_LEAST_ONE_SEP`;if(e instanceof m)return`MANY_SEP`;if(e instanceof p)return`MANY`;if(e instanceof g)return`CONSUME`;throw Error(`non exhaustive match`)}var S=class{walk(e,t=[]){e.definition.forEach((n,r)=>{let i=e.definition.slice(r+1);if(n instanceof s)this.walkProdRef(n,i,t);else if(n instanceof g)this.walkTerminal(n,i,t);else if(n instanceof l)this.walkFlat(n,i,t);else if(n instanceof u)this.walkOption(n,i,t);else if(n instanceof d)this.walkAtLeastOne(n,i,t);else if(n instanceof f)this.walkAtLeastOneSep(n,i,t);else if(n instanceof m)this.walkManySep(n,i,t);else if(n instanceof p)this.walkMany(n,i,t);else{if(!(n instanceof h))throw Error(`non exhaustive match`);this.walkOr(n,i,t)}})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new u({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=C(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new u({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=C(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);e.definition.forEach(e=>{let t=new l({definition:[e]});this.walk(t,r)})}};function C(e,t,n){return[new u({definition:[new g({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function w(e){if(e instanceof s)return w(e.referencedRule);if(e instanceof g)return[e.terminalType];if(function(e){return e instanceof l||e instanceof u||e instanceof p||e instanceof d||e instanceof f||e instanceof m||e instanceof g||e instanceof c}(e))return function(e){let t=[],n=e.definition,r,i=0,a=n.length>i,o=!0;for(;a&&o;)r=n[i],o=b(r),t=t.concat(w(r)),i+=1,a=n.length>i;return[...new Set(t)]}(e);if(function(e){return e instanceof h}(e))return function(e){let t=e.definition.map(e=>w(e));return[...new Set(t.flat())]}(e);throw Error(`non exhaustive match`)}var T=`_~IN~_`,E=class extends S{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=(i=e.referencedRule,a=e.idx,i.name+a+T+this.topProd.name);var i,a;let o=w(new l({definition:t.concat(n)}));this.follows[r]=o}};function D(e){return e.charCodeAt(0)}function O(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function k(e,t){if(!0===e[t])throw`duplicate flag `+t;e[t],e[t]=!0}function A(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function j(){throw Error(`Internal Error - Should never get here!`)}function M(e){return e.type===`Character`}var N=[];for(let e=D(`0`);e<=D(`9`);e++)N.push(e);var P=[D(`_`)].concat(N);for(let e=D(`a`);e<=D(`z`);e++)P.push(e);for(let e=D(`A`);e<=D(`Z`);e++)P.push(e);var ee=[D(` `),D(`\f`),D(`
2
2
  `),D(`\r`),D(` `),D(`\v`),D(` `),D(`\xA0`),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(` `),D(`\u2028`),D(`\u2029`),D(` `),D(` `),D(` `),D(``)],te=/[0-9a-fA-F]/,F=/[0-9]/,ne=/[1-9]/,I=class{visitChildren(e){for(let t in e){let n=e[t];e.hasOwnProperty(t)&&(n.type===void 0?Array.isArray(n)&&n.forEach(e=>{this.visit(e)},this):this.visit(n))}}visit(e){switch(e.type){case`Pattern`:this.visitPattern(e);break;case`Flags`:this.visitFlags(e);break;case`Disjunction`:this.visitDisjunction(e);break;case`Alternative`:this.visitAlternative(e);break;case`StartAnchor`:this.visitStartAnchor(e);break;case`EndAnchor`:this.visitEndAnchor(e);break;case`WordBoundary`:this.visitWordBoundary(e);break;case`NonWordBoundary`:this.visitNonWordBoundary(e);break;case`Lookahead`:this.visitLookahead(e);break;case`NegativeLookahead`:this.visitNegativeLookahead(e);break;case`Lookbehind`:this.visitLookbehind(e);break;case`NegativeLookbehind`:this.visitNegativeLookbehind(e);break;case`Character`:this.visitCharacter(e);break;case`Set`:this.visitSet(e);break;case`Group`:this.visitGroup(e);break;case`GroupBackReference`:this.visitGroupBackReference(e);break;case`Quantifier`:this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}},L={},re=new class{constructor(){this.idx=0,this.input=``,this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar(`/`);let t=this.disjunction();this.consumeChar(`/`);let n={type:`Flags`,loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case`g`:k(n,`global`);break;case`i`:k(n,`ignoreCase`);break;case`m`:k(n,`multiLine`);break;case`u`:k(n,`unicode`);break;case`y`:k(n,`sticky`)}if(this.idx!==this.input.length)throw Error(`Redundant input: `+this.input.substring(this.idx));return{type:`Pattern`,flags:n,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()===`|`;)this.consumeChar(`|`),e.push(this.alternative());return{type:`Disjunction`,value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:`Alternative`,value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case`^`:return{type:`StartAnchor`,loc:this.loc(e)};case`$`:return{type:`EndAnchor`,loc:this.loc(e)};case`\\`:switch(this.popChar()){case`b`:return{type:`WordBoundary`,loc:this.loc(e)};case`B`:return{type:`NonWordBoundary`,loc:this.loc(e)}}throw Error(`Invalid Assertion Escape`);case`(`:let t;switch(this.consumeChar(`?`),this.popChar()){case`=`:t=`Lookahead`;break;case`!`:t=`NegativeLookahead`;break;case`<`:switch(this.popChar()){case`=`:t=`Lookbehind`;break;case`!`:t=`NegativeLookbehind`}}A(t);let n=this.disjunction();return this.consumeChar(`)`),{type:t,value:n,loc:this.loc(e)}}return j()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case`*`:t={atLeast:0,atMost:1/0};break;case`+`:t={atLeast:1,atMost:1/0};break;case`?`:t={atLeast:0,atMost:1};break;case`{`:let n=this.integerIncludingZero();switch(this.popChar()){case`}`:t={atLeast:n,atMost:n};break;case`,`:let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar(`}`)}if(!0===e&&t===void 0)return;A(t)}if(!0!==e||t!==void 0)return A(t)?(this.peekChar(0)===`?`?(this.consumeChar(`?`),t.greedy=!1):t.greedy=!0,t.type=`Quantifier`,t.loc=this.loc(n),t):void 0}atom(){let e,t=this.idx;switch(this.peekChar()){case`.`:e=this.dotAll();break;case`\\`:e=this.atomEscape();break;case`[`:e=this.characterClass();break;case`(`:e=this.group()}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),A(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):j()}dotAll(){return this.consumeChar(`.`),{type:`Set`,complement:!0,value:[D(`
3
3
  `),D(`\r`),D(`\u2028`),D(`\u2029`)]}}atomEscape(){switch(this.consumeChar(`\\`),this.peekChar()){case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:return this.decimalEscapeAtom();case`d`:case`D`:case`s`:case`S`:case`w`:case`W`:return this.characterClassEscape();case`f`:case`n`:case`r`:case`t`:case`v`:return this.controlEscapeAtom();case`c`:return this.controlLetterEscapeAtom();case`0`:return this.nulCharacterAtom();case`x`:return this.hexEscapeSequenceAtom();case`u`:return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:`GroupBackReference`,value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case`d`:e=N;break;case`D`:e=N,t=!0;break;case`s`:e=ee;break;case`S`:e=ee,t=!0;break;case`w`:e=P;break;case`W`:e=P,t=!0}return A(e)?{type:`Set`,value:e,complement:t}:j()}controlEscapeAtom(){let e;switch(this.popChar()){case`f`:e=D(`\f`);break;case`n`:e=D(`
4
4
  `);break;case`r`:e=D(`\r`);break;case`t`:e=D(` `);break;case`v`:e=D(`\v`)}return A(e)?{type:`Character`,value:e}:j()}controlLetterEscapeAtom(){this.consumeChar(`c`);let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error(`Invalid `);return{type:`Character`,value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar(`0`),{type:`Character`,value:D(`\0`)}}hexEscapeSequenceAtom(){return this.consumeChar(`x`),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar(`u`),this.parseHexDigits(4)}identityEscapeAtom(){return{type:`Character`,value:D(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`