@superlc/md-core 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_baseUniq-BfzcfZ4T.cjs +1 -0
- package/dist/_baseUniq-Y3ulau-C.js +477 -0
- package/dist/arc-Be_AVKBg.cjs +1 -0
- package/dist/arc-Ca7Zrknn.js +83 -0
- package/dist/architectureDiagram-VXUJARFQ-4Jx44yBn.cjs +36 -0
- package/dist/architectureDiagram-VXUJARFQ-DJeUU_qv.js +4665 -0
- package/dist/blockDiagram-VD42YOAC-BimcGKKd.cjs +122 -0
- package/dist/blockDiagram-VD42YOAC-D-giXjw6.js +2265 -0
- package/dist/c4Diagram-YG6GDRKO-Bl9iUUVb.cjs +10 -0
- package/dist/c4Diagram-YG6GDRKO-YxTtvGWw.js +1581 -0
- package/dist/channel-DOU_t-A5.js +5 -0
- package/dist/channel-DzR_mTuG.cjs +1 -0
- package/dist/chunk-4BX2VUAB-BT8x_a4k.cjs +1 -0
- package/dist/chunk-4BX2VUAB-qWjx6fvp.js +9 -0
- package/dist/chunk-55IACEB6-DRmMNyi7.js +8 -0
- package/dist/chunk-55IACEB6-DfzR1I2i.cjs +1 -0
- package/dist/chunk-B4BG7PRW-B4vBwkd7.js +1376 -0
- package/dist/chunk-B4BG7PRW-k_Ki7ZYa.cjs +165 -0
- package/dist/chunk-DI55MBZ5-67zt7BEa.cjs +220 -0
- package/dist/chunk-DI55MBZ5-B-Akunv8.js +1382 -0
- package/dist/chunk-FMBD7UC4-D-gJ-PKq.cjs +15 -0
- package/dist/chunk-FMBD7UC4-D1foMA2H.js +19 -0
- package/dist/chunk-QN33PNHL-DBsOH5IO.cjs +1 -0
- package/dist/chunk-QN33PNHL-DpeYRHMx.js +20 -0
- package/dist/chunk-QZHKN3VN-CWmChvMD.cjs +1 -0
- package/dist/chunk-QZHKN3VN-CoINyXCe.js +15 -0
- package/dist/chunk-TZMSLE5B-CMo-Qyqp.js +64 -0
- package/dist/chunk-TZMSLE5B-Psc_3Gkx.cjs +1 -0
- package/dist/classDiagram-2ON5EDUG-BrNHAA-E.js +16 -0
- package/dist/classDiagram-2ON5EDUG-CA1gbIW7.cjs +1 -0
- package/dist/classDiagram-v2-WZHVMYZB-BrNHAA-E.js +16 -0
- package/dist/classDiagram-v2-WZHVMYZB-CA1gbIW7.cjs +1 -0
- package/dist/clone-BOyua0mT.js +8 -0
- package/dist/clone-D7Rx0g6P.cjs +1 -0
- package/dist/cose-bilkent-S5V4N54A-BBcnamAX.cjs +1 -0
- package/dist/cose-bilkent-S5V4N54A-xbHM31av.js +2605 -0
- package/dist/cytoscape.esm-DkGgpG6d.cjs +331 -0
- package/dist/cytoscape.esm-ZmItrg9y.js +18731 -0
- package/dist/dagre-6UL2VRFP-B5ZJ9Mmw.cjs +4 -0
- package/dist/dagre-6UL2VRFP-lY6fElcy.js +446 -0
- package/dist/defaultLocale-BgPVtth8.js +171 -0
- package/dist/defaultLocale-C4wbwF1n.cjs +1 -0
- package/dist/diagram-PSM6KHXK-DOgpThfE.js +534 -0
- package/dist/diagram-PSM6KHXK-NUCrGNCX.cjs +24 -0
- package/dist/diagram-QEK2KX5R-CKpcqpBk.js +221 -0
- package/dist/diagram-QEK2KX5R-P-pWAYvp.cjs +43 -0
- package/dist/diagram-S2PKOQOG-B4PYQerv.cjs +24 -0
- package/dist/diagram-S2PKOQOG-CZn9lft8.js +143 -0
- package/dist/erDiagram-Q2GNP2WA-D6UL-dgf.js +842 -0
- package/dist/erDiagram-Q2GNP2WA-DwYOfnOX.cjs +60 -0
- package/dist/flowDiagram-NV44I4VS-BvuqC7lR.cjs +162 -0
- package/dist/flowDiagram-NV44I4VS-YPdRK_ji.js +1627 -0
- package/dist/ganttDiagram-JELNMOA3-CGnvf7yj.js +2662 -0
- package/dist/ganttDiagram-JELNMOA3-wbYrtCNf.cjs +267 -0
- package/dist/gitGraphDiagram-NY62KEGX-BnpFLmUy.js +712 -0
- package/dist/gitGraphDiagram-NY62KEGX-BzlCJL63.cjs +65 -0
- package/dist/graph-Bv0JC_B1.cjs +1 -0
- package/dist/graph-DwDboYRQ.js +381 -0
- package/dist/index-A-U0gtM4.js +15167 -0
- package/dist/index-BC30feOR.cjs +300 -0
- package/dist/index.cjs +1 -300
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -14816
- package/dist/infoDiagram-WHAUD3N6-CPFFyZEz.cjs +2 -0
- package/dist/infoDiagram-WHAUD3N6-DF-Kn4KW.js +24 -0
- package/dist/init-CHZsXQcr.cjs +1 -0
- package/dist/init-DjUOC4st.js +16 -0
- package/dist/journeyDiagram-XKPGCS4Q-Bc3YJVQN.cjs +139 -0
- package/dist/journeyDiagram-XKPGCS4Q-CqUVbDan.js +836 -0
- package/dist/kanban-definition-3W4ZIXB7-BKxpdlfe.cjs +89 -0
- package/dist/kanban-definition-3W4ZIXB7-Zx7cVnZF.js +720 -0
- package/dist/layout-CrdknE74.js +1441 -0
- package/dist/layout-y4Mby5BC.cjs +1 -0
- package/dist/linear-D_NLLphh.cjs +1 -0
- package/dist/linear-Fqu_aevY.js +259 -0
- package/dist/mermaid/darkMode.d.ts +54 -0
- package/dist/mermaid/darkMode.d.ts.map +1 -0
- package/dist/mermaid/download.d.ts +27 -0
- package/dist/mermaid/download.d.ts.map +1 -0
- package/dist/mermaid/index.d.ts +9 -0
- package/dist/mermaid/index.d.ts.map +1 -0
- package/dist/mermaid/renderer.d.ts +36 -0
- package/dist/mermaid/renderer.d.ts.map +1 -0
- package/dist/mermaid/themes.d.ts +17 -0
- package/dist/mermaid/themes.d.ts.map +1 -0
- package/dist/mermaid/types.d.ts +117 -0
- package/dist/mermaid/types.d.ts.map +1 -0
- package/dist/mermaid.core-Buzus1hw.js +15321 -0
- package/dist/mermaid.core-CCMj67LO.cjs +255 -0
- package/dist/min-BNEwgiip.js +38 -0
- package/dist/min-CxfddLJo.cjs +1 -0
- package/dist/mindmap-definition-VGOIOE7T-C3sZAv1n.js +786 -0
- package/dist/mindmap-definition-VGOIOE7T-Cq9KhFIU.cjs +68 -0
- package/dist/ordinal-CagbB1m8.cjs +1 -0
- package/dist/ordinal-DfAQgscy.js +61 -0
- package/dist/pieDiagram-ADFJNKIX-Bib4GVaz.js +161 -0
- package/dist/pieDiagram-ADFJNKIX-CPJ4LdHJ.cjs +30 -0
- package/dist/quadrantDiagram-AYHSOK5B-Bw4qbzaI.js +1024 -0
- package/dist/quadrantDiagram-AYHSOK5B-Dldq3aFV.cjs +7 -0
- package/dist/requirementDiagram-UZGBJVZJ-BiMT5LBm.cjs +64 -0
- package/dist/requirementDiagram-UZGBJVZJ-DKt5E9D5.js +852 -0
- package/dist/sankeyDiagram-TZEHDZUN-BvqABFTj.cjs +10 -0
- package/dist/sankeyDiagram-TZEHDZUN-DPexJVr0.js +810 -0
- package/dist/sequenceDiagram-WL72ISMW-JcPuIgsZ.cjs +145 -0
- package/dist/sequenceDiagram-WL72ISMW-rx65Aq7k.js +2518 -0
- package/dist/stateDiagram-FKZM4ZOC-5jwz-EhH.cjs +1 -0
- package/dist/stateDiagram-FKZM4ZOC-D95elPzf.js +263 -0
- package/dist/stateDiagram-v2-4FDKWEC3-DKxcP1od.cjs +1 -0
- package/dist/stateDiagram-v2-4FDKWEC3-U8OyZJcH.js +16 -0
- package/dist/styles.css +292 -0
- package/dist/timeline-definition-IT6M3QCI-C_aFXPzu.cjs +61 -0
- package/dist/timeline-definition-IT6M3QCI-DzBIcxIH.js +801 -0
- package/dist/treemap-KMMF4GRG-CqQBq3TE.js +14157 -0
- package/dist/treemap-KMMF4GRG-DJHv4WOZ.cjs +128 -0
- package/dist/xychartDiagram-PRI3JC2R-M2dUh85s.cjs +7 -0
- package/dist/xychartDiagram-PRI3JC2R-ZNBNeiJf.js +1340 -0
- package/package.json +6 -2
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";var Vd=Object.defineProperty;var Wd=(t,e,n)=>e in t?Vd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var mt=(t,e,n)=>Wd(t,typeof e!="symbol"?e+"":e,n);const Fe=require("./min-CxfddLJo.cjs"),st=require("./_baseUniq-BfzcfZ4T.cjs"),zd=require("./mermaid.core-CCMj67LO.cjs");function qd(t,e){return st.baseFlatten(Fe.map(t,e))}function Yd(t,e){return t&&t.length?st.baseUniq(t,st.baseIteratee(e)):[]}function le(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function qe(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function Xd(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function ai(t){return typeof t=="object"&&t!==null&&le(t.container)&&qe(t.reference)&&typeof t.message=="string"}class mc{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,n){return le(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,n);return r[n]=s,s}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Tr(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function gc(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function yc(t){return Tr(t)&&typeof t.fullText=="string"}class te{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new te(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return Ae})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=Jd(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new te(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?Ae:{done:!1,value:e(i)}})}filter(e){return new te(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return Ae})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new te(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if(Ei(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return Ae})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new te(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=n.nextFn(r.this);if(!i)if(Ei(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ae})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new te(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new te(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?Ae:this.nextFn(n.state)))}distinct(e){return new te(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return Ae})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function Jd(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function Ei(t){return!!t&&typeof t[Symbol.iterator]=="function"}const Zd=new te(()=>{},()=>Ae),Ae=Object.freeze({done:!0,value:void 0});function ne(...t){if(t.length===1){const e=t[0];if(e instanceof te)return e;if(Ei(e))return new te(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new te(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:Ae)}return t.length>1?new te(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];Ei(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return Ae}):Zd}class Ka extends te{constructor(e,n,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(n(a.value)[Symbol.iterator]()),a}return Ae})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ea;(function(t){function e(s){return s.reduce((a,o)=>a+o,0)}t.sum=e;function n(s){return s.reduce((a,o)=>a*o,0)}t.product=n;function r(s){return s.reduce((a,o)=>Math.min(a,o))}t.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}t.max=i})(ea||(ea={}));function ta(t){return new Ka(t,e=>Tr(e)?e.content:[],{includeRoot:!0})}function Qd(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function na(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function $i(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var it;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(it||(it={}));function eh(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return it.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return it.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?it.Inside:n?it.OverlapBack:r?it.OverlapFront:it.Outside}function th(t,e){return eh(t,e)>it.After}const nh=/^[\w\p{L}]$/u;function rh(t,e){if(t){const n=ih(t,!0);if(n&&Po(n,e))return n;if(yc(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(Po(s,e))return s}}}}function Po(t,e){return gc(t)&&e.includes(t.tokenType.name)}function ih(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}class Tc extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function Ir(t){throw new Error("Error! The input value was not handled.")}const Fr="AbstractRule",Gr="AbstractType",$s="Condition",Mo="TypeDefinition",xs="ValueLiteral",Ln="AbstractElement";function sh(t){return F.isInstance(t,Ln)}const Ur="ArrayLiteral",Br="ArrayType",Pn="BooleanLiteral";function ah(t){return F.isInstance(t,Pn)}const Mn="Conjunction";function oh(t){return F.isInstance(t,Mn)}const Dn="Disjunction";function lh(t){return F.isInstance(t,Dn)}const jr="Grammar",Ss="GrammarImport",Fn="InferredType";function vc(t){return F.isInstance(t,Fn)}const Gn="Interface";function Rc(t){return F.isInstance(t,Gn)}const Is="NamedArgument",Un="Negation";function uh(t){return F.isInstance(t,Un)}const Kr="NumberLiteral",Hr="Parameter",Bn="ParameterReference";function ch(t){return F.isInstance(t,Bn)}const jn="ParserRule";function _e(t){return F.isInstance(t,jn)}const Vr="ReferenceType",oi="ReturnType";function fh(t){return F.isInstance(t,oi)}const Kn="SimpleType";function dh(t){return F.isInstance(t,Kn)}const Wr="StringLiteral",qt="TerminalRule";function Gt(t){return F.isInstance(t,qt)}const Hn="Type";function Ac(t){return F.isInstance(t,Hn)}const ks="TypeAttribute",zr="UnionType",Vn="Action";function qi(t){return F.isInstance(t,Vn)}const Wn="Alternatives";function Ec(t){return F.isInstance(t,Wn)}const zn="Assignment";function bt(t){return F.isInstance(t,zn)}const qn="CharacterRange";function hh(t){return F.isInstance(t,qn)}const Yn="CrossReference";function Ha(t){return F.isInstance(t,Yn)}const Xn="EndOfFile";function ph(t){return F.isInstance(t,Xn)}const Jn="Group";function Va(t){return F.isInstance(t,Jn)}const Zn="Keyword";function Ot(t){return F.isInstance(t,Zn)}const Qn="NegatedToken";function mh(t){return F.isInstance(t,Qn)}const er="RegexToken";function gh(t){return F.isInstance(t,er)}const tr="RuleCall";function Lt(t){return F.isInstance(t,tr)}const nr="TerminalAlternatives";function yh(t){return F.isInstance(t,nr)}const rr="TerminalGroup";function Th(t){return F.isInstance(t,rr)}const ir="TerminalRuleCall";function vh(t){return F.isInstance(t,ir)}const sr="UnorderedGroup";function $c(t){return F.isInstance(t,sr)}const ar="UntilToken";function Rh(t){return F.isInstance(t,ar)}const or="Wildcard";function Ah(t){return F.isInstance(t,or)}class xc extends mc{getAllTypes(){return[Ln,Fr,Gr,Vn,Wn,Ur,Br,zn,Pn,qn,$s,Mn,Yn,Dn,Xn,jr,Ss,Jn,Fn,Gn,Zn,Is,Qn,Un,Kr,Hr,Bn,jn,Vr,er,oi,tr,Kn,Wr,nr,rr,qt,ir,Hn,ks,Mo,zr,sr,ar,xs,or]}computeIsSubtype(e,n){switch(e){case Vn:case Wn:case zn:case qn:case Yn:case Xn:case Jn:case Zn:case Qn:case er:case tr:case nr:case rr:case ir:case sr:case ar:case or:return this.isSubtype(Ln,n);case Ur:case Kr:case Wr:return this.isSubtype(xs,n);case Br:case Vr:case Kn:case zr:return this.isSubtype(Mo,n);case Pn:return this.isSubtype($s,n)||this.isSubtype(xs,n);case Mn:case Dn:case Un:case Bn:return this.isSubtype($s,n);case Fn:case Gn:case Hn:return this.isSubtype(Gr,n);case jn:return this.isSubtype(Fr,n)||this.isSubtype(Gr,n);case qt:return this.isSubtype(Fr,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Gr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Fr;case"Grammar:usedGrammars":return jr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Hr;case"TerminalRuleCall:rule":return qt;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"}]};case Ur:return{name:Ur,properties:[{name:"elements",defaultValue:[]}]};case Br:return{name:Br,properties:[{name:"elementType"}]};case Pn:return{name:Pn,properties:[{name:"true",defaultValue:!1}]};case Mn:return{name:Mn,properties:[{name:"left"},{name:"right"}]};case Dn:return{name:Dn,properties:[{name:"left"},{name:"right"}]};case jr:return{name:jr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ss:return{name:Ss,properties:[{name:"path"}]};case Fn:return{name:Fn,properties:[{name:"name"}]};case Gn:return{name:Gn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Is:return{name:Is,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Un:return{name:Un,properties:[{name:"value"}]};case Kr:return{name:Kr,properties:[{name:"value"}]};case Hr:return{name:Hr,properties:[{name:"name"}]};case Bn:return{name:Bn,properties:[{name:"parameter"}]};case jn:return{name:jn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case Vr:return{name:Vr,properties:[{name:"referenceType"}]};case oi:return{name:oi,properties:[{name:"name"}]};case Kn:return{name:Kn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Wr:return{name:Wr,properties:[{name:"value"}]};case qt:return{name:qt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Hn:return{name:Hn,properties:[{name:"name"},{name:"type"}]};case ks:return{name:ks,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case zr:return{name:zr,properties:[{name:"types",defaultValue:[]}]};case Vn:return{name:Vn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Wn:return{name:Wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case zn:return{name:zn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case qn:return{name:qn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Yn:return{name:Yn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Xn:return{name:Xn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Jn:return{name:Jn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Zn:return{name:Zn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Qn:return{name:Qn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case er:return{name:er,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case tr:return{name:tr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case nr:return{name:nr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case rr:return{name:rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ir:return{name:ir,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case sr:return{name:sr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ar:return{name:ar,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case or:return{name:or,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const F=new xc;function Eh(t){for(const[e,n]of Object.entries(t))e.startsWith("$")||(Array.isArray(n)?n.forEach((r,i)=>{le(r)&&(r.$container=t,r.$containerProperty=e,r.$containerIndex=i)}):le(n)&&(n.$container=t,n.$containerProperty=e))}function Yi(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function gt(t){const n=ra(t).$document;if(!n)throw new Error("AST node has no document.");return n}function ra(t){for(;t.$container;)t=t.$container;return t}function Wa(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e==null?void 0:e.range;return new te(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(le(s)){if(r.keyIndex++,Do(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(le(o)&&Do(o,n))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return Ae})}function kr(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ka(t,n=>Wa(n,e))}function Xt(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ka(t,n=>Wa(n,e),{includeRoot:!0})}function Do(t,e){var n;if(!e)return!0;const r=(n=t.$cstNode)===null||n===void 0?void 0:n.range;return r?th(r,e):!1}function Sc(t){return new te(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(qe(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(qe(s))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ae})}function $h(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of n.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Ic(i.defaultValue))}function Ic(t){return Array.isArray(t)?[...t.map(Ic)]:t}function N(t){return t.charCodeAt(0)}function Cs(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function Nn(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function zt(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function xh(){throw Error("Internal Error - Should never get here!")}function Fo(t){return t.type==="Character"}const xi=[];for(let t=N("0");t<=N("9");t++)xi.push(t);const Si=[N("_")].concat(xi);for(let t=N("a");t<=N("z");t++)Si.push(t);for(let t=N("A");t<=N("Z");t++)Si.push(t);const Go=[N(" "),N("\f"),N(`
|
|
2
|
+
`),N("\r"),N(" "),N("\v"),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N(" "),N("\u2028"),N("\u2029"),N(" "),N(" "),N(" "),N("\uFEFF")],Sh=/[0-9a-fA-F]/,qr=/[0-9]/,Ih=/[1-9]/;class kc{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("/");const n=this.disjunction();this.consumeChar("/");const r={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":Nn(r,"global");break;case"i":Nn(r,"ignoreCase");break;case"m":Nn(r,"multiLine");break;case"u":Nn(r,"unicode");break;case"y":Nn(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){const e=[],n=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(n)}}alternative(){const e=[],n=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const 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"(":this.consumeChar("?");let n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break}zt(n);const r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(e)}}return xh()}quantifier(e=!1){let n;const r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),n={atLeast:i,atMost:s}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&n===void 0)return;zt(n);break}if(!(e===!0&&n===void 0)&&zt(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let e;const n=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),zt(e))return e.loc=this.loc(n),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[N(`
|
|
3
|
+
`),N("\r"),N("\u2028"),N("\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,n=!1;switch(this.popChar()){case"d":e=xi;break;case"D":e=xi,n=!0;break;case"s":e=Go;break;case"S":e=Go,n=!0;break;case"w":e=Si;break;case"W":e=Si,n=!0;break}if(zt(e))return{type:"Set",value:e,complement:n}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=N("\f");break;case"n":e=N(`
|
|
4
|
+
`);break;case"r":e=N("\r");break;case"t":e=N(" ");break;case"v":e=N("\v");break}if(zt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:N("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:N(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
|
5
|
+
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:N(e)}}}characterClass(){const e=[];let n=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),n=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,Fo(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,Fo(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Cs(r.value,e),e.push(N("-")),Cs(i.value,e)}else Cs(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:n,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
|
|
6
|
+
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:N("\b")};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()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}const n=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:n};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(Ih.test(e)===!1)throw Error("Expecting a positive integer");for(;qr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(qr.test(e)===!1)throw Error("Expecting an integer");for(;qr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
|
|
7
|
+
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:N(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return qr.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
|
|
8
|
+
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
|
|
9
|
+
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let n="";for(let i=0;i<e;i++){const s=this.popChar();if(Sh.test(s)===!1)throw Error("Expecting a HexDecimal digits");n+=s}return{type:"Character",value:parseInt(n,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class Xi{visitChildren(e){for(const n in e){const r=e[n];e.hasOwnProperty(n)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}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"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);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const kh=/\r?\n/gm,Ch=new kc;class wh extends Xi{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const n=String.fromCharCode(e.value);if(!this.multiline&&n===`
|
|
10
|
+
`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=Ji(n);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const n=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(n);this.multiline=!!`
|
|
11
|
+
`.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const n=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const ws=new wh;function Nh(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),ws.reset(t),ws.visit(Ch.pattern(t)),ws.multiline}catch{return!1}}const _h=`\f
|
|
12
|
+
\r \v \u2028\u2029 \uFEFF`.split("");function ia(t){const e=typeof t=="string"?new RegExp(t):t;return _h.some(n=>e.test(n))}function Ji(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function bh(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Ji(e)).join("")}function Oh(t,e){const n=Lh(t),r=e.match(n);return!!r&&r[0].length>0}function Lh(t){typeof t=="string"&&(t=new RegExp(t));const e=t,n=t.source;let r=0;function i(){let s="",a;function o(u){s+=n.substr(r,u),r+=u}function l(u){s+="(?:"+n.substr(r,u)+"|$)",r+=u}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?n[r+2]==="{"?l(n.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":e.unicode?l(n.indexOf("}",r)-r+1):l(2);break;case"k":l(n.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(n)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(n),a?o(a[0].length):l(1);break;case"(":if(n[r+1]==="?")switch(n[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=n.substr(a,r-a);break;case"<":switch(n[r+3]){case"=":case"!":a=r,r+=4,i(),s+=n.substr(a,r-a);break;default:o(n.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:l(1);break}return s}return new RegExp(i(),t.flags)}function Ph(t){return t.rules.find(e=>_e(e)&&e.entry)}function Mh(t){return t.rules.filter(e=>Gt(e)&&e.hidden)}function Cc(t,e){const n=new Set,r=Ph(t);if(!r)return new Set(t.rules);const i=[r].concat(Mh(t));for(const a of i)wc(a,n,e);const s=new Set;for(const a of t.rules)(n.has(a.name)||Gt(a)&&a.hidden)&&s.add(a);return s}function wc(t,e,n){e.add(t.name),kr(t).forEach(r=>{if(Lt(r)||n){const i=r.rule.ref;i&&!e.has(i.name)&&wc(i,e,n)}})}function Dh(t){if(t.terminal)return t.terminal;if(t.type.ref){const e=_c(t.type.ref);return e==null?void 0:e.terminal}}function Fh(t){return t.hidden&&!ia(Xa(t))}function Gh(t,e){return!t||!e?[]:za(t,e,t.astNode,!0)}function Nc(t,e,n){if(!t||!e)return;const r=za(t,e,t.astNode,!0);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function za(t,e,n,r){if(!r){const i=Yi(t.grammarSource,bt);if(i&&i.feature===e)return[t]}return Tr(t)&&t.astNode===n?t.content.flatMap(i=>za(i,e,n,!1)):[]}function Uh(t,e,n){if(!t)return;const r=Bh(t,e,t==null?void 0:t.astNode);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function Bh(t,e,n){if(t.astNode!==n)return[];if(Ot(t.grammarSource)&&t.grammarSource.value===e)return[t];const r=ta(t).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===n?Ot(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function jh(t){var e;const n=t.astNode;for(;n===((e=t.container)===null||e===void 0?void 0:e.astNode);){const r=Yi(t.grammarSource,bt);if(r)return r;t=t.container}}function _c(t){let e=t;return vc(e)&&(qi(e.$container)?e=e.$container.$container:_e(e.$container)?e=e.$container:Ir(e.$container)),bc(t,e,new Map)}function bc(t,e,n){var r;function i(s,a){let o;return Yi(s,bt)||(o=bc(a,a,n)),n.set(t,o),o}if(n.has(t))return n.get(t);n.set(t,void 0);for(const s of kr(e)){if(bt(s)&&s.feature.toLowerCase()==="name")return n.set(t,s),s;if(Lt(s)&&_e(s.rule.ref))return i(s,s.rule.ref);if(dh(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function Oc(t){return Lc(t,new Set)}function Lc(t,e){if(e.has(t))return!0;e.add(t);for(const n of kr(t))if(Lt(n)){if(!n.rule.ref||_e(n.rule.ref)&&!Lc(n.rule.ref,e))return!1}else{if(bt(n))return!1;if(qi(n))return!1}return!!t.definition}function qa(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){const e=t.returnType.ref;if(e){if(_e(e))return e.name;if(Rc(e)||Ac(e))return e.name}}}function Ya(t){var e;if(_e(t))return Oc(t)?t.name:(e=qa(t))!==null&&e!==void 0?e:t.name;if(Rc(t)||Ac(t)||fh(t))return t.name;if(qi(t)){const n=Kh(t);if(n)return n}else if(vc(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function Kh(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return Ya(t.type.ref)}function Hh(t){var e,n,r;return Gt(t)?(n=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:"string":(r=qa(t))!==null&&r!==void 0?r:t.name}function Xa(t){const e={s:!1,i:!1,u:!1},n=In(t.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(n,r)}const Ja=/[\s\S]/.source;function In(t,e){if(yh(t))return Vh(t);if(Th(t))return Wh(t);if(hh(t))return Yh(t);if(vh(t)){const n=t.rule.ref;if(!n)throw new Error("Missing rule reference.");return ot(In(n.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(mh(t))return qh(t);if(Rh(t))return zh(t);if(gh(t)){const n=t.regex.lastIndexOf("/"),r=t.regex.substring(1,n),i=t.regex.substring(n+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),ot(r,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(Ah(t))return ot(Ja,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t==null?void 0:t.$type}`)}}}function Vh(t){return ot(t.elements.map(e=>In(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function Wh(t){return ot(t.elements.map(e=>In(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function zh(t){return ot(`${Ja}*?${In(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function qh(t){return ot(`(?!${In(t.terminal)})${Ja}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function Yh(t){return t.right?ot(`[${Ns(t.left)}-${Ns(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):ot(Ns(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function Ns(t){return Ji(t.value)}function ot(t,e){var n;return(e.wrap!==!1||e.lookahead)&&(t=`(${(n=e.lookahead)!==null&&n!==void 0?n:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}function Xh(t){const e=[],n=t.Grammar;for(const r of n.rules)Gt(r)&&Fh(r)&&Nh(Xa(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:nh}}var Pc=typeof global=="object"&&global&&global.Object===Object&&global,Jh=typeof self=="object"&&self&&self.Object===Object&&self,Xe=Pc||Jh||Function("return this")(),be=Xe.Symbol,Mc=Object.prototype,Zh=Mc.hasOwnProperty,Qh=Mc.toString,_n=be?be.toStringTag:void 0;function ep(t){var e=Zh.call(t,_n),n=t[_n];try{t[_n]=void 0;var r=!0}catch{}var i=Qh.call(t);return r&&(e?t[_n]=n:delete t[_n]),i}var tp=Object.prototype,np=tp.toString;function rp(t){return np.call(t)}var ip="[object Null]",sp="[object Undefined]",Uo=be?be.toStringTag:void 0;function Et(t){return t==null?t===void 0?sp:ip:Uo&&Uo in Object(t)?ep(t):rp(t)}function je(t){return t!=null&&typeof t=="object"}var ap="[object Symbol]";function Zi(t){return typeof t=="symbol"||je(t)&&Et(t)==ap}function Qi(t,e){for(var n=-1,r=t==null?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}var P=Array.isArray,Bo=be?be.prototype:void 0,jo=Bo?Bo.toString:void 0;function Dc(t){if(typeof t=="string")return t;if(P(t))return Qi(t,Dc)+"";if(Zi(t))return jo?jo.call(t):"";var e=t+"";return e=="0"&&1/t==-1/0?"-0":e}var op=/\s/;function lp(t){for(var e=t.length;e--&&op.test(t.charAt(e)););return e}var up=/^\s+/;function cp(t){return t&&t.slice(0,lp(t)+1).replace(up,"")}function Oe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Ko=NaN,fp=/^[-+]0x[0-9a-f]+$/i,dp=/^0b[01]+$/i,hp=/^0o[0-7]+$/i,pp=parseInt;function mp(t){if(typeof t=="number")return t;if(Zi(t))return Ko;if(Oe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Oe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=cp(t);var n=dp.test(t);return n||hp.test(t)?pp(t.slice(2),n?2:8):fp.test(t)?Ko:+t}var Ho=1/0,gp=17976931348623157e292;function yp(t){if(!t)return t===0?t:0;if(t=mp(t),t===Ho||t===-Ho){var e=t<0?-1:1;return e*gp}return t===t?t:0}function es(t){var e=yp(t),n=e%1;return e===e?n?e-n:e:0}function yn(t){return t}var Tp="[object AsyncFunction]",vp="[object Function]",Rp="[object GeneratorFunction]",Ap="[object Proxy]";function ft(t){if(!Oe(t))return!1;var e=Et(t);return e==vp||e==Rp||e==Tp||e==Ap}var _s=Xe["__core-js_shared__"],Vo=function(){var t=/[^.]+$/.exec(_s&&_s.keys&&_s.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Ep(t){return!!Vo&&Vo in t}var $p=Function.prototype,xp=$p.toString;function Ut(t){if(t!=null){try{return xp.call(t)}catch{}try{return t+""}catch{}}return""}var Sp=/[\\^$.*+?()[\]{}|]/g,Ip=/^\[object .+?Constructor\]$/,kp=Function.prototype,Cp=Object.prototype,wp=kp.toString,Np=Cp.hasOwnProperty,_p=RegExp("^"+wp.call(Np).replace(Sp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function bp(t){if(!Oe(t)||Ep(t))return!1;var e=ft(t)?_p:Ip;return e.test(Ut(t))}function Op(t,e){return t==null?void 0:t[e]}function Bt(t,e){var n=Op(t,e);return bp(n)?n:void 0}var sa=Bt(Xe,"WeakMap"),Wo=Object.create,Lp=function(){function t(){}return function(e){if(!Oe(e))return{};if(Wo)return Wo(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function Pp(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function X(){}function Mp(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}var Dp=800,Fp=16,Gp=Date.now;function Up(t){var e=0,n=0;return function(){var r=Gp(),i=Fp-(r-n);if(n=r,i>0){if(++e>=Dp)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Bp(t){return function(){return t}}var Ii=function(){try{var t=Bt(Object,"defineProperty");return t({},"",{}),t}catch{}}(),jp=Ii?function(t,e){return Ii(t,"toString",{configurable:!0,enumerable:!1,value:Bp(e),writable:!0})}:yn,Kp=Up(jp);function Fc(t,e){for(var n=-1,r=t==null?0:t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function Gc(t,e,n,r){for(var i=t.length,s=n+-1;++s<i;)if(e(t[s],s,t))return s;return-1}function Hp(t){return t!==t}function Vp(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function Za(t,e,n){return e===e?Vp(t,e,n):Gc(t,Hp,n)}function Uc(t,e){var n=t==null?0:t.length;return!!n&&Za(t,e,0)>-1}var Wp=9007199254740991,zp=/^(?:0|[1-9]\d*)$/;function ts(t,e){var n=typeof t;return e=e??Wp,!!e&&(n=="number"||n!="symbol"&&zp.test(t))&&t>-1&&t%1==0&&t<e}function Qa(t,e,n){e=="__proto__"&&Ii?Ii(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Cr(t,e){return t===e||t!==t&&e!==e}var qp=Object.prototype,Yp=qp.hasOwnProperty;function ns(t,e,n){var r=t[e];(!(Yp.call(t,e)&&Cr(r,n))||n===void 0&&!(e in t))&&Qa(t,e,n)}function wr(t,e,n,r){var i=!n;n||(n={});for(var s=-1,a=e.length;++s<a;){var o=e[s],l=void 0;l===void 0&&(l=t[o]),i?Qa(n,o,l):ns(n,o,l)}return n}var zo=Math.max;function Xp(t,e,n){return e=zo(e===void 0?t.length-1:e,0),function(){for(var r=arguments,i=-1,s=zo(r.length-e,0),a=Array(s);++i<s;)a[i]=r[e+i];i=-1;for(var o=Array(e+1);++i<e;)o[i]=r[i];return o[e]=n(a),Pp(t,this,o)}}function eo(t,e){return Kp(Xp(t,e,yn),t+"")}var Jp=9007199254740991;function to(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Jp}function Je(t){return t!=null&&to(t.length)&&!ft(t)}function Bc(t,e,n){if(!Oe(n))return!1;var r=typeof e;return(r=="number"?Je(n)&&ts(e,n.length):r=="string"&&e in n)?Cr(n[e],t):!1}function Zp(t){return eo(function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(s=t.length>3&&typeof s=="function"?(i--,s):void 0,a&&Bc(n[0],n[1],a)&&(s=i<3?void 0:s,i=1),e=Object(e);++r<i;){var o=n[r];o&&t(e,o,r,s)}return e})}var Qp=Object.prototype;function Nr(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||Qp;return t===n}function em(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}var tm="[object Arguments]";function qo(t){return je(t)&&Et(t)==tm}var jc=Object.prototype,nm=jc.hasOwnProperty,rm=jc.propertyIsEnumerable,rs=qo(function(){return arguments}())?qo:function(t){return je(t)&&nm.call(t,"callee")&&!rm.call(t,"callee")};function im(){return!1}var Kc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yo=Kc&&typeof module=="object"&&module&&!module.nodeType&&module,sm=Yo&&Yo.exports===Kc,Xo=sm?Xe.Buffer:void 0,am=Xo?Xo.isBuffer:void 0,vr=am||im,om="[object Arguments]",lm="[object Array]",um="[object Boolean]",cm="[object Date]",fm="[object Error]",dm="[object Function]",hm="[object Map]",pm="[object Number]",mm="[object Object]",gm="[object RegExp]",ym="[object Set]",Tm="[object String]",vm="[object WeakMap]",Rm="[object ArrayBuffer]",Am="[object DataView]",Em="[object Float32Array]",$m="[object Float64Array]",xm="[object Int8Array]",Sm="[object Int16Array]",Im="[object Int32Array]",km="[object Uint8Array]",Cm="[object Uint8ClampedArray]",wm="[object Uint16Array]",Nm="[object Uint32Array]",B={};B[Em]=B[$m]=B[xm]=B[Sm]=B[Im]=B[km]=B[Cm]=B[wm]=B[Nm]=!0;B[om]=B[lm]=B[Rm]=B[um]=B[Am]=B[cm]=B[fm]=B[dm]=B[hm]=B[pm]=B[mm]=B[gm]=B[ym]=B[Tm]=B[vm]=!1;function _m(t){return je(t)&&to(t.length)&&!!B[Et(t)]}function is(t){return function(e){return t(e)}}var Hc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gr=Hc&&typeof module=="object"&&module&&!module.nodeType&&module,bm=gr&&gr.exports===Hc,bs=bm&&Pc.process,yt=function(){try{var t=gr&&gr.require&&gr.require("util").types;return t||bs&&bs.binding&&bs.binding("util")}catch{}}(),Jo=yt&&yt.isTypedArray,no=Jo?is(Jo):_m,Om=Object.prototype,Lm=Om.hasOwnProperty;function Vc(t,e){var n=P(t),r=!n&&rs(t),i=!n&&!r&&vr(t),s=!n&&!r&&!i&&no(t),a=n||r||i||s,o=a?em(t.length,String):[],l=o.length;for(var u in t)(e||Lm.call(t,u))&&!(a&&(u=="length"||i&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||ts(u,l)))&&o.push(u);return o}function Wc(t,e){return function(n){return t(e(n))}}var Pm=Wc(Object.keys,Object),Mm=Object.prototype,Dm=Mm.hasOwnProperty;function zc(t){if(!Nr(t))return Pm(t);var e=[];for(var n in Object(t))Dm.call(t,n)&&n!="constructor"&&e.push(n);return e}function Le(t){return Je(t)?Vc(t):zc(t)}var Fm=Object.prototype,Gm=Fm.hasOwnProperty,$e=Zp(function(t,e){if(Nr(e)||Je(e)){wr(e,Le(e),t);return}for(var n in e)Gm.call(e,n)&&ns(t,n,e[n])});function Um(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}var Bm=Object.prototype,jm=Bm.hasOwnProperty;function Km(t){if(!Oe(t))return Um(t);var e=Nr(t),n=[];for(var r in t)r=="constructor"&&(e||!jm.call(t,r))||n.push(r);return n}function ro(t){return Je(t)?Vc(t,!0):Km(t)}var Hm=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vm=/^\w*$/;function io(t,e){if(P(t))return!1;var n=typeof t;return n=="number"||n=="symbol"||n=="boolean"||t==null||Zi(t)?!0:Vm.test(t)||!Hm.test(t)||e!=null&&t in Object(e)}var Rr=Bt(Object,"create");function Wm(){this.__data__=Rr?Rr(null):{},this.size=0}function zm(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var qm="__lodash_hash_undefined__",Ym=Object.prototype,Xm=Ym.hasOwnProperty;function Jm(t){var e=this.__data__;if(Rr){var n=e[t];return n===qm?void 0:n}return Xm.call(e,t)?e[t]:void 0}var Zm=Object.prototype,Qm=Zm.hasOwnProperty;function eg(t){var e=this.__data__;return Rr?e[t]!==void 0:Qm.call(e,t)}var tg="__lodash_hash_undefined__";function ng(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Rr&&e===void 0?tg:e,this}function Pt(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Pt.prototype.clear=Wm;Pt.prototype.delete=zm;Pt.prototype.get=Jm;Pt.prototype.has=eg;Pt.prototype.set=ng;function rg(){this.__data__=[],this.size=0}function ss(t,e){for(var n=t.length;n--;)if(Cr(t[n][0],e))return n;return-1}var ig=Array.prototype,sg=ig.splice;function ag(t){var e=this.__data__,n=ss(e,t);if(n<0)return!1;var r=e.length-1;return n==r?e.pop():sg.call(e,n,1),--this.size,!0}function og(t){var e=this.__data__,n=ss(e,t);return n<0?void 0:e[n][1]}function lg(t){return ss(this.__data__,t)>-1}function ug(t,e){var n=this.__data__,r=ss(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function dt(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}dt.prototype.clear=rg;dt.prototype.delete=ag;dt.prototype.get=og;dt.prototype.has=lg;dt.prototype.set=ug;var Ar=Bt(Xe,"Map");function cg(){this.size=0,this.__data__={hash:new Pt,map:new(Ar||dt),string:new Pt}}function fg(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function as(t,e){var n=t.__data__;return fg(e)?n[typeof e=="string"?"string":"hash"]:n.map}function dg(t){var e=as(this,t).delete(t);return this.size-=e?1:0,e}function hg(t){return as(this,t).get(t)}function pg(t){return as(this,t).has(t)}function mg(t,e){var n=as(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}function ht(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}ht.prototype.clear=cg;ht.prototype.delete=dg;ht.prototype.get=hg;ht.prototype.has=pg;ht.prototype.set=mg;var gg="Expected a function";function so(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(gg);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var a=t.apply(this,r);return n.cache=s.set(i,a)||s,a};return n.cache=new(so.Cache||ht),n}so.Cache=ht;var yg=500;function Tg(t){var e=so(t,function(r){return n.size===yg&&n.clear(),r}),n=e.cache;return e}var vg=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rg=/\\(\\)?/g,Ag=Tg(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(vg,function(n,r,i,s){e.push(i?s.replace(Rg,"$1"):r||n)}),e});function Eg(t){return t==null?"":Dc(t)}function os(t,e){return P(t)?t:io(t,e)?[t]:Ag(Eg(t))}function _r(t){if(typeof t=="string"||Zi(t))return t;var e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function ao(t,e){e=os(e,t);for(var n=0,r=e.length;t!=null&&n<r;)t=t[_r(e[n++])];return n&&n==r?t:void 0}function $g(t,e,n){var r=t==null?void 0:ao(t,e);return r===void 0?n:r}function oo(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}var Zo=be?be.isConcatSpreadable:void 0;function xg(t){return P(t)||rs(t)||!!(Zo&&t&&t[Zo])}function lo(t,e,n,r,i){var s=-1,a=t.length;for(n||(n=xg),i||(i=[]);++s<a;){var o=t[s];n(o)?oo(i,o):r||(i[i.length]=o)}return i}function Ue(t){var e=t==null?0:t.length;return e?lo(t):[]}var qc=Wc(Object.getPrototypeOf,Object);function Yc(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function Sg(t,e,n,r){var i=-1,s=t==null?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function Ig(){this.__data__=new dt,this.size=0}function kg(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function Cg(t){return this.__data__.get(t)}function wg(t){return this.__data__.has(t)}var Ng=200;function _g(t,e){var n=this.__data__;if(n instanceof dt){var r=n.__data__;if(!Ar||r.length<Ng-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new ht(r)}return n.set(t,e),this.size=n.size,this}function Ye(t){var e=this.__data__=new dt(t);this.size=e.size}Ye.prototype.clear=Ig;Ye.prototype.delete=kg;Ye.prototype.get=Cg;Ye.prototype.has=wg;Ye.prototype.set=_g;function bg(t,e){return t&&wr(e,Le(e),t)}function Og(t,e){return t&&wr(e,ro(e),t)}var Xc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qo=Xc&&typeof module=="object"&&module&&!module.nodeType&&module,Lg=Qo&&Qo.exports===Xc,el=Lg?Xe.Buffer:void 0,tl=el?el.allocUnsafe:void 0;function Pg(t,e){var n=t.length,r=tl?tl(n):new t.constructor(n);return t.copy(r),r}function uo(t,e){for(var n=-1,r=t==null?0:t.length,i=0,s=[];++n<r;){var a=t[n];e(a,n,t)&&(s[i++]=a)}return s}function Jc(){return[]}var Mg=Object.prototype,Dg=Mg.propertyIsEnumerable,nl=Object.getOwnPropertySymbols,co=nl?function(t){return t==null?[]:(t=Object(t),uo(nl(t),function(e){return Dg.call(t,e)}))}:Jc;function Fg(t,e){return wr(t,co(t),e)}var Gg=Object.getOwnPropertySymbols,Zc=Gg?function(t){for(var e=[];t;)oo(e,co(t)),t=qc(t);return e}:Jc;function Ug(t,e){return wr(t,Zc(t),e)}function Qc(t,e,n){var r=e(t);return P(t)?r:oo(r,n(t))}function aa(t){return Qc(t,Le,co)}function Bg(t){return Qc(t,ro,Zc)}var oa=Bt(Xe,"DataView"),la=Bt(Xe,"Promise"),Jt=Bt(Xe,"Set"),rl="[object Map]",jg="[object Object]",il="[object Promise]",sl="[object Set]",al="[object WeakMap]",ol="[object DataView]",Kg=Ut(oa),Hg=Ut(Ar),Vg=Ut(la),Wg=Ut(Jt),zg=Ut(sa),we=Et;(oa&&we(new oa(new ArrayBuffer(1)))!=ol||Ar&&we(new Ar)!=rl||la&&we(la.resolve())!=il||Jt&&we(new Jt)!=sl||sa&&we(new sa)!=al)&&(we=function(t){var e=Et(t),n=e==jg?t.constructor:void 0,r=n?Ut(n):"";if(r)switch(r){case Kg:return ol;case Hg:return rl;case Vg:return il;case Wg:return sl;case zg:return al}return e});var qg=Object.prototype,Yg=qg.hasOwnProperty;function Xg(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&Yg.call(t,"index")&&(n.index=t.index,n.input=t.input),n}var ki=Xe.Uint8Array;function Jg(t){var e=new t.constructor(t.byteLength);return new ki(e).set(new ki(t)),e}function Zg(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var Qg=/\w*$/;function ey(t){var e=new t.constructor(t.source,Qg.exec(t));return e.lastIndex=t.lastIndex,e}var ll=be?be.prototype:void 0,ul=ll?ll.valueOf:void 0;function ty(t){return ul?Object(ul.call(t)):{}}function ny(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var ry="[object Boolean]",iy="[object Date]",sy="[object Map]",ay="[object Number]",oy="[object RegExp]",ly="[object Set]",uy="[object String]",cy="[object Symbol]",fy="[object ArrayBuffer]",dy="[object DataView]",hy="[object Float32Array]",py="[object Float64Array]",my="[object Int8Array]",gy="[object Int16Array]",yy="[object Int32Array]",Ty="[object Uint8Array]",vy="[object Uint8ClampedArray]",Ry="[object Uint16Array]",Ay="[object Uint32Array]";function Ey(t,e,n){var r=t.constructor;switch(e){case fy:return Jg(t);case ry:case iy:return new r(+t);case dy:return Zg(t);case hy:case py:case my:case gy:case yy:case Ty:case vy:case Ry:case Ay:return ny(t);case sy:return new r;case ay:case uy:return new r(t);case oy:return ey(t);case ly:return new r;case cy:return ty(t)}}function $y(t){return typeof t.constructor=="function"&&!Nr(t)?Lp(qc(t)):{}}var xy="[object Map]";function Sy(t){return je(t)&&we(t)==xy}var cl=yt&&yt.isMap,Iy=cl?is(cl):Sy,ky="[object Set]";function Cy(t){return je(t)&&we(t)==ky}var fl=yt&&yt.isSet,wy=fl?is(fl):Cy,Ny=2,ef="[object Arguments]",_y="[object Array]",by="[object Boolean]",Oy="[object Date]",Ly="[object Error]",tf="[object Function]",Py="[object GeneratorFunction]",My="[object Map]",Dy="[object Number]",nf="[object Object]",Fy="[object RegExp]",Gy="[object Set]",Uy="[object String]",By="[object Symbol]",jy="[object WeakMap]",Ky="[object ArrayBuffer]",Hy="[object DataView]",Vy="[object Float32Array]",Wy="[object Float64Array]",zy="[object Int8Array]",qy="[object Int16Array]",Yy="[object Int32Array]",Xy="[object Uint8Array]",Jy="[object Uint8ClampedArray]",Zy="[object Uint16Array]",Qy="[object Uint32Array]",G={};G[ef]=G[_y]=G[Ky]=G[Hy]=G[by]=G[Oy]=G[Vy]=G[Wy]=G[zy]=G[qy]=G[Yy]=G[My]=G[Dy]=G[nf]=G[Fy]=G[Gy]=G[Uy]=G[By]=G[Xy]=G[Jy]=G[Zy]=G[Qy]=!0;G[Ly]=G[tf]=G[jy]=!1;function li(t,e,n,r,i,s){var a,o=e&Ny;if(a!==void 0)return a;if(!Oe(t))return t;var l=P(t);if(l)return a=Xg(t),Mp(t,a);var u=we(t),c=u==tf||u==Py;if(vr(t))return Pg(t);if(u==nf||u==ef||c&&!i)return a=c?{}:$y(t),o?Ug(t,Og(a,t)):Fg(t,bg(a,t));if(!G[u])return i?t:{};a=Ey(t,u),s||(s=new Ye);var f=s.get(t);if(f)return f;s.set(t,a),wy(t)?t.forEach(function(m){a.add(li(m,e,n,m,t,s))}):Iy(t)&&t.forEach(function(m,g){a.set(g,li(m,e,n,g,t,s))});var d=aa,h=l?void 0:d(t);return Fc(h||t,function(m,g){h&&(g=m,m=t[g]),ns(a,g,li(m,e,n,g,t,s))}),a}var eT=4;function ie(t){return li(t,eT)}function br(t){for(var e=-1,n=t==null?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i}var tT="__lodash_hash_undefined__";function nT(t){return this.__data__.set(t,tT),this}function rT(t){return this.__data__.has(t)}function Tn(t){var e=-1,n=t==null?0:t.length;for(this.__data__=new ht;++e<n;)this.add(t[e])}Tn.prototype.add=Tn.prototype.push=nT;Tn.prototype.has=rT;function rf(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function fo(t,e){return t.has(e)}var iT=1,sT=2;function sf(t,e,n,r,i,s){var a=n&iT,o=t.length,l=e.length;if(o!=l&&!(a&&l>o))return!1;var u=s.get(t),c=s.get(e);if(u&&c)return u==e&&c==t;var f=-1,d=!0,h=n&sT?new Tn:void 0;for(s.set(t,e),s.set(e,t);++f<o;){var m=t[f],g=e[f];if(r)var R=a?r(g,m,f,e,t,s):r(m,g,f,t,e,s);if(R!==void 0){if(R)continue;d=!1;break}if(h){if(!rf(e,function(y,E){if(!fo(h,E)&&(m===y||i(m,y,n,r,s)))return h.push(E)})){d=!1;break}}else if(!(m===g||i(m,g,n,r,s))){d=!1;break}}return s.delete(t),s.delete(e),d}function aT(t){var e=-1,n=Array(t.size);return t.forEach(function(r,i){n[++e]=[i,r]}),n}function ho(t){var e=-1,n=Array(t.size);return t.forEach(function(r){n[++e]=r}),n}var oT=1,lT=2,uT="[object Boolean]",cT="[object Date]",fT="[object Error]",dT="[object Map]",hT="[object Number]",pT="[object RegExp]",mT="[object Set]",gT="[object String]",yT="[object Symbol]",TT="[object ArrayBuffer]",vT="[object DataView]",dl=be?be.prototype:void 0,Os=dl?dl.valueOf:void 0;function RT(t,e,n,r,i,s,a){switch(n){case vT:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case TT:return!(t.byteLength!=e.byteLength||!s(new ki(t),new ki(e)));case uT:case cT:case hT:return Cr(+t,+e);case fT:return t.name==e.name&&t.message==e.message;case pT:case gT:return t==e+"";case dT:var o=aT;case mT:var l=r&oT;if(o||(o=ho),t.size!=e.size&&!l)return!1;var u=a.get(t);if(u)return u==e;r|=lT,a.set(t,e);var c=sf(o(t),o(e),r,i,s,a);return a.delete(t),c;case yT:if(Os)return Os.call(t)==Os.call(e)}return!1}var AT=1,ET=Object.prototype,$T=ET.hasOwnProperty;function xT(t,e,n,r,i,s){var a=n&AT,o=aa(t),l=o.length,u=aa(e),c=u.length;if(l!=c&&!a)return!1;for(var f=l;f--;){var d=o[f];if(!(a?d in e:$T.call(e,d)))return!1}var h=s.get(t),m=s.get(e);if(h&&m)return h==e&&m==t;var g=!0;s.set(t,e),s.set(e,t);for(var R=a;++f<l;){d=o[f];var y=t[d],E=e[d];if(r)var v=a?r(E,y,d,e,t,s):r(y,E,d,t,e,s);if(!(v===void 0?y===E||i(y,E,n,r,s):v)){g=!1;break}R||(R=d=="constructor")}if(g&&!R){var I=t.constructor,M=e.constructor;I!=M&&"constructor"in t&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof M=="function"&&M instanceof M)&&(g=!1)}return s.delete(t),s.delete(e),g}var ST=1,hl="[object Arguments]",pl="[object Array]",Yr="[object Object]",IT=Object.prototype,ml=IT.hasOwnProperty;function kT(t,e,n,r,i,s){var a=P(t),o=P(e),l=a?pl:we(t),u=o?pl:we(e);l=l==hl?Yr:l,u=u==hl?Yr:u;var c=l==Yr,f=u==Yr,d=l==u;if(d&&vr(t)){if(!vr(e))return!1;a=!0,c=!1}if(d&&!c)return s||(s=new Ye),a||no(t)?sf(t,e,n,r,i,s):RT(t,e,l,n,r,i,s);if(!(n&ST)){var h=c&&ml.call(t,"__wrapped__"),m=f&&ml.call(e,"__wrapped__");if(h||m){var g=h?t.value():t,R=m?e.value():e;return s||(s=new Ye),i(g,R,n,r,s)}}return d?(s||(s=new Ye),xT(t,e,n,r,i,s)):!1}function po(t,e,n,r,i){return t===e?!0:t==null||e==null||!je(t)&&!je(e)?t!==t&&e!==e:kT(t,e,n,r,po,i)}var CT=1,wT=2;function NT(t,e,n,r){var i=n.length,s=i;if(t==null)return!s;for(t=Object(t);i--;){var a=n[i];if(a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++i<s;){a=n[i];var o=a[0],l=t[o],u=a[1];if(a[2]){if(l===void 0&&!(o in t))return!1}else{var c=new Ye,f;if(!(f===void 0?po(u,l,CT|wT,r,c):f))return!1}}return!0}function af(t){return t===t&&!Oe(t)}function _T(t){for(var e=Le(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,af(i)]}return e}function of(t,e){return function(n){return n==null?!1:n[t]===e&&(e!==void 0||t in Object(n))}}function bT(t){var e=_T(t);return e.length==1&&e[0][2]?of(e[0][0],e[0][1]):function(n){return n===t||NT(n,t,e)}}function OT(t,e){return t!=null&&e in Object(t)}function lf(t,e,n){e=os(e,t);for(var r=-1,i=e.length,s=!1;++r<i;){var a=_r(e[r]);if(!(s=t!=null&&n(t,a)))break;t=t[a]}return s||++r!=i?s:(i=t==null?0:t.length,!!i&&to(i)&&ts(a,i)&&(P(t)||rs(t)))}function LT(t,e){return t!=null&&lf(t,e,OT)}var PT=1,MT=2;function DT(t,e){return io(t)&&af(e)?of(_r(t),e):function(n){var r=$g(n,t);return r===void 0&&r===e?LT(n,t):po(e,r,PT|MT)}}function FT(t){return function(e){return e==null?void 0:e[t]}}function GT(t){return function(e){return ao(e,t)}}function UT(t){return io(t)?FT(_r(t)):GT(t)}function Ze(t){return typeof t=="function"?t:t==null?yn:typeof t=="object"?P(t)?DT(t[0],t[1]):bT(t):UT(t)}function BT(t,e,n,r){for(var i=-1,s=t==null?0:t.length;++i<s;){var a=t[i];e(r,a,n(a),t)}return r}function jT(t){return function(e,n,r){for(var i=-1,s=Object(e),a=r(e),o=a.length;o--;){var l=a[++i];if(n(s[l],l,s)===!1)break}return e}}var KT=jT();function HT(t,e){return t&&KT(t,e,Le)}function VT(t,e){return function(n,r){if(n==null)return n;if(!Je(n))return t(n,r);for(var i=n.length,s=-1,a=Object(n);++s<i&&r(a[s],s,a)!==!1;);return n}}var jt=VT(HT);function WT(t,e,n,r){return jt(t,function(i,s,a){e(r,i,n(i),a)}),r}function zT(t,e){return function(n,r){var i=P(n)?BT:WT,s=e?e():{};return i(n,t,Ze(r),s)}}var uf=Object.prototype,qT=uf.hasOwnProperty,mo=eo(function(t,e){t=Object(t);var n=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&Bc(e[0],e[1],i)&&(r=1);++n<r;)for(var s=e[n],a=ro(s),o=-1,l=a.length;++o<l;){var u=a[o],c=t[u];(c===void 0||Cr(c,uf[u])&&!qT.call(t,u))&&(t[u]=s[u])}return t});function gl(t){return je(t)&&Je(t)}var YT=200;function XT(t,e,n,r){var i=-1,s=Uc,a=!0,o=t.length,l=[],u=e.length;if(!o)return l;e.length>=YT&&(s=fo,a=!1,e=new Tn(e));e:for(;++i<o;){var c=t[i],f=c;if(c=c!==0?c:0,a&&f===f){for(var d=u;d--;)if(e[d]===f)continue e;l.push(c)}else s(e,f,r)||l.push(c)}return l}var ls=eo(function(t,e){return gl(t)?XT(t,lo(e,1,gl,!0)):[]});function vn(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}function ee(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:es(e),Yc(t,e<0?0:e,r)):[]}function Er(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:es(e),e=r-e,Yc(t,0,e<0?0:e)):[]}function JT(t){return typeof t=="function"?t:yn}function w(t,e){var n=P(t)?Fc:jt;return n(t,JT(e))}function ZT(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function QT(t,e){var n=!0;return jt(t,function(r,i,s){return n=!!e(r,i,s),n}),n}function Be(t,e,n){var r=P(t)?ZT:QT;return r(t,Ze(e))}function cf(t,e){var n=[];return jt(t,function(r,i,s){e(r,i,s)&&n.push(r)}),n}function Pe(t,e){var n=P(t)?uo:cf;return n(t,Ze(e))}function ev(t){return function(e,n,r){var i=Object(e);if(!Je(e)){var s=Ze(n);e=Le(e),n=function(o){return s(i[o],o,i)}}var a=t(e,n,r);return a>-1?i[s?e[a]:a]:void 0}}var tv=Math.max;function nv(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=n==null?0:es(n);return i<0&&(i=tv(r+i,0)),Gc(t,Ze(e),i)}var Rn=ev(nv);function Ke(t){return t&&t.length?t[0]:void 0}function rv(t,e){var n=-1,r=Je(t)?Array(t.length):[];return jt(t,function(i,s,a){r[++n]=e(i,s,a)}),r}function k(t,e){var n=P(t)?Qi:rv;return n(t,Ze(e))}function Ne(t,e){return lo(k(t,e))}var iv=Object.prototype,sv=iv.hasOwnProperty,av=zT(function(t,e,n){sv.call(t,n)?t[n].push(e):Qa(t,n,[e])}),ov=Object.prototype,lv=ov.hasOwnProperty;function uv(t,e){return t!=null&&lv.call(t,e)}function C(t,e){return t!=null&&lf(t,e,uv)}var cv="[object String]";function pe(t){return typeof t=="string"||!P(t)&&je(t)&&Et(t)==cv}function fv(t,e){return Qi(e,function(n){return t[n]})}function J(t){return t==null?[]:fv(t,Le(t))}var dv=Math.max;function de(t,e,n,r){t=Je(t)?t:J(t),n=n?es(n):0;var i=t.length;return n<0&&(n=dv(i+n,0)),pe(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Za(t,e,n)>-1}function yl(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=0;return Za(t,e,i)}var hv="[object Map]",pv="[object Set]",mv=Object.prototype,gv=mv.hasOwnProperty;function U(t){if(t==null)return!0;if(Je(t)&&(P(t)||typeof t=="string"||typeof t.splice=="function"||vr(t)||no(t)||rs(t)))return!t.length;var e=we(t);if(e==hv||e==pv)return!t.size;if(Nr(t))return!zc(t).length;for(var n in t)if(gv.call(t,n))return!1;return!0}var yv="[object RegExp]";function Tv(t){return je(t)&&Et(t)==yv}var Tl=yt&&yt.isRegExp,lt=Tl?is(Tl):Tv;function ut(t){return t===void 0}var vv="Expected a function";function Rv(t){if(typeof t!="function")throw new TypeError(vv);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Av(t,e,n,r){if(!Oe(t))return t;e=os(e,t);for(var i=-1,s=e.length,a=s-1,o=t;o!=null&&++i<s;){var l=_r(e[i]),u=n;if(l==="__proto__"||l==="constructor"||l==="prototype")return t;if(i!=a){var c=o[l];u=void 0,u===void 0&&(u=Oe(c)?c:ts(e[i+1])?[]:{})}ns(o,l,u),o=o[l]}return t}function Ev(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var a=e[r],o=ao(t,a);n(o,a)&&Av(s,os(a,t),o)}return s}function He(t,e){if(t==null)return{};var n=Qi(Bg(t),function(r){return[r]});return e=Ze(e),Ev(t,n,function(r,i){return e(r,i[0])})}function $v(t,e,n,r,i){return i(t,function(s,a,o){n=r?(r=!1,s):e(n,s,a,o)}),n}function xe(t,e,n){var r=P(t)?Sg:$v,i=arguments.length<3;return r(t,Ze(e),n,i,jt)}function us(t,e){var n=P(t)?uo:cf;return n(t,Rv(Ze(e)))}function xv(t,e){var n;return jt(t,function(r,i,s){return n=e(r,i,s),!n}),!!n}function ff(t,e,n){var r=P(t)?rf:xv;return r(t,Ze(e))}var Sv=1/0,Iv=Jt&&1/ho(new Jt([,-0]))[1]==Sv?function(t){return new Jt(t)}:X,kv=200;function Cv(t,e,n){var r=-1,i=Uc,s=t.length,a=!0,o=[],l=o;if(s>=kv){var u=Iv(t);if(u)return ho(u);a=!1,i=fo,l=new Tn}else l=o;e:for(;++r<s;){var c=t[r],f=c;if(c=c!==0?c:0,a&&f===f){for(var d=l.length;d--;)if(l[d]===f)continue e;o.push(c)}else i(l,f,n)||(l!==o&&l.push(f),o.push(c))}return o}function go(t){return t&&t.length?Cv(t):[]}function ua(t){console&&console.error&&console.error(`Error: ${t}`)}function df(t){console&&console.warn&&console.warn(`Warning: ${t}`)}function hf(t){const e=new Date().getTime(),n=t();return{time:new Date().getTime()-e,value:n}}function pf(t){function e(){}e.prototype=t;const n=new e;function r(){return typeof n.bar}return r(),r(),t}function wv(t){return Nv(t)?t.LABEL:t.name}function Nv(t){return pe(t.LABEL)&&t.LABEL!==""}class Qe{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),w(this.definition,n=>{n.accept(e)})}}class ce extends Qe{constructor(e){super([]),this.idx=1,$e(this,He(e,n=>n!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class kn extends Qe{constructor(e){super(e.definition),this.orgText="",$e(this,He(e,n=>n!==void 0))}}class me extends Qe{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,$e(this,He(e,n=>n!==void 0))}}let re=class extends Qe{constructor(e){super(e.definition),this.idx=1,$e(this,He(e,n=>n!==void 0))}};class Se extends Qe{constructor(e){super(e.definition),this.idx=1,$e(this,He(e,n=>n!==void 0))}}class Ie extends Qe{constructor(e){super(e.definition),this.idx=1,$e(this,He(e,n=>n!==void 0))}}class z extends Qe{constructor(e){super(e.definition),this.idx=1,$e(this,He(e,n=>n!==void 0))}}class ge extends Qe{constructor(e){super(e.definition),this.idx=1,$e(this,He(e,n=>n!==void 0))}}class ye extends Qe{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,$e(this,He(e,n=>n!==void 0))}}class j{constructor(e){this.idx=1,$e(this,He(e,n=>n!==void 0))}accept(e){e.visit(this)}}function _v(t){return k(t,ui)}function ui(t){function e(n){return k(n,ui)}if(t instanceof ce){const n={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return pe(t.label)&&(n.label=t.label),n}else{if(t instanceof me)return{type:"Alternative",definition:e(t.definition)};if(t instanceof re)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Se)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Ie)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:ui(new j({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof ge)return{type:"RepetitionWithSeparator",idx:t.idx,separator:ui(new j({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof z)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof ye)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof j){const n={type:"Terminal",name:t.terminalType.name,label:wv(t.terminalType),idx:t.idx};pe(t.label)&&(n.terminalLabel=t.label);const r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(n.pattern=lt(r)?r.source:r),n}else{if(t instanceof kn)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}class Cn{visit(e){const n=e;switch(n.constructor){case ce:return this.visitNonTerminal(n);case me:return this.visitAlternative(n);case re:return this.visitOption(n);case Se:return this.visitRepetitionMandatory(n);case Ie:return this.visitRepetitionMandatoryWithSeparator(n);case ge:return this.visitRepetitionWithSeparator(n);case z:return this.visitRepetition(n);case ye:return this.visitAlternation(n);case j:return this.visitTerminal(n);case kn:return this.visitRule(n);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 bv(t){return t instanceof me||t instanceof re||t instanceof z||t instanceof Se||t instanceof Ie||t instanceof ge||t instanceof j||t instanceof kn}function Ci(t,e=[]){return t instanceof re||t instanceof z||t instanceof ge?!0:t instanceof ye?ff(t.definition,r=>Ci(r,e)):t instanceof ce&&de(e,t)?!1:t instanceof Qe?(t instanceof ce&&e.push(t),Be(t.definition,r=>Ci(r,e))):!1}function Ov(t){return t instanceof ye}function ze(t){if(t instanceof ce)return"SUBRULE";if(t instanceof re)return"OPTION";if(t instanceof ye)return"OR";if(t instanceof Se)return"AT_LEAST_ONE";if(t instanceof Ie)return"AT_LEAST_ONE_SEP";if(t instanceof ge)return"MANY_SEP";if(t instanceof z)return"MANY";if(t instanceof j)return"CONSUME";throw Error("non exhaustive match")}class cs{walk(e,n=[]){w(e.definition,(r,i)=>{const s=ee(e.definition,i+1);if(r instanceof ce)this.walkProdRef(r,s,n);else if(r instanceof j)this.walkTerminal(r,s,n);else if(r instanceof me)this.walkFlat(r,s,n);else if(r instanceof re)this.walkOption(r,s,n);else if(r instanceof Se)this.walkAtLeastOne(r,s,n);else if(r instanceof Ie)this.walkAtLeastOneSep(r,s,n);else if(r instanceof ge)this.walkManySep(r,s,n);else if(r instanceof z)this.walkMany(r,s,n);else if(r instanceof ye)this.walkOr(r,s,n);else throw Error("non exhaustive match")})}walkTerminal(e,n,r){}walkProdRef(e,n,r){}walkFlat(e,n,r){const i=n.concat(r);this.walk(e,i)}walkOption(e,n,r){const i=n.concat(r);this.walk(e,i)}walkAtLeastOne(e,n,r){const i=[new re({definition:e.definition})].concat(n,r);this.walk(e,i)}walkAtLeastOneSep(e,n,r){const i=vl(e,n,r);this.walk(e,i)}walkMany(e,n,r){const i=[new re({definition:e.definition})].concat(n,r);this.walk(e,i)}walkManySep(e,n,r){const i=vl(e,n,r);this.walk(e,i)}walkOr(e,n,r){const i=n.concat(r);w(e.definition,s=>{const a=new me({definition:[s]});this.walk(a,i)})}}function vl(t,e,n){return[new re({definition:[new j({terminalType:t.separator})].concat(t.definition)})].concat(e,n)}function Or(t){if(t instanceof ce)return Or(t.referencedRule);if(t instanceof j)return Mv(t);if(bv(t))return Lv(t);if(Ov(t))return Pv(t);throw Error("non exhaustive match")}function Lv(t){let e=[];const n=t.definition;let r=0,i=n.length>r,s,a=!0;for(;i&&a;)s=n[r],a=Ci(s),e=e.concat(Or(s)),r=r+1,i=n.length>r;return go(e)}function Pv(t){const e=k(t.definition,n=>Or(n));return go(Ue(e))}function Mv(t){return[t.terminalType]}const mf="_~IN~_";class Dv extends cs{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,n,r){}walkProdRef(e,n,r){const i=Gv(e.referencedRule,e.idx)+this.topProd.name,s=n.concat(r),a=new me({definition:s}),o=Or(a);this.follows[i]=o}}function Fv(t){const e={};return w(t,n=>{const r=new Dv(n).startWalking();$e(e,r)}),e}function Gv(t,e){return t.name+e+mf}let ci={};const Uv=new kc;function fs(t){const e=t.toString();if(ci.hasOwnProperty(e))return ci[e];{const n=Uv.pattern(e);return ci[e]=n,n}}function Bv(){ci={}}const gf="Complement Sets are not supported for first char optimization",wi=`Unable to use "first char" lexer optimizations:
|
|
13
|
+
`;function jv(t,e=!1){try{const n=fs(t);return ca(n.value,{},n.flags.ignoreCase)}catch(n){if(n.message===gf)e&&df(`${wi} Unable to optimize: < ${t.toString()} >
|
|
14
|
+
Complement Sets cannot be automatically optimized.
|
|
15
|
+
This will disable the lexer's first char optimizations.
|
|
16
|
+
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
|
|
17
|
+
This will disable the lexer's first char optimizations.
|
|
18
|
+
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),ua(`${wi}
|
|
19
|
+
Failed parsing: < ${t.toString()} >
|
|
20
|
+
Using the @chevrotain/regexp-to-ast library
|
|
21
|
+
Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function ca(t,e,n){switch(t.type){case"Disjunction":for(let i=0;i<t.value.length;i++)ca(t.value[i],e,n);break;case"Alternative":const r=t.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":Xr(a.value,e,n);break;case"Set":if(a.complement===!0)throw Error(gf);w(a.value,l=>{if(typeof l=="number")Xr(l,e,n);else{const u=l;if(n===!0)for(let c=u.from;c<=u.to;c++)Xr(c,e,n);else{for(let c=u.from;c<=u.to&&c<ur;c++)Xr(c,e,n);if(u.to>=ur){const c=u.from>=ur?u.from:ur,f=u.to,d=Tt(c),h=Tt(f);for(let m=d;m<=h;m++)e[m]=m}}}});break;case"Group":ca(a.value,e,n);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&fa(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return J(e)}function Xr(t,e,n){const r=Tt(t);e[r]=r,n===!0&&Kv(t,e)}function Kv(t,e){const n=String.fromCharCode(t),r=n.toUpperCase();if(r!==n){const i=Tt(r.charCodeAt(0));e[i]=i}else{const i=n.toLowerCase();if(i!==n){const s=Tt(i.charCodeAt(0));e[s]=s}}}function Rl(t,e){return Rn(t.value,n=>{if(typeof n=="number")return de(e,n);{const r=n;return Rn(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function fa(t){const e=t.quantifier;return e&&e.atLeast===0?!0:t.value?P(t.value)?Be(t.value,fa):fa(t.value):!1}class Hv extends Xi{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){de(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Rl(e,this.targetCharCodes)===void 0&&(this.found=!0):Rl(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function yo(t,e){if(e instanceof RegExp){const n=fs(e),r=new Hv(t);return r.visit(n),r.found}else return Rn(e,n=>de(t,n.charCodeAt(0)))!==void 0}const Mt="PATTERN",lr="defaultMode",Jr="modes";let yf=typeof new RegExp("(?:)").sticky=="boolean";function Vv(t,e){e=mo(e,{useSticky:yf,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
|
|
22
|
+
`],tracer:(E,v)=>v()});const n=e.tracer;n("initCharCodeToOptimizedIndexMap",()=>{pR()});let r;n("Reject Lexer.NA",()=>{r=us(t,E=>E[Mt]===he.NA)});let i=!1,s;n("Transform Patterns",()=>{i=!1,s=k(r,E=>{const v=E[Mt];if(lt(v)){const I=v.source;return I.length===1&&I!=="^"&&I!=="$"&&I!=="."&&!v.ignoreCase?I:I.length===2&&I[0]==="\\"&&!de(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],I[1])?I[1]:e.useSticky?El(v):Al(v)}else{if(ft(v))return i=!0,{exec:v};if(typeof v=="object")return i=!0,v;if(typeof v=="string"){if(v.length===1)return v;{const I=v.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),M=new RegExp(I);return e.useSticky?El(M):Al(M)}}else throw Error("non exhaustive match")}})});let a,o,l,u,c;n("misc mapping",()=>{a=k(r,E=>E.tokenTypeIdx),o=k(r,E=>{const v=E.GROUP;if(v!==he.SKIPPED){if(pe(v))return v;if(ut(v))return!1;throw Error("non exhaustive match")}}),l=k(r,E=>{const v=E.LONGER_ALT;if(v)return P(v)?k(v,M=>yl(r,M)):[yl(r,v)]}),u=k(r,E=>E.PUSH_MODE),c=k(r,E=>C(E,"POP_MODE"))});let f;n("Line Terminator Handling",()=>{const E=Rf(e.lineTerminatorCharacters);f=k(r,v=>!1),e.positionTracking!=="onlyOffset"&&(f=k(r,v=>C(v,"LINE_BREAKS")?!!v.LINE_BREAKS:vf(v,E)===!1&&yo(E,v.PATTERN)))});let d,h,m,g;n("Misc Mapping #2",()=>{d=k(r,Tf),h=k(s,fR),m=xe(r,(E,v)=>{const I=v.GROUP;return pe(I)&&I!==he.SKIPPED&&(E[I]=[]),E},{}),g=k(s,(E,v)=>({pattern:s[v],longerAlt:l[v],canLineTerminator:f[v],isCustom:d[v],short:h[v],group:o[v],push:u[v],pop:c[v],tokenTypeIdx:a[v],tokenType:r[v]}))});let R=!0,y=[];return e.safeMode||n("First Char Optimization",()=>{y=xe(r,(E,v,I)=>{if(typeof v.PATTERN=="string"){const M=v.PATTERN.charCodeAt(0),se=Tt(M);Ls(E,se,g[I])}else if(P(v.START_CHARS_HINT)){let M;w(v.START_CHARS_HINT,se=>{const Me=typeof se=="string"?se.charCodeAt(0):se,Te=Tt(Me);M!==Te&&(M=Te,Ls(E,Te,g[I]))})}else if(lt(v.PATTERN))if(v.PATTERN.unicode)R=!1,e.ensureOptimizations&&ua(`${wi} Unable to analyze < ${v.PATTERN.toString()} > pattern.
|
|
23
|
+
The regexp unicode flag is not currently supported by the regexp-to-ast library.
|
|
24
|
+
This will disable the lexer's first char optimizations.
|
|
25
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const M=jv(v.PATTERN,e.ensureOptimizations);U(M)&&(R=!1),w(M,se=>{Ls(E,se,g[I])})}else e.ensureOptimizations&&ua(`${wi} TokenType: <${v.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
|
|
26
|
+
This will disable the lexer's first char optimizations.
|
|
27
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),R=!1;return E},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:R}}function Wv(t,e){let n=[];const r=qv(t);n=n.concat(r.errors);const i=Yv(r.valid),s=i.valid;return n=n.concat(i.errors),n=n.concat(zv(s)),n=n.concat(rR(s)),n=n.concat(iR(s,e)),n=n.concat(sR(s)),n}function zv(t){let e=[];const n=Pe(t,r=>lt(r[Mt]));return e=e.concat(Jv(n)),e=e.concat(eR(n)),e=e.concat(tR(n)),e=e.concat(nR(n)),e=e.concat(Zv(n)),e}function qv(t){const e=Pe(t,i=>!C(i,Mt)),n=k(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:q.MISSING_PATTERN,tokenTypes:[i]})),r=ls(t,e);return{errors:n,valid:r}}function Yv(t){const e=Pe(t,i=>{const s=i[Mt];return!lt(s)&&!ft(s)&&!C(s,"exec")&&!pe(s)}),n=k(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:q.INVALID_PATTERN,tokenTypes:[i]})),r=ls(t,e);return{errors:n,valid:r}}const Xv=/[^\\][$]/;function Jv(t){class e extends Xi{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const n=Pe(t,i=>{const s=i.PATTERN;try{const a=fs(s),o=new e;return o.visit(a),o.found}catch{return Xv.test(s.source)}});return k(n,i=>({message:`Unexpected RegExp Anchor Error:
|
|
28
|
+
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
|
|
29
|
+
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:q.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Zv(t){const e=Pe(t,r=>r.PATTERN.test(""));return k(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:q.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const Qv=/[^\\[][\^]|^\^/;function eR(t){class e extends Xi{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const n=Pe(t,i=>{const s=i.PATTERN;try{const a=fs(s),o=new e;return o.visit(a),o.found}catch{return Qv.test(s.source)}});return k(n,i=>({message:`Unexpected RegExp Anchor Error:
|
|
30
|
+
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
|
|
31
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:q.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function tR(t){const e=Pe(t,r=>{const i=r[Mt];return i instanceof RegExp&&(i.multiline||i.global)});return k(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:q.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function nR(t){const e=[];let n=k(t,s=>xe(t,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!de(e,o)&&o.PATTERN!==he.NA&&(e.push(o),a.push(o)),a),[]));n=br(n);const r=Pe(n,s=>s.length>1);return k(r,s=>{const a=k(s,l=>l.name);return{message:`The same RegExp pattern ->${Ke(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:q.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function rR(t){const e=Pe(t,r=>{if(!C(r,"GROUP"))return!1;const i=r.GROUP;return i!==he.SKIPPED&&i!==he.NA&&!pe(i)});return k(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:q.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function iR(t,e){const n=Pe(t,i=>i.PUSH_MODE!==void 0&&!de(e,i.PUSH_MODE));return k(n,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:q.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function sR(t){const e=[],n=xe(t,(r,i,s)=>{const a=i.PATTERN;return a===he.NA||(pe(a)?r.push({str:a,idx:s,tokenType:i}):lt(a)&&oR(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return w(t,(r,i)=>{w(n,({str:s,idx:a,tokenType:o})=>{if(i<a&&aR(s,r.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
|
|
32
|
+
Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
|
|
33
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:q.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function aR(t,e){if(lt(e)){const n=e.exec(t);return n!==null&&n.index===0}else{if(ft(e))return e(t,0,[],{});if(C(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function oR(t){return Rn([".","\\","[","]","|","^","$","(",")","?","*","+","{"],n=>t.source.indexOf(n)!==-1)===void 0}function Al(t){const e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function El(t){const e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function lR(t,e,n){const r=[];return C(t,lr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+lr+`> property in its definition
|
|
34
|
+
`,type:q.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),C(t,Jr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Jr+`> property in its definition
|
|
35
|
+
`,type:q.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),C(t,Jr)&&C(t,lr)&&!C(t.modes,t.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${lr}: <${t.defaultMode}>which does not exist
|
|
36
|
+
`,type:q.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),C(t,Jr)&&w(t.modes,(i,s)=>{w(i,(a,o)=>{if(ut(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
|
|
37
|
+
`,type:q.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(C(a,"LONGER_ALT")){const l=P(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];w(l,u=>{!ut(u)&&!de(i,u)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${u.name}> on token <${a.name}> outside of mode <${s}>
|
|
38
|
+
`,type:q.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function uR(t,e,n){const r=[];let i=!1;const s=br(Ue(J(t.modes))),a=us(s,l=>l[Mt]===he.NA),o=Rf(n);return e&&w(a,l=>{const u=vf(l,o);if(u!==!1){const f={message:hR(l,u),type:u.issue,tokenType:l};r.push(f)}else C(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):yo(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
|
|
39
|
+
This Lexer has been defined to track line and column information,
|
|
40
|
+
But none of the Token Types can be identified as matching a line terminator.
|
|
41
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
|
|
42
|
+
for details.`,type:q.NO_LINE_BREAKS_FLAGS}),r}function cR(t){const e={},n=Le(t);return w(n,r=>{const i=t[r];if(P(i))e[r]=[];else throw Error("non exhaustive match")}),e}function Tf(t){const e=t.PATTERN;if(lt(e))return!1;if(ft(e))return!0;if(C(e,"exec"))return!0;if(pe(e))return!1;throw Error("non exhaustive match")}function fR(t){return pe(t)&&t.length===1?t.charCodeAt(0):!1}const dR={test:function(t){const e=t.length;for(let n=this.lastIndex;n<e;n++){const r=t.charCodeAt(n);if(r===10)return this.lastIndex=n+1,!0;if(r===13)return t.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function vf(t,e){if(C(t,"LINE_BREAKS"))return!1;if(lt(t.PATTERN)){try{yo(e,t.PATTERN)}catch(n){return{issue:q.IDENTIFY_TERMINATOR,errMsg:n.message}}return!1}else{if(pe(t.PATTERN))return!1;if(Tf(t))return{issue:q.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function hR(t,e){if(e.issue===q.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
|
|
43
|
+
The problem is in the <${t.name}> Token Type
|
|
44
|
+
Root cause: ${e.errMsg}.
|
|
45
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===q.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
|
|
46
|
+
The problem is in the <${t.name}> Token Type
|
|
47
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Rf(t){return k(t,n=>pe(n)?n.charCodeAt(0):n)}function Ls(t,e,n){t[e]===void 0?t[e]=[n]:t[e].push(n)}const ur=256;let fi=[];function Tt(t){return t<ur?t:fi[t]}function pR(){if(U(fi)){fi=new Array(65536);for(let t=0;t<65536;t++)fi[t]=t>255?255+~~(t/255):t}}function Lr(t,e){const n=t.tokenTypeIdx;return n===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[n]===!0}function Ni(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}let $l=1;const Af={};function Pr(t){const e=mR(t);gR(e),TR(e),yR(e),w(e,n=>{n.isParent=n.categoryMatches.length>0})}function mR(t){let e=ie(t),n=t,r=!0;for(;r;){n=br(Ue(k(n,s=>s.CATEGORIES)));const i=ls(n,e);e=e.concat(i),U(i)?r=!1:n=i}return e}function gR(t){w(t,e=>{$f(e)||(Af[$l]=e,e.tokenTypeIdx=$l++),xl(e)&&!P(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xl(e)||(e.CATEGORIES=[]),vR(e)||(e.categoryMatches=[]),RR(e)||(e.categoryMatchesMap={})})}function yR(t){w(t,e=>{e.categoryMatches=[],w(e.categoryMatchesMap,(n,r)=>{e.categoryMatches.push(Af[r].tokenTypeIdx)})})}function TR(t){w(t,e=>{Ef([],e)})}function Ef(t,e){w(t,n=>{e.categoryMatchesMap[n.tokenTypeIdx]=!0}),w(e.CATEGORIES,n=>{const r=t.concat(e);de(r,n)||Ef(r,n)})}function $f(t){return C(t,"tokenTypeIdx")}function xl(t){return C(t,"CATEGORIES")}function vR(t){return C(t,"categoryMatches")}function RR(t){return C(t,"categoryMatchesMap")}function AR(t){return C(t,"tokenTypeIdx")}const da={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,n,r,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${n} characters.`}};var q;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(q||(q={}));const cr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
|
|
48
|
+
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:da,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(cr);class he{constructor(e,n=cr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=hf(s),u=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof n=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
|
|
49
|
+
a boolean 2nd argument is no longer supported`);this.config=$e({},cr,n);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===cr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=dR;else if(this.config.lineTerminatorCharacters===cr.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
|
|
50
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),P(e)?i={modes:{defaultMode:ie(e)},defaultMode:lr}:(s=!1,i=ie(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(lR(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(uR(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},w(i.modes,(o,l)=>{i.modes[l]=us(o,u=>ut(u))});const a=Le(i.modes);if(w(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Wv(o,a))}),U(this.lexerDefinitionErrors)){Pr(o);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=Vv(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:n.positionTracking,ensureOptimizations:n.ensureOptimizations,safeMode:n.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=$e({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!U(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=k(this.lexerDefinitionErrors,u=>u.message).join(`-----------------------
|
|
51
|
+
`);throw new Error(`Errors detected in definition of Lexer:
|
|
52
|
+
`+l)}w(this.lexerDefinitionWarning,o=>{df(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(yf?(this.chopInput=yn,this.match=this.matchWithTest):(this.updateLastIndex=X,this.match=this.matchWithExec),s&&(this.handleModes=X),this.trackStartLines===!1&&(this.computeNewColumn=yn),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=X),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=xe(this.canModeBeOptimized,(l,u,c)=>(u===!1&&l.push(c),l),[]);if(n.ensureOptimizations&&!U(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
|
|
53
|
+
Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
|
|
54
|
+
Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Bv()}),this.TRACE_INIT("toFastProperties",()=>{pf(this)})})}tokenize(e,n=this.defaultMode){if(!U(this.lexerDefinitionErrors)){const i=k(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
|
|
55
|
+
`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
|
|
56
|
+
`+i)}return this.tokenizeInternal(e,n)}tokenizeInternal(e,n){let r,i,s,a,o,l,u,c,f,d,h,m,g,R,y;const E=e,v=E.length;let I=0,M=0;const se=this.hasCustom?0:Math.floor(e.length/10),Me=new Array(se),Te=[];let We=this.trackStartLines?1:void 0,ke=this.trackStartLines?1:void 0;const x=cR(this.emptyGroups),T=this.trackStartLines,$=this.config.lineTerminatorsPattern;let S=0,O=[],b=[];const _=[],ve=[];Object.freeze(ve);let Z;function W(){return O}function wt(ae){const Ce=Tt(ae),Wt=b[Ce];return Wt===void 0?ve:Wt}const Hd=ae=>{if(_.length===1&&ae.tokenType.PUSH_MODE===void 0){const Ce=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ae);Te.push({offset:ae.startOffset,line:ae.startLine,column:ae.startColumn,length:ae.image.length,message:Ce})}else{_.pop();const Ce=vn(_);O=this.patternIdxToConfig[Ce],b=this.charCodeToPatternIdxToConfig[Ce],S=O.length;const Wt=this.canModeBeOptimized[Ce]&&this.config.safeMode===!1;b&&Wt?Z=wt:Z=W}};function bo(ae){_.push(ae),b=this.charCodeToPatternIdxToConfig[ae],O=this.patternIdxToConfig[ae],S=O.length,S=O.length;const Ce=this.canModeBeOptimized[ae]&&this.config.safeMode===!1;b&&Ce?Z=wt:Z=W}bo.call(this,n);let De;const Oo=this.config.recoveryEnabled;for(;I<v;){l=null;const ae=E.charCodeAt(I),Ce=Z(ae),Wt=Ce.length;for(r=0;r<Wt;r++){De=Ce[r];const Re=De.pattern;u=null;const et=De.short;if(et!==!1?ae===et&&(l=Re):De.isCustom===!0?(y=Re.exec(E,I,Me,x),y!==null?(l=y[0],y.payload!==void 0&&(u=y.payload)):l=null):(this.updateLastIndex(Re,I),l=this.match(Re,e,I)),l!==null){if(o=De.longerAlt,o!==void 0){const pt=o.length;for(s=0;s<pt;s++){const tt=O[o[s]],Nt=tt.pattern;if(c=null,tt.isCustom===!0?(y=Nt.exec(E,I,Me,x),y!==null?(a=y[0],y.payload!==void 0&&(c=y.payload)):a=null):(this.updateLastIndex(Nt,I),a=this.match(Nt,e,I)),a&&a.length>l.length){l=a,u=c,De=tt;break}}}break}}if(l!==null){if(f=l.length,d=De.group,d!==void 0&&(h=De.tokenTypeIdx,m=this.createTokenInstance(l,I,h,De.tokenType,We,ke,f),this.handlePayload(m,u),d===!1?M=this.addToken(Me,M,m):x[d].push(m)),e=this.chopInput(e,f),I=I+f,ke=this.computeNewColumn(ke,f),T===!0&&De.canLineTerminator===!0){let Re=0,et,pt;$.lastIndex=0;do et=$.test(l),et===!0&&(pt=$.lastIndex-1,Re++);while(et===!0);Re!==0&&(We=We+Re,ke=f-pt,this.updateTokenEndLineColumnLocation(m,d,pt,Re,We,ke,f))}this.handleModes(De,Hd,bo,m)}else{const Re=I,et=We,pt=ke;let tt=Oo===!1;for(;tt===!1&&I<v;)for(e=this.chopInput(e,1),I++,i=0;i<S;i++){const Nt=O[i],Es=Nt.pattern,Lo=Nt.short;if(Lo!==!1?E.charCodeAt(I)===Lo&&(tt=!0):Nt.isCustom===!0?tt=Es.exec(E,I,Me,x)!==null:(this.updateLastIndex(Es,I),tt=Es.exec(e)!==null),tt===!0)break}if(g=I-Re,ke=this.computeNewColumn(ke,g),R=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(E,Re,g,et,pt),Te.push({offset:Re,line:et,column:pt,length:g,message:R}),Oo===!1)break}}return this.hasCustom||(Me.length=M),{tokens:Me,groups:x,errors:Te}}handleModes(e,n,r,i){if(e.pop===!0){const s=e.push;n(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,n){return e.substring(n)}updateLastIndex(e,n){e.lastIndex=n}updateTokenEndLineColumnLocation(e,n,r,i,s,a,o){let l,u;n!==void 0&&(l=r===o-1,u=l?-1:0,i===1&&l===!0||(e.endLine=s+u,e.endColumn=a-1+-u))}computeNewColumn(e,n){return e+n}createOffsetOnlyToken(e,n,r,i){return{image:e,startOffset:n,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,n,r,i,s,a){return{image:e,startOffset:n,startLine:s,startColumn:a,tokenTypeIdx:r,tokenType:i}}createFullToken(e,n,r,i,s,a,o){return{image:e,startOffset:n,endOffset:n+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,n,r){return e.push(r),n}addTokenUsingMemberAccess(e,n,r){return e[n]=r,n++,n}handlePayloadNoCustom(e,n){}handlePayloadWithCustom(e,n){n!==null&&(e.payload=n)}matchWithTest(e,n,r){return e.test(n)===!0?n.substring(r,e.lastIndex):null}matchWithExec(e,n){const r=e.exec(n);return r!==null?r[0]:null}}he.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";he.NA=/NOT_APPLICABLE/;function Zt(t){return xf(t)?t.LABEL:t.name}function xf(t){return pe(t.LABEL)&&t.LABEL!==""}const ER="parent",Sl="categories",Il="label",kl="group",Cl="push_mode",wl="pop_mode",Nl="longer_alt",_l="line_breaks",bl="start_chars_hint";function Sf(t){return $R(t)}function $R(t){const e=t.pattern,n={};if(n.name=t.name,ut(e)||(n.PATTERN=e),C(t,ER))throw`The parent property is no longer supported.
|
|
57
|
+
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return C(t,Sl)&&(n.CATEGORIES=t[Sl]),Pr([n]),C(t,Il)&&(n.LABEL=t[Il]),C(t,kl)&&(n.GROUP=t[kl]),C(t,wl)&&(n.POP_MODE=t[wl]),C(t,Cl)&&(n.PUSH_MODE=t[Cl]),C(t,Nl)&&(n.LONGER_ALT=t[Nl]),C(t,_l)&&(n.LINE_BREAKS=t[_l]),C(t,bl)&&(n.START_CHARS_HINT=t[bl]),n}const vt=Sf({name:"EOF",pattern:he.NA});Pr([vt]);function To(t,e,n,r,i,s,a,o){return{image:e,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}function If(t,e){return Lr(t,e)}const Yt={buildMismatchTokenMessage({expected:t,actual:e,previous:n,ruleName:r}){return`Expecting ${xf(t)?`--> ${Zt(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:n,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
|
|
58
|
+
but found: '`+Ke(e).image+"'";if(r)return s+r+o;{const l=xe(t,(d,h)=>d.concat(h),[]),u=k(l,d=>`[${k(d,h=>Zt(h)).join(", ")}]`),f=`one of these possible Token sequences:
|
|
59
|
+
${k(u,(d,h)=>` ${h+1}. ${d}`).join(`
|
|
60
|
+
`)}`;return s+f+o}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:n,ruleName:r}){const i="Expecting: ",a=`
|
|
61
|
+
but found: '`+Ke(e).image+"'";if(n)return i+n+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
|
|
62
|
+
<${k(t,u=>`[${k(u,c=>Zt(c)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(Yt);const xR={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
|
|
63
|
+
inside top level rule: ->`+t.name+"<-"}},_t={buildDuplicateFoundError(t,e){function n(c){return c instanceof j?c.terminalType.name:c instanceof ce?c.nonTerminalName:""}const r=t.name,i=Ke(e),s=i.idx,a=ze(i),o=n(i),l=s>0;let u=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
|
|
64
|
+
appears more than once (${e.length} times) in the top level rule: ->${r}<-.
|
|
65
|
+
For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
|
|
66
|
+
`;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,`
|
|
67
|
+
`),u},buildNamespaceConflictError(t){return`Namespace conflict found in grammar.
|
|
68
|
+
The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>.
|
|
69
|
+
To resolve this make sure each Terminal and Non-Terminal names are unique
|
|
70
|
+
This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
|
|
71
|
+
and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){const e=k(t.prefixPath,i=>Zt(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix
|
|
72
|
+
in <OR${n}> inside <${t.topLevelRule.name}> Rule,
|
|
73
|
+
<${e}> may appears as a prefix path in all these alternatives.
|
|
74
|
+
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
|
|
75
|
+
For Further details.`},buildAlternationAmbiguityError(t){const e=k(t.prefixPath,i=>Zt(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${t.topLevelRule.name}> Rule,
|
|
76
|
+
<${e}> may appears as a prefix path in all these alternatives.
|
|
77
|
+
`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
78
|
+
For Further details.`,r},buildEmptyRepetitionError(t){let e=ze(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens.
|
|
79
|
+
This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
|
|
80
|
+
Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives:
|
|
81
|
+
<OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
|
|
82
|
+
has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){const e=t.topLevelRule.name,n=k(t.leftRecursionPath,s=>s.name),r=`${e} --> ${n.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
|
|
83
|
+
rule: <${e}> can be invoked from itself (directly or indirectly)
|
|
84
|
+
without consuming any Tokens. The grammar path that causes this is:
|
|
85
|
+
${r}
|
|
86
|
+
To fix this refactor your grammar to remove the left recursion.
|
|
87
|
+
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof kn?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}};function SR(t,e){const n=new IR(t,e);return n.resolveRefs(),n.errors}class IR extends Cn{constructor(e,n){super(),this.nameToTopRule=e,this.errMsgProvider=n,this.errors=[]}resolveRefs(){w(J(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const n=this.nameToTopRule[e.nonTerminalName];if(n)e.referencedRule=n;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:fe.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class kR extends cs{constructor(e,n){super(),this.topProd=e,this.path=n,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=ie(this.path.ruleStack).reverse(),this.occurrenceStack=ie(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,n=[]){this.found||super.walk(e,n)}walkProdRef(e,n,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=n.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){U(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class CR extends kR{constructor(e,n){super(e,n),this.path=n,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,n,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=n.concat(r),s=new me({definition:i});this.possibleTokTypes=Or(s),this.found=!0}}}class ds extends cs{constructor(e,n){super(),this.topRule=e,this.occurrence=n,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class wR extends ds{walkMany(e,n,r){if(e.idx===this.occurrence){const i=Ke(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof j&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,n,r)}}class Ol extends ds{walkManySep(e,n,r){if(e.idx===this.occurrence){const i=Ke(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof j&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,n,r)}}class NR extends ds{walkAtLeastOne(e,n,r){if(e.idx===this.occurrence){const i=Ke(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof j&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,n,r)}}class Ll extends ds{walkAtLeastOneSep(e,n,r){if(e.idx===this.occurrence){const i=Ke(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof j&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,n,r)}}function ha(t,e,n=[]){n=ie(n);let r=[],i=0;function s(o){return o.concat(ee(t,i+1))}function a(o){const l=ha(s(o),e,n);return r.concat(l)}for(;n.length<e&&i<t.length;){const o=t[i];if(o instanceof me)return a(o.definition);if(o instanceof ce)return a(o.definition);if(o instanceof re)r=a(o.definition);else if(o instanceof Se){const l=o.definition.concat([new z({definition:o.definition})]);return a(l)}else if(o instanceof Ie){const l=[new me({definition:o.definition}),new z({definition:[new j({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof ge){const l=o.definition.concat([new z({definition:[new j({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof z){const l=o.definition.concat([new z({definition:o.definition})]);r=a(l)}else{if(o instanceof ye)return w(o.definition,l=>{U(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof j)n.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:n,suffixDef:ee(t,i)}),r}function kf(t,e,n,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,u=l-r-1,c=[],f=[];for(f.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!U(f);){const d=f.pop();if(d===a){o&&vn(f).idx<=u&&f.pop();continue}const h=d.def,m=d.idx,g=d.ruleStack,R=d.occurrenceStack;if(U(h))continue;const y=h[0];if(y===i){const E={idx:m,def:ee(h),ruleStack:Er(g),occurrenceStack:Er(R)};f.push(E)}else if(y instanceof j)if(m<l-1){const E=m+1,v=e[E];if(n(v,y.terminalType)){const I={idx:E,def:ee(h),ruleStack:g,occurrenceStack:R};f.push(I)}}else if(m===l-1)c.push({nextTokenType:y.terminalType,nextTokenOccurrence:y.idx,ruleStack:g,occurrenceStack:R}),o=!0;else throw Error("non exhaustive match");else if(y instanceof ce){const E=ie(g);E.push(y.nonTerminalName);const v=ie(R);v.push(y.idx);const I={idx:m,def:y.definition.concat(s,ee(h)),ruleStack:E,occurrenceStack:v};f.push(I)}else if(y instanceof re){const E={idx:m,def:ee(h),ruleStack:g,occurrenceStack:R};f.push(E),f.push(a);const v={idx:m,def:y.definition.concat(ee(h)),ruleStack:g,occurrenceStack:R};f.push(v)}else if(y instanceof Se){const E=new z({definition:y.definition,idx:y.idx}),v=y.definition.concat([E],ee(h)),I={idx:m,def:v,ruleStack:g,occurrenceStack:R};f.push(I)}else if(y instanceof Ie){const E=new j({terminalType:y.separator}),v=new z({definition:[E].concat(y.definition),idx:y.idx}),I=y.definition.concat([v],ee(h)),M={idx:m,def:I,ruleStack:g,occurrenceStack:R};f.push(M)}else if(y instanceof ge){const E={idx:m,def:ee(h),ruleStack:g,occurrenceStack:R};f.push(E),f.push(a);const v=new j({terminalType:y.separator}),I=new z({definition:[v].concat(y.definition),idx:y.idx}),M=y.definition.concat([I],ee(h)),se={idx:m,def:M,ruleStack:g,occurrenceStack:R};f.push(se)}else if(y instanceof z){const E={idx:m,def:ee(h),ruleStack:g,occurrenceStack:R};f.push(E),f.push(a);const v=new z({definition:y.definition,idx:y.idx}),I=y.definition.concat([v],ee(h)),M={idx:m,def:I,ruleStack:g,occurrenceStack:R};f.push(M)}else if(y instanceof ye)for(let E=y.definition.length-1;E>=0;E--){const v=y.definition[E],I={idx:m,def:v.definition.concat(ee(h)),ruleStack:g,occurrenceStack:R};f.push(I),f.push(a)}else if(y instanceof me)f.push({idx:m,def:y.definition.concat(ee(h)),ruleStack:g,occurrenceStack:R});else if(y instanceof kn)f.push(_R(y,m,g,R));else throw Error("non exhaustive match")}return c}function _R(t,e,n,r){const i=ie(n);i.push(t.name);const s=ie(r);return s.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:s}}var H;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(H||(H={}));function vo(t){if(t instanceof re||t==="Option")return H.OPTION;if(t instanceof z||t==="Repetition")return H.REPETITION;if(t instanceof Se||t==="RepetitionMandatory")return H.REPETITION_MANDATORY;if(t instanceof Ie||t==="RepetitionMandatoryWithSeparator")return H.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof ge||t==="RepetitionWithSeparator")return H.REPETITION_WITH_SEPARATOR;if(t instanceof ye||t==="Alternation")return H.ALTERNATION;throw Error("non exhaustive match")}function Pl(t){const{occurrence:e,rule:n,prodType:r,maxLookahead:i}=t,s=vo(r);return s===H.ALTERNATION?hs(e,n,i):ps(e,n,s,i)}function bR(t,e,n,r,i,s){const a=hs(t,e,n),o=Nf(a)?Ni:Lr;return s(a,r,o,i)}function OR(t,e,n,r,i,s){const a=ps(t,e,i,n),o=Nf(a)?Ni:Lr;return s(a[0],o,r)}function LR(t,e,n,r){const i=t.length,s=Be(t,a=>Be(a,o=>o.length===1));if(e)return function(a){const o=k(a,l=>l.GATE);for(let l=0;l<i;l++){const u=t[l],c=u.length,f=o[l];if(!(f!==void 0&&f.call(this)===!1))e:for(let d=0;d<c;d++){const h=u[d],m=h.length;for(let g=0;g<m;g++){const R=this.LA(g+1);if(n(R,h[g])===!1)continue e}return l}}};if(s&&!r){const a=k(t,l=>Ue(l)),o=xe(a,(l,u,c)=>(w(u,f=>{C(l,f.tokenTypeIdx)||(l[f.tokenTypeIdx]=c),w(f.categoryMatches,d=>{C(l,d)||(l[d]=c)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=t[a],l=o.length;e:for(let u=0;u<l;u++){const c=o[u],f=c.length;for(let d=0;d<f;d++){const h=this.LA(d+1);if(n(h,c[d])===!1)continue e}return a}}}}function PR(t,e,n){const r=Be(t,s=>s.length===1),i=t.length;if(r&&!n){const s=Ue(t);if(s.length===1&&U(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=xe(s,(o,l,u)=>(o[l.tokenTypeIdx]=!0,w(l.categoryMatches,c=>{o[c]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=t[s],o=a.length;for(let l=0;l<o;l++){const u=this.LA(l+1);if(e(u,a[l])===!1)continue e}return!0}return!1}}class MR extends cs{constructor(e,n,r){super(),this.topProd=e,this.targetOccurrence=n,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,n,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===n?(this.restDef=r.concat(i),!0):!1}walkOption(e,n,r){this.checkIsTarget(e,H.OPTION,n,r)||super.walkOption(e,n,r)}walkAtLeastOne(e,n,r){this.checkIsTarget(e,H.REPETITION_MANDATORY,n,r)||super.walkOption(e,n,r)}walkAtLeastOneSep(e,n,r){this.checkIsTarget(e,H.REPETITION_MANDATORY_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}walkMany(e,n,r){this.checkIsTarget(e,H.REPETITION,n,r)||super.walkOption(e,n,r)}walkManySep(e,n,r){this.checkIsTarget(e,H.REPETITION_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}}class Cf extends Cn{constructor(e,n,r){super(),this.targetOccurrence=e,this.targetProdType=n,this.targetRef=r,this.result=[]}checkIsTarget(e,n){e.idx===this.targetOccurrence&&this.targetProdType===n&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,H.OPTION)}visitRepetition(e){this.checkIsTarget(e,H.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,H.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,H.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,H.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,H.ALTERNATION)}}function Ml(t){const e=new Array(t);for(let n=0;n<t;n++)e[n]=[];return e}function Ps(t){let e=[""];for(let n=0;n<t.length;n++){const r=t[n],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+r.tokenTypeIdx);for(let o=0;o<r.categoryMatches.length;o++){const l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function DR(t,e,n){for(let r=0;r<t.length;r++){if(r===n)continue;const i=t[r];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function wf(t,e){const n=k(t,a=>ha([a],1)),r=Ml(n.length),i=k(n,a=>{const o={};return w(a,l=>{const u=Ps(l.partialPath);w(u,c=>{o[c]=!0})}),o});let s=n;for(let a=1;a<=e;a++){const o=s;s=Ml(o.length);for(let l=0;l<o.length;l++){const u=o[l];for(let c=0;c<u.length;c++){const f=u[c].partialPath,d=u[c].suffixDef,h=Ps(f);if(DR(i,h,l)||U(d)||f.length===e){const g=r[l];if(pa(g,f)===!1){g.push(f);for(let R=0;R<h.length;R++){const y=h[R];i[l][y]=!0}}}else{const g=ha(d,a+1,f);s[l]=s[l].concat(g),w(g,R=>{const y=Ps(R.partialPath);w(y,E=>{i[l][E]=!0})})}}}}return r}function hs(t,e,n,r){const i=new Cf(t,H.ALTERNATION,r);return e.accept(i),wf(i.result,n)}function ps(t,e,n,r){const i=new Cf(t,n);e.accept(i);const s=i.result,o=new MR(e,t,n).startWalking(),l=new me({definition:s}),u=new me({definition:o});return wf([l,u],r)}function pa(t,e){e:for(let n=0;n<t.length;n++){const r=t[n];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],a=r[i];if((s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function FR(t,e){return t.length<e.length&&Be(t,(n,r)=>{const i=e[r];return n===i||i.categoryMatchesMap[n.tokenTypeIdx]})}function Nf(t){return Be(t,e=>Be(e,n=>Be(n,r=>U(r.categoryMatches))))}function GR(t){const e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return k(e,n=>Object.assign({type:fe.CUSTOM_LOOKAHEAD_VALIDATION},n))}function UR(t,e,n,r){const i=Ne(t,l=>BR(l,n)),s=QR(t,e,n),a=Ne(t,l=>YR(l,n)),o=Ne(t,l=>HR(l,t,r,n));return i.concat(s,a,o)}function BR(t,e){const n=new KR;t.accept(n);const r=n.allProductions,i=av(r,jR),s=He(i,o=>o.length>1);return k(J(s),o=>{const l=Ke(o),u=e.buildDuplicateFoundError(t,o),c=ze(l),f={message:u,type:fe.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:c,occurrence:l.idx},d=_f(l);return d&&(f.parameter=d),f})}function jR(t){return`${ze(t)}_#_${t.idx}_#_${_f(t)}`}function _f(t){return t instanceof j?t.terminalType.name:t instanceof ce?t.nonTerminalName:""}class KR extends Cn{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function HR(t,e,n,r){const i=[];if(xe(e,(a,o)=>o.name===t.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:t,grammarName:n});i.push({message:a,type:fe.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function VR(t,e,n){const r=[];let i;return de(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:fe.INVALID_RULE_OVERRIDE,ruleName:t})),r}function bf(t,e,n,r=[]){const i=[],s=di(e.definition);if(U(s))return[];{const a=t.name;de(s,t)&&i.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:r}),type:fe.LEFT_RECURSION,ruleName:a});const l=ls(s,r.concat([t])),u=Ne(l,c=>{const f=ie(r);return f.push(c),bf(t,c,n,f)});return i.concat(u)}}function di(t){let e=[];if(U(t))return e;const n=Ke(t);if(n instanceof ce)e.push(n.referencedRule);else if(n instanceof me||n instanceof re||n instanceof Se||n instanceof Ie||n instanceof ge||n instanceof z)e=e.concat(di(n.definition));else if(n instanceof ye)e=Ue(k(n.definition,s=>di(s.definition)));else if(!(n instanceof j))throw Error("non exhaustive match");const r=Ci(n),i=t.length>1;if(r&&i){const s=ee(t);return e.concat(di(s))}else return e}class Ro extends Cn{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function WR(t,e){const n=new Ro;t.accept(n);const r=n.alternations;return Ne(r,s=>{const a=Er(s.definition);return Ne(a,(o,l)=>{const u=kf([o],[],Lr,1);return U(u)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:s,emptyChoiceIdx:l}),type:fe.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:s.idx,alternative:l+1}]:[]})})}function zR(t,e,n){const r=new Ro;t.accept(r);let i=r.alternations;return i=us(i,a=>a.ignoreAmbiguities===!0),Ne(i,a=>{const o=a.idx,l=a.maxLookahead||e,u=hs(o,t,l,a),c=JR(u,a,t,n),f=ZR(u,a,t,n);return c.concat(f)})}class qR extends Cn{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function YR(t,e){const n=new Ro;t.accept(n);const r=n.alternations;return Ne(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:s}),type:fe.TOO_MANY_ALTS,ruleName:t.name,occurrence:s.idx}]:[])}function XR(t,e,n){const r=[];return w(t,i=>{const s=new qR;i.accept(s);const a=s.allProductions;w(a,o=>{const l=vo(o),u=o.maxLookahead||e,c=o.idx,d=ps(c,i,l,u)[0];if(U(Ue(d))){const h=n.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:h,type:fe.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function JR(t,e,n,r){const i=[],s=xe(t,(o,l,u)=>(e.definition[u].ignoreAmbiguities===!0||w(l,c=>{const f=[u];w(t,(d,h)=>{u!==h&&pa(d,c)&&e.definition[h].ignoreAmbiguities!==!0&&f.push(h)}),f.length>1&&!pa(i,c)&&(i.push(c),o.push({alts:f,path:c}))}),o),[]);return k(s,o=>{const l=k(o.alts,c=>c+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:fe.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:e.idx,alternatives:o.alts}})}function ZR(t,e,n,r){const i=xe(t,(a,o,l)=>{const u=k(o,c=>({idx:l,path:c}));return a.concat(u)},[]);return br(Ne(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,u=a.path,c=Pe(i,d=>e.definition[d.idx].ignoreAmbiguities!==!0&&d.idx<l&&FR(d.path,u));return k(c,d=>{const h=[d.idx+1,l+1],m=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:h,prefixPath:d.path}),type:fe.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:m,alternatives:h}})}))}function QR(t,e,n){const r=[],i=k(e,s=>s.name);return w(t,s=>{const a=s.name;if(de(i,a)){const o=n.buildNamespaceConflictError(s);r.push({message:o,type:fe.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function eA(t){const e=mo(t,{errMsgProvider:xR}),n={};return w(t.rules,r=>{n[r.name]=r}),SR(n,e.errMsgProvider)}function tA(t){return t=mo(t,{errMsgProvider:_t}),UR(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}const Of="MismatchedTokenException",Lf="NoViableAltException",Pf="EarlyExitException",Mf="NotAllInputParsedException",Df=[Of,Lf,Pf,Mf];Object.freeze(Df);function _i(t){return de(Df,t.name)}class ms extends Error{constructor(e,n){super(e),this.token=n,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class Ff extends ms{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=Of}}class nA extends ms{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=Lf}}class rA extends ms{constructor(e,n){super(e,n),this.name=Mf}}class iA extends ms{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=Pf}}const Ms={},Gf="InRuleRecoveryException";class sA extends Error{constructor(e){super(e),this.name=Gf}}class aA{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=C(e,"recoveryEnabled")?e.recoveryEnabled:ct.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=oA)}getTokenToInsert(e){const n=To(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return n.isInsertedInRecovery=!0,n}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,n,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const u=this.LA(1);let c=this.LA(1);const f=()=>{const d=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:d,ruleName:this.getCurrRuleFullName()}),m=new Ff(h,u,this.LA(0));m.resyncedTokens=Er(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(c,i)){f();return}else if(r.call(this)){f(),e.apply(this,n);return}else this.tokenMatcher(c,s)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,n,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,n)))}getFollowsForInRuleRecovery(e,n){const r=this.getCurrentGrammarPath(e,n);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,n){if(this.canRecoverWithSingleTokenInsertion(e,n))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new sA("sad sad panda")}canPerformInRuleRecovery(e,n){return this.canRecoverWithSingleTokenInsertion(e,n)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,n){if(!this.canTokenTypeBeInsertedInRecovery(e)||U(n))return!1;const r=this.LA(1);return Rn(n,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const n=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(n);return de(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let n=this.LA(1),r=2;for(;;){const i=Rn(e,s=>If(n,s));if(i!==void 0)return i;n=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ms;const e=this.getLastExplicitRuleShortName(),n=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:n,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK;return k(e,(r,i)=>i===0?Ms:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:n[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=k(this.buildFullFollowKeyStack(),n=>this.getFollowSetFromFollowKey(n));return Ue(e)}getFollowSetFromFollowKey(e){if(e===Ms)return[vt];const n=e.ruleName+e.idxInCallingRule+mf+e.inRule;return this.resyncFollows[n]}addToResyncTokens(e,n){return this.tokenMatcher(e,vt)||n.push(e),n}reSyncTo(e){const n=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,n);return Er(n)}attemptInRepetitionRecovery(e,n,r,i,s,a,o){}getCurrentGrammarPath(e,n){const r=this.getHumanReadableRuleStack(),i=ie(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:n}}getHumanReadableRuleStack(){return k(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function oA(t,e,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const d=this.getCurrRuleFullName(),h=this.getGAstProductions()[d];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence;const f=l.isEndOfRule;this.RULE_STACK.length===1&&f&&u===void 0&&(u=vt,c=1),!(u===void 0||c===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,c,a)&&this.tryInRepetitionRecovery(t,e,n,u)}const lA=4,$t=8,Uf=1<<$t,Bf=2<<$t,ma=3<<$t,ga=4<<$t,ya=5<<$t,hi=6<<$t;function Ds(t,e,n){return n|e|t}class Ao{constructor(e){var n;this.maxLookahead=(n=e==null?void 0:e.maxLookahead)!==null&&n!==void 0?n:ct.maxLookahead}validate(e){const n=this.validateNoLeftRecursion(e.rules);if(U(n)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...n,...r,...i,...s]}return n}validateNoLeftRecursion(e){return Ne(e,n=>bf(n,n,_t))}validateEmptyOrAlternatives(e){return Ne(e,n=>WR(n,_t))}validateAmbiguousAlternationAlternatives(e,n){return Ne(e,r=>zR(r,n,_t))}validateSomeNonEmptyLookaheadPath(e,n){return XR(e,n,_t)}buildLookaheadForAlternation(e){return bR(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,LR)}buildLookaheadForOptional(e){return OR(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,vo(e.prodType),PR)}}class uA{initLooksAhead(e){this.dynamicTokensEnabled=C(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ct.dynamicTokensEnabled,this.maxLookahead=C(e,"maxLookahead")?e.maxLookahead:ct.maxLookahead,this.lookaheadStrategy=C(e,"lookaheadStrategy")?e.lookaheadStrategy:new Ao({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){w(e,n=>{this.TRACE_INIT(`${n.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=fA(n);w(r,u=>{const c=u.idx===0?"":u.idx;this.TRACE_INIT(`${ze(u)}${c}`,()=>{const f=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:n,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),d=Ds(this.fullRuleNameToShort[n.name],Uf,u.idx);this.setLaFuncCache(d,f)})}),w(i,u=>{this.computeLookaheadFunc(n,u.idx,ma,"Repetition",u.maxLookahead,ze(u))}),w(s,u=>{this.computeLookaheadFunc(n,u.idx,Bf,"Option",u.maxLookahead,ze(u))}),w(a,u=>{this.computeLookaheadFunc(n,u.idx,ga,"RepetitionMandatory",u.maxLookahead,ze(u))}),w(o,u=>{this.computeLookaheadFunc(n,u.idx,hi,"RepetitionMandatoryWithSeparator",u.maxLookahead,ze(u))}),w(l,u=>{this.computeLookaheadFunc(n,u.idx,ya,"RepetitionWithSeparator",u.maxLookahead,ze(u))})})})}computeLookaheadFunc(e,n,r,i,s,a){this.TRACE_INIT(`${a}${n===0?"":n}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Ds(this.fullRuleNameToShort[e.name],r,n);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,n){const r=this.getLastExplicitRuleShortName();return Ds(r,e,n)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,n){this.lookAheadFuncsCache.set(e,n)}}class cA extends Cn{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const Zr=new cA;function fA(t){Zr.reset(),t.accept(Zr);const e=Zr.dslMethods;return Zr.reset(),e}function Dl(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset)}function Fl(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.startColumn=e.startColumn,t.startLine=e.startLine,t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine)}function dA(t,e,n){t.children[n]===void 0?t.children[n]=[e]:t.children[n].push(e)}function hA(t,e,n){t.children[e]===void 0?t.children[e]=[n]:t.children[e].push(n)}const pA="name";function jf(t,e){Object.defineProperty(t,pA,{enumerable:!1,configurable:!0,writable:!1,value:e})}function mA(t,e){const n=Le(t),r=n.length;for(let i=0;i<r;i++){const s=n[i],a=t[s],o=a.length;for(let l=0;l<o;l++){const u=a[l];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function gA(t,e){const n=function(){};jf(n,t+"BaseSemantics");const r={visit:function(i,s){if(P(i)&&(i=i[0]),!ut(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=TA(this,e);if(!U(i)){const s=k(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
|
|
88
|
+
${s.join(`
|
|
89
|
+
|
|
90
|
+
`).replace(/\n/g,`
|
|
91
|
+
`)}`)}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=e,n}function yA(t,e,n){const r=function(){};jf(r,t+"BaseSemanticsWithDefaults");const i=Object.create(n.prototype);return w(e,s=>{i[s]=mA}),r.prototype=i,r.prototype.constructor=r,r}var Ta;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(Ta||(Ta={}));function TA(t,e){return vA(t,e)}function vA(t,e){const n=Pe(e,i=>ft(t[i])===!1),r=k(n,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:Ta.MISSING_METHOD,methodName:i}));return br(r)}class RA{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=C(e,"nodeLocationTracking")?e.nodeLocationTracking:ct.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=X,this.cstFinallyStateUpdate=X,this.cstPostTerminal=X,this.cstPostNonTerminal=X,this.cstPostRule=X;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Fl,this.setNodeLocationFromNode=Fl,this.cstPostRule=X,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=X,this.setNodeLocationFromNode=X,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Dl,this.setNodeLocationFromNode=Dl,this.cstPostRule=X,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=X,this.setNodeLocationFromNode=X,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=X,this.setNodeLocationFromNode=X,this.cstPostRule=X,this.setInitialNodeLocation=X;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const n=this.LA(1);e.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const n={name:e,children:Object.create(null)};this.setInitialNodeLocation(n),this.CST_STACK.push(n)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=NaN}cstPostTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];dA(r,n,e),this.setNodeLocationFromToken(r.location,n)}cstPostNonTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];hA(r,n,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(ut(this.baseCstVisitorConstructor)){const e=gA(this.className,Le(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(ut(this.baseCstVisitorWithDefaultsConstructor)){const e=yA(this.className,Le(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class AA{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Oi}LA(e){const n=this.currIdx+e;return n<0||this.tokVectorLength<=n?Oi:this.tokVector[n]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class EA{ACTION(e){return e.call(this)}consume(e,n,r){return this.consumeInternal(n,e,r)}subrule(e,n,r){return this.subruleInternal(n,e,r)}option(e,n){return this.optionInternal(n,e)}or(e,n){return this.orInternal(n,e)}many(e,n){return this.manyInternal(e,n)}atLeastOne(e,n){return this.atLeastOneInternal(e,n)}CONSUME(e,n){return this.consumeInternal(e,0,n)}CONSUME1(e,n){return this.consumeInternal(e,1,n)}CONSUME2(e,n){return this.consumeInternal(e,2,n)}CONSUME3(e,n){return this.consumeInternal(e,3,n)}CONSUME4(e,n){return this.consumeInternal(e,4,n)}CONSUME5(e,n){return this.consumeInternal(e,5,n)}CONSUME6(e,n){return this.consumeInternal(e,6,n)}CONSUME7(e,n){return this.consumeInternal(e,7,n)}CONSUME8(e,n){return this.consumeInternal(e,8,n)}CONSUME9(e,n){return this.consumeInternal(e,9,n)}SUBRULE(e,n){return this.subruleInternal(e,0,n)}SUBRULE1(e,n){return this.subruleInternal(e,1,n)}SUBRULE2(e,n){return this.subruleInternal(e,2,n)}SUBRULE3(e,n){return this.subruleInternal(e,3,n)}SUBRULE4(e,n){return this.subruleInternal(e,4,n)}SUBRULE5(e,n){return this.subruleInternal(e,5,n)}SUBRULE6(e,n){return this.subruleInternal(e,6,n)}SUBRULE7(e,n){return this.subruleInternal(e,7,n)}SUBRULE8(e,n){return this.subruleInternal(e,8,n)}SUBRULE9(e,n){return this.subruleInternal(e,9,n)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,n,r=Li){if(de(this.definedRulesNames,e)){const a={message:_t.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:fe.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,n,r);return this[e]=i,i}OVERRIDE_RULE(e,n,r=Li){const i=VR(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,n,r);return this[e]=s,s}BACKTRACK(e,n){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,n),!0}catch(i){if(_i(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return _v(J(this.gastProductionsCache))}}class $A{initRecognizerEngine(e,n){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ni,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},C(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
|
|
92
|
+
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
|
|
93
|
+
For Further details.`);if(P(e)){if(U(e))throw Error(`A Token Vocabulary cannot be empty.
|
|
94
|
+
Note that the first argument for the parser constructor
|
|
95
|
+
is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
|
|
96
|
+
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
|
|
97
|
+
For Further details.`)}if(P(e))this.tokensMap=xe(e,(s,a)=>(s[a.name]=a,s),{});else if(C(e,"modes")&&Be(Ue(J(e.modes)),AR)){const s=Ue(J(e.modes)),a=go(s);this.tokensMap=xe(a,(o,l)=>(o[l.name]=l,o),{})}else if(Oe(e))this.tokensMap=ie(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=vt;const r=C(e,"modes")?Ue(J(e.modes)):J(e),i=Be(r,s=>U(s.categoryMatches));this.tokenMatcher=i?Ni:Lr,Pr(J(this.tokensMap))}defineRule(e,n,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
|
|
98
|
+
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=C(r,"resyncEnabled")?r.resyncEnabled:Li.resyncEnabled,s=C(r,"recoveryValueFunc")?r.recoveryValueFunc:Li.recoveryValueFunc,a=this.ruleShortNameIdx<<lA+$t;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...c){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),n.apply(this,c);const f=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(f),f}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...c){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),n.apply(this,c)}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:n})}invokeRuleCatch(e,n,r){const i=this.RULE_STACK.length===1,s=n&&!this.isBackTracking()&&this.recoveryEnabled;if(_i(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,n){const r=this.getKeyForAutomaticLookahead(Bf,n);return this.optionInternalLogic(e,n,r)}optionInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,n){const r=this.getKeyForAutomaticLookahead(ga,e);return this.atLeastOneInternalLogic(e,n,r)}atLeastOneInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const a=n.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=n;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,H.REPETITION_MANDATORY,n.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,n],i,ga,e,NR)}atLeastOneSepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(hi,e);this.atLeastOneSepFirstInternalLogic(e,n,r)}atLeastOneSepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Ll],o,hi,e,Ll)}else throw this.raiseEarlyExitException(e,H.REPETITION_MANDATORY_WITH_SEPARATOR,n.ERR_MSG)}manyInternal(e,n){const r=this.getKeyForAutomaticLookahead(ma,e);return this.manyInternalLogic(e,n,r)}manyInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const o=n.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=n;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,n],i,ma,e,wR,a)}manySepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(ya,e);this.manySepFirstInternalLogic(e,n,r)}manySepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Ol],o,ya,e,Ol)}}repetitionSepSecondInternal(e,n,r,i,s){for(;r();)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,n,r,i,s],r,hi,e,s)}doSingleRepetition(e){const n=this.getLexerPosition();return e.call(this),this.getLexerPosition()>n}orInternal(e,n){const r=this.getKeyForAutomaticLookahead(Uf,n),i=P(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(n,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),n=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new rA(n,e))}}subruleInternal(e,n,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=n,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,n,r){throw _i(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,n,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,n,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,n,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:n,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Ff(i,n,s))}consumeInternalRecovery(e,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,n);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Gf?r:s}}else throw r}saveRecogState(){const e=this.errors,n=ie(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,n,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(n)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),vt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class xA{initErrorHandler(e){this._errors=[],this.errorMessageProvider=C(e,"errorMessageProvider")?e.errorMessageProvider:ct.errorMessageProvider}SAVE_ERROR(e){if(_i(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ie(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ie(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,n,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=ps(e,s,n,this.maxLookahead)[0],l=[];for(let c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));const u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new iA(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,n){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=hs(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new nA(l,this.LA(1),o))}}class SA{initContentAssist(){}computeContentAssist(e,n){const r=this.gastProductionsCache[e];if(ut(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return kf([r],n,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const n=Ke(e.ruleStack),i=this.getGAstProductions()[n];return new CR(i,e).startWalking()}}const gs={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(gs);const Gl=!0,Ul=Math.pow(2,$t)-1,Kf=Sf({name:"RECORDING_PHASE_TOKEN",pattern:he.NA});Pr([Kf]);const Hf=To(Kf,`This IToken indicates the Parser is in Recording Phase
|
|
99
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Hf);const IA={name:`This CSTNode indicates the Parser is in Recording Phase
|
|
100
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class kA{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const n=e>0?e:"";this[`CONSUME${n}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${n}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${n}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${n}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${n}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${n}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${n}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${n}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,n,r){return this.consumeInternalRecord(n,e,r)},this.subrule=function(e,n,r){return this.subruleInternalRecord(n,e,r)},this.option=function(e,n){return this.optionInternalRecord(n,e)},this.or=function(e,n){return this.orInternalRecord(n,e)},this.many=function(e,n){this.manyInternalRecord(e,n)},this.atLeastOne=function(e,n){this.atLeastOneInternalRecord(e,n)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let n=0;n<10;n++){const r=n>0?n:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,n){return()=>!0}LA_RECORD(e){return Oi}topLevelRuleRecord(e,n){try{const r=new kn({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
|
|
101
|
+
This error was thrown during the "grammar recording phase" For more info see:
|
|
102
|
+
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,n){return bn.call(this,re,e,n)}atLeastOneInternalRecord(e,n){bn.call(this,Se,n,e)}atLeastOneSepFirstInternalRecord(e,n){bn.call(this,Ie,n,e,Gl)}manyInternalRecord(e,n){bn.call(this,z,n,e)}manySepFirstInternalRecord(e,n){bn.call(this,ge,n,e,Gl)}orInternalRecord(e,n){return CA.call(this,e,n)}subruleInternalRecord(e,n,r){if(bi(n),!e||C(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Bl(n)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
|
|
103
|
+
inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=vn(this.recordingProdStack),s=e.ruleName,a=new ce({idx:n,nonTerminalName:s,label:r==null?void 0:r.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?IA:gs}consumeInternalRecord(e,n,r){if(bi(n),!$f(e)){const a=new Error(`<CONSUME${Bl(n)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
|
|
104
|
+
inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=vn(this.recordingProdStack),s=new j({idx:n,terminalType:e,label:r==null?void 0:r.LABEL});return i.definition.push(s),Hf}}function bn(t,e,n,r=!1){bi(n);const i=vn(this.recordingProdStack),s=ft(e)?e:e.DEF,a=new t({definition:[],idx:n});return r&&(a.separator=e.SEP),C(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),gs}function CA(t,e){bi(e);const n=vn(this.recordingProdStack),r=P(t)===!1,i=r===!1?t:t.DEF,s=new ye({definition:[],idx:e,ignoreAmbiguities:r&&t.IGNORE_AMBIGUITIES===!0});C(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD);const a=ff(i,o=>ft(o.GATE));return s.hasPredicates=a,n.definition.push(s),w(i,o=>{const l=new me({definition:[]});s.definition.push(l),C(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:C(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),gs}function Bl(t){return t===0?"":`${t}`}function bi(t){if(t<0||t>Ul){const e=new Error(`Invalid DSL Method idx value: <${t}>
|
|
105
|
+
Idx value must be a none negative value smaller than ${Ul+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class wA{initPerformanceTracer(e){if(C(e,"traceInitPerf")){const n=e.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=ct.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,n){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=hf(n),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return n()}}function NA(t,e){e.forEach(n=>{const r=n.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(t.prototype,i,s):t.prototype[i]=n.prototype[i]})})}const Oi=To(vt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Oi);const ct=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Yt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Li=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var fe;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(fe||(fe={}));function jl(t=void 0){return function(){return t}}class Mr{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const n=this.className;this.TRACE_INIT("toFastProps",()=>{pf(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),w(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=eA({rules:J(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(U(r)&&this.skipValidations===!1){const i=tA({rules:J(this.gastProductionsCache),tokenTypes:J(this.tokensMap),errMsgProvider:_t,grammarName:n}),s=GR({lookaheadStrategy:this.lookaheadStrategy,rules:J(this.gastProductionsCache),tokenTypes:J(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(i,s)}}),U(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Fv(J(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:J(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(J(this.gastProductionsCache))})),!Mr.DEFER_DEFINITION_ERRORS_HANDLING&&!U(this.definitionErrors))throw e=k(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
|
|
106
|
+
${e.join(`
|
|
107
|
+
-------------------------------
|
|
108
|
+
`)}`)})}constructor(e,n){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(e,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initContentAssist(),r.initGastRecorder(n),r.initPerformanceTracer(n),C(n,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
|
|
109
|
+
Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
|
|
110
|
+
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
|
|
111
|
+
For further details.`);this.skipValidations=C(n,"skipValidations")?n.skipValidations:ct.skipValidations}}Mr.DEFER_DEFINITION_ERRORS_HANDLING=!1;NA(Mr,[aA,uA,RA,AA,$A,EA,xA,SA,kA,wA]);class _A extends Mr{constructor(e,n=ct){const r=ie(n);r.outputCst=!1,super(e,r)}}function An(t,e,n){return`${t.name}_${e}_${n}`}const Rt=1,bA=2,Vf=4,Wf=5,Dr=7,OA=8,LA=9,PA=10,MA=11,zf=12;class Eo{constructor(e){this.target=e}isEpsilon(){return!1}}class $o extends Eo{constructor(e,n){super(e),this.tokenType=n}}class qf extends Eo{constructor(e){super(e)}isEpsilon(){return!0}}class xo extends Eo{constructor(e,n,r){super(e),this.rule=n,this.followState=r}isEpsilon(){return!0}}function DA(t){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};FA(e,t);const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=Kt(e,i,i);s!==void 0&&YA(e,i,s)}return e}function FA(t,e){const n=e.length;for(let r=0;r<n;r++){const i=e[r],s=Q(t,i,void 0,{type:bA}),a=Q(t,i,void 0,{type:Dr});s.stop=a,t.ruleToStartState.set(i,s),t.ruleToStopState.set(i,a)}}function Yf(t,e,n){return n instanceof j?So(t,e,n.terminalType,n):n instanceof ce?qA(t,e,n):n instanceof ye?KA(t,e,n):n instanceof re?HA(t,e,n):n instanceof z?GA(t,e,n):n instanceof ge?UA(t,e,n):n instanceof Se?BA(t,e,n):n instanceof Ie?jA(t,e,n):Kt(t,e,n)}function GA(t,e,n){const r=Q(t,e,n,{type:Wf});xt(t,r);const i=wn(t,e,r,n,Kt(t,e,n));return Jf(t,e,n,i)}function UA(t,e,n){const r=Q(t,e,n,{type:Wf});xt(t,r);const i=wn(t,e,r,n,Kt(t,e,n)),s=So(t,e,n.separator,n);return Jf(t,e,n,i,s)}function BA(t,e,n){const r=Q(t,e,n,{type:Vf});xt(t,r);const i=wn(t,e,r,n,Kt(t,e,n));return Xf(t,e,n,i)}function jA(t,e,n){const r=Q(t,e,n,{type:Vf});xt(t,r);const i=wn(t,e,r,n,Kt(t,e,n)),s=So(t,e,n.separator,n);return Xf(t,e,n,i,s)}function KA(t,e,n){const r=Q(t,e,n,{type:Rt});xt(t,r);const i=Fe.map(n.definition,a=>Yf(t,e,a));return wn(t,e,r,n,...i)}function HA(t,e,n){const r=Q(t,e,n,{type:Rt});xt(t,r);const i=wn(t,e,r,n,Kt(t,e,n));return VA(t,e,n,i)}function Kt(t,e,n){const r=st.filter(Fe.map(n.definition,i=>Yf(t,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:zA(t,r)}function Xf(t,e,n,r,i){const s=r.left,a=r.right,o=Q(t,e,n,{type:MA});xt(t,o);const l=Q(t,e,n,{type:zf});return s.loopback=o,l.loopback=o,t.decisionMap[An(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=o,Y(a,o),i===void 0?(Y(o,s),Y(o,l)):(Y(o,l),Y(o,i.left),Y(i.right,s)),{left:s,right:l}}function Jf(t,e,n,r,i){const s=r.left,a=r.right,o=Q(t,e,n,{type:PA});xt(t,o);const l=Q(t,e,n,{type:zf}),u=Q(t,e,n,{type:LA});return o.loopback=u,l.loopback=u,Y(o,s),Y(o,l),Y(a,u),i!==void 0?(Y(u,l),Y(u,i.left),Y(i.right,s)):Y(u,o),t.decisionMap[An(e,i?"RepetitionWithSeparator":"Repetition",n.idx)]=o,{left:o,right:l}}function VA(t,e,n,r){const i=r.left,s=r.right;return Y(i,s),t.decisionMap[An(e,"Option",n.idx)]=i,r}function xt(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function wn(t,e,n,r,...i){const s=Q(t,e,r,{type:OA,start:n});n.end=s;for(const o of i)o!==void 0?(Y(n,o.left),Y(o.right,s)):Y(n,s);const a={left:n,right:s};return t.decisionMap[An(e,WA(r),r.idx)]=n,a}function WA(t){if(t instanceof ye)return"Alternation";if(t instanceof re)return"Option";if(t instanceof z)return"Repetition";if(t instanceof ge)return"RepetitionWithSeparator";if(t instanceof Se)return"RepetitionMandatory";if(t instanceof Ie)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function zA(t,e){const n=e.length;for(let s=0;s<n-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof xo,u=o,c=e[s+1].left;a.left.type===Rt&&a.right.type===Rt&&o!==void 0&&(l&&u.followState===a.right||o.target===a.right)?(l?u.followState=c:o.target=c,XA(t,a.right)):Y(a.right,c)}const r=e[0],i=e[n-1];return{left:r.left,right:i.right}}function So(t,e,n,r){const i=Q(t,e,r,{type:Rt}),s=Q(t,e,r,{type:Rt});return Io(i,new $o(s,n)),{left:i,right:s}}function qA(t,e,n){const r=n.referencedRule,i=t.ruleToStartState.get(r),s=Q(t,e,n,{type:Rt}),a=Q(t,e,n,{type:Rt}),o=new xo(i,r,a);return Io(s,o),{left:s,right:a}}function YA(t,e,n){const r=t.ruleToStartState.get(e);Y(r,n.left);const i=t.ruleToStopState.get(e);return Y(n.right,i),{left:r,right:i}}function Y(t,e){const n=new qf(e);Io(t,n)}function Q(t,e,n,r){const i=Object.assign({atn:t,production:n,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:t.states.length},r);return t.states.push(i),i}function Io(t,e){t.transitions.length===0&&(t.epsilonOnlyTransitions=e.isEpsilon()),t.transitions.push(e)}function XA(t,e){t.states.splice(t.states.indexOf(e),1)}const Pi={};class va{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const n=Zf(e);n in this.map||(this.map[n]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return Fe.map(this.configs,e=>e.alt)}get key(){let e="";for(const n in this.map)e+=n+":";return e}}function Zf(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(n=>n.stateNumber.toString()).join("_")}`}function JA(t,e){const n={};return r=>{const i=r.toString();let s=n[i];return s!==void 0||(s={atnStartState:t,decision:e,states:{}},n[i]=s),s}}class Qf{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,n){this.predicates[e]=n}toString(){let e="";const n=this.predicates.length;for(let r=0;r<n;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const Kl=new Qf;class ZA extends Ao{constructor(e){var n;super(),this.logging=(n=e==null?void 0:e.logging)!==null&&n!==void 0?n:r=>console.log(r)}initialize(e){this.atn=DA(e.rules),this.dfas=QA(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:n,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=An(r,"Alternation",n),c=this.atn.decisionMap[l].decision,f=Fe.map(Pl({maxLookahead:1,occurrence:n,prodType:"Alternation",rule:r}),d=>Fe.map(d,h=>h[0]));if(Hl(f,!1)&&!s){const d=st.reduce(f,(h,m,g)=>(st.forEach(m,R=>{R&&(h[R.tokenTypeIdx]=g,st.forEach(R.categoryMatches,y=>{h[y]=g}))}),h),{});return i?function(h){var m;const g=this.LA(1),R=d[g.tokenTypeIdx];if(h!==void 0&&R!==void 0){const y=(m=h[R])===null||m===void 0?void 0:m.GATE;if(y!==void 0&&y.call(this)===!1)return}return R}:function(){const h=this.LA(1);return d[h.tokenTypeIdx]}}else return i?function(d){const h=new Qf,m=d===void 0?0:d.length;for(let R=0;R<m;R++){const y=d==null?void 0:d[R].GATE;h.set(R,y===void 0||y.call(this))}const g=Fs.call(this,a,c,h,o);return typeof g=="number"?g:void 0}:function(){const d=Fs.call(this,a,c,Kl,o);return typeof d=="number"?d:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:n,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=An(r,i,n),c=this.atn.decisionMap[l].decision,f=Fe.map(Pl({maxLookahead:1,occurrence:n,prodType:i,rule:r}),d=>Fe.map(d,h=>h[0]));if(Hl(f)&&f[0][0]&&!s){const d=f[0],h=Fe.flatten(d);if(h.length===1&&zd.isEmpty(h[0].categoryMatches)){const g=h[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{const m=st.reduce(h,(g,R)=>(R!==void 0&&(g[R.tokenTypeIdx]=!0,st.forEach(R.categoryMatches,y=>{g[y]=!0})),g),{});return function(){const g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){const d=Fs.call(this,a,c,Kl,o);return typeof d=="object"?!1:d===0}}}function Hl(t,e=!0){const n=new Set;for(const r of t){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(n.has(o)){if(!i.has(o))return!1}else n.add(o),i.add(o)}}return!0}function QA(t){const e=t.decisionStates.length,n=Array(e);for(let r=0;r<e;r++)n[r]=JA(t.decisionStates[r],r);return n}function Fs(t,e,n,r){const i=t[e](n);let s=i.start;if(s===void 0){const o=cE(i.atnStartState);s=td(i,ed(o)),i.start=s}return eE.apply(this,[i,s,n,r])}function eE(t,e,n,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=aE(i,o);if(l===void 0&&(l=tE.apply(this,[t,i,o,s,n,r])),l===Pi)return sE(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function tE(t,e,n,r,i,s){const a=oE(e.configs,n,i);if(a.size===0)return Vl(t,e,n,Pi),Pi;let o=ed(a);const l=uE(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(pE(a)){const u=Fe.min(a.alts);o.isAcceptState=!0,o.prediction=u,o.configs.uniqueAlt=u,nE.apply(this,[t,r,a.alts,s])}return o=Vl(t,e,n,o),o}function nE(t,e,n,r){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=t.atnStartState,a=s.rule,o=s.production,l=rE({topLevelRule:a,ambiguityIndices:n,production:o,prefixPath:i});r(l)}function rE(t){const e=Fe.map(t.prefixPath,i=>Zt(i)).join(", "),n=t.production.idx===0?"":t.production.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${iE(t.production)}${n}> inside <${t.topLevelRule.name}> Rule,
|
|
112
|
+
<${e}> may appears as a prefix path in all these alternatives.
|
|
113
|
+
`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
114
|
+
For Further details.`,r}function iE(t){if(t instanceof ce)return"SUBRULE";if(t instanceof re)return"OPTION";if(t instanceof ye)return"OR";if(t instanceof Se)return"AT_LEAST_ONE";if(t instanceof Ie)return"AT_LEAST_ONE_SEP";if(t instanceof ge)return"MANY_SEP";if(t instanceof z)return"MANY";if(t instanceof j)return"CONSUME";throw Error("non exhaustive match")}function sE(t,e,n){const r=qd(e.configs.elements,s=>s.state.transitions),i=Yd(r.filter(s=>s instanceof $o).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:n,possibleTokenTypes:i,tokenPath:t}}function aE(t,e){return t.edges[e.tokenTypeIdx]}function oE(t,e,n){const r=new va,i=[];for(const a of t.elements){if(n.is(a.alt)===!1)continue;if(a.state.type===Dr){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const u=a.state.transitions[l],c=lE(u,e);c!==void 0&&r.add({state:c,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new va;for(const a of r.elements)Mi(a,s)}if(i.length>0&&!dE(s))for(const a of i)s.add(a);return s}function lE(t,e){if(t instanceof $o&&If(e,t.tokenType))return t.target}function uE(t,e){let n;for(const r of t.elements)if(e.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function ed(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function Vl(t,e,n,r){return r=td(t,r),e.edges[n.tokenTypeIdx]=r,r}function td(t,e){if(e===Pi)return e;const n=e.configs.key,r=t.states[n];return r!==void 0?r:(e.configs.finalize(),t.states[n]=e,e)}function cE(t){const e=new va,n=t.transitions.length;for(let r=0;r<n;r++){const s={state:t.transitions[r].target,alt:r,stack:[]};Mi(s,e)}return e}function Mi(t,e){const n=t.state;if(n.type===Dr){if(t.stack.length>0){const i=[...t.stack],a={state:i.pop(),alt:t.alt,stack:i};Mi(a,e)}else e.add(t);return}n.epsilonOnlyTransitions||e.add(t);const r=n.transitions.length;for(let i=0;i<r;i++){const s=n.transitions[i],a=fE(t,s);a!==void 0&&Mi(a,e)}}function fE(t,e){if(e instanceof qf)return{state:e.target,alt:t.alt,stack:t.stack};if(e instanceof xo){const n=[...t.stack,e.followState];return{state:e.target,alt:t.alt,stack:n}}}function dE(t){for(const e of t.elements)if(e.state.type===Dr)return!0;return!1}function hE(t){for(const e of t.elements)if(e.state.type!==Dr)return!1;return!0}function pE(t){if(hE(t))return!0;const e=mE(t.elements);return gE(e)&&!yE(e)}function mE(t){const e=new Map;for(const n of t){const r=Zf(n,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[n.alt]=!0}return e}function gE(t){for(const e of Array.from(t.values()))if(Object.keys(e).length>1)return!0;return!1}function yE(t){for(const e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var Wl;(function(t){function e(n){return typeof n=="string"}t.is=e})(Wl||(Wl={}));var Ra;(function(t){function e(n){return typeof n=="string"}t.is=e})(Ra||(Ra={}));var zl;(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(zl||(zl={}));var Di;(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(Di||(Di={}));var D;(function(t){function e(r,i){return r===Number.MAX_VALUE&&(r=Di.MAX_VALUE),i===Number.MAX_VALUE&&(i=Di.MAX_VALUE),{line:r,character:i}}t.create=e;function n(r){let i=r;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}t.is=n})(D||(D={}));var L;(function(t){function e(r,i,s,a){if(p.uinteger(r)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:D.create(r,i),end:D.create(s,a)};if(D.is(r)&&D.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}t.create=e;function n(r){let i=r;return p.objectLiteral(i)&&D.is(i.start)&&D.is(i.end)}t.is=n})(L||(L={}));var Fi;(function(t){function e(r,i){return{uri:r,range:i}}t.create=e;function n(r){let i=r;return p.objectLiteral(i)&&L.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}t.is=n})(Fi||(Fi={}));var ql;(function(t){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}t.create=e;function n(r){let i=r;return p.objectLiteral(i)&&L.is(i.targetRange)&&p.string(i.targetUri)&&L.is(i.targetSelectionRange)&&(L.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}t.is=n})(ql||(ql={}));var Aa;(function(t){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}t.is=n})(Aa||(Aa={}));var Yl;(function(t){function e(r,i){return{range:r,color:i}}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&L.is(i.range)&&Aa.is(i.color)}t.is=n})(Yl||(Yl={}));var Xl;(function(t){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||$n.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,$n.is))}t.is=n})(Xl||(Xl={}));var Jl;(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(Jl||(Jl={}));var Zl;(function(t){function e(r,i,s,a,o,l){const u={startLine:r,endLine:i};return p.defined(s)&&(u.startCharacter=s),p.defined(a)&&(u.endCharacter=a),p.defined(o)&&(u.kind=o),p.defined(l)&&(u.collapsedText=l),u}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}t.is=n})(Zl||(Zl={}));var Ea;(function(t){function e(r,i){return{location:r,message:i}}t.create=e;function n(r){let i=r;return p.defined(i)&&Fi.is(i.location)&&p.string(i.message)}t.is=n})(Ea||(Ea={}));var Ql;(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(Ql||(Ql={}));var eu;(function(t){t.Unnecessary=1,t.Deprecated=2})(eu||(eu={}));var tu;(function(t){function e(n){const r=n;return p.objectLiteral(r)&&p.string(r.href)}t.is=e})(tu||(tu={}));var Gi;(function(t){function e(r,i,s,a,o,l){let u={range:r,message:i};return p.defined(s)&&(u.severity=s),p.defined(a)&&(u.code=a),p.defined(o)&&(u.source=o),p.defined(l)&&(u.relatedInformation=l),u}t.create=e;function n(r){var i;let s=r;return p.defined(s)&&L.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,Ea.is))}t.is=n})(Gi||(Gi={}));var En;(function(t){function e(r,i,...s){let a={title:r,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}t.create=e;function n(r){let i=r;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}t.is=n})(En||(En={}));var $n;(function(t){function e(s,a){return{range:s,newText:a}}t.replace=e;function n(s,a){return{range:{start:s,end:s},newText:a}}t.insert=n;function r(s){return{range:s,newText:""}}t.del=r;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&L.is(a.range)}t.is=i})($n||($n={}));var $a;(function(t){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}t.is=n})($a||($a={}));var xn;(function(t){function e(n){const r=n;return p.string(r)}t.is=e})(xn||(xn={}));var nu;(function(t){function e(s,a,o){return{range:s,newText:a,annotationId:o}}t.replace=e;function n(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}t.insert=n;function r(s,a){return{range:s,newText:"",annotationId:a}}t.del=r;function i(s){const a=s;return $n.is(a)&&($a.is(a.annotationId)||xn.is(a.annotationId))}t.is=i})(nu||(nu={}));var xa;(function(t){function e(r,i){return{textDocument:r,edits:i}}t.create=e;function n(r){let i=r;return p.defined(i)&&wa.is(i.textDocument)&&Array.isArray(i.edits)}t.is=n})(xa||(xa={}));var Sa;(function(t){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}t.create=e;function n(r){let i=r;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xn.is(i.annotationId))}t.is=n})(Sa||(Sa={}));var Ia;(function(t){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}t.create=e;function n(r){let i=r;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xn.is(i.annotationId))}t.is=n})(Ia||(Ia={}));var ka;(function(t){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}t.create=e;function n(r){let i=r;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||xn.is(i.annotationId))}t.is=n})(ka||(ka={}));var Ca;(function(t){function e(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>p.string(i.kind)?Sa.is(i)||Ia.is(i)||ka.is(i):xa.is(i)))}t.is=e})(Ca||(Ca={}));var ru;(function(t){function e(r){return{uri:r}}t.create=e;function n(r){let i=r;return p.defined(i)&&p.string(i.uri)}t.is=n})(ru||(ru={}));var iu;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}t.is=n})(iu||(iu={}));var wa;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}t.is=n})(wa||(wa={}));var su;(function(t){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}t.create=e;function n(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}t.is=n})(su||(su={}));var Na;(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(n){const r=n;return r===t.PlainText||r===t.Markdown}t.is=e})(Na||(Na={}));var $r;(function(t){function e(n){const r=n;return p.objectLiteral(n)&&Na.is(r.kind)&&p.string(r.value)}t.is=e})($r||($r={}));var au;(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(au||(au={}));var ou;(function(t){t.PlainText=1,t.Snippet=2})(ou||(ou={}));var lu;(function(t){t.Deprecated=1})(lu||(lu={}));var uu;(function(t){function e(r,i,s){return{newText:r,insert:i,replace:s}}t.create=e;function n(r){const i=r;return i&&p.string(i.newText)&&L.is(i.insert)&&L.is(i.replace)}t.is=n})(uu||(uu={}));var cu;(function(t){t.asIs=1,t.adjustIndentation=2})(cu||(cu={}));var fu;(function(t){function e(n){const r=n;return r&&(p.string(r.detail)||r.detail===void 0)&&(p.string(r.description)||r.description===void 0)}t.is=e})(fu||(fu={}));var du;(function(t){function e(n){return{label:n}}t.create=e})(du||(du={}));var hu;(function(t){function e(n,r){return{items:n||[],isIncomplete:!!r}}t.create=e})(hu||(hu={}));var Ui;(function(t){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}t.fromPlainText=e;function n(r){const i=r;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}t.is=n})(Ui||(Ui={}));var pu;(function(t){function e(n){let r=n;return!!r&&p.objectLiteral(r)&&($r.is(r.contents)||Ui.is(r.contents)||p.typedArray(r.contents,Ui.is))&&(n.range===void 0||L.is(n.range))}t.is=e})(pu||(pu={}));var mu;(function(t){function e(n,r){return r?{label:n,documentation:r}:{label:n}}t.create=e})(mu||(mu={}));var gu;(function(t){function e(n,r,...i){let s={label:n};return p.defined(r)&&(s.documentation=r),p.defined(i)?s.parameters=i:s.parameters=[],s}t.create=e})(gu||(gu={}));var yu;(function(t){t.Text=1,t.Read=2,t.Write=3})(yu||(yu={}));var Tu;(function(t){function e(n,r){let i={range:n};return p.number(r)&&(i.kind=r),i}t.create=e})(Tu||(Tu={}));var vu;(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(vu||(vu={}));var Ru;(function(t){t.Deprecated=1})(Ru||(Ru={}));var Au;(function(t){function e(n,r,i,s,a){let o={name:n,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}t.create=e})(Au||(Au={}));var Eu;(function(t){function e(n,r,i,s){return s!==void 0?{name:n,kind:r,location:{uri:i,range:s}}:{name:n,kind:r,location:{uri:i}}}t.create=e})(Eu||(Eu={}));var $u;(function(t){function e(r,i,s,a,o,l){let u={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(u.children=l),u}t.create=e;function n(r){let i=r;return i&&p.string(i.name)&&p.number(i.kind)&&L.is(i.range)&&L.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}t.is=n})($u||($u={}));var xu;(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(xu||(xu={}));var Bi;(function(t){t.Invoked=1,t.Automatic=2})(Bi||(Bi={}));var Su;(function(t){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}t.create=e;function n(r){let i=r;return p.defined(i)&&p.typedArray(i.diagnostics,Gi.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Bi.Invoked||i.triggerKind===Bi.Automatic)}t.is=n})(Su||(Su={}));var Iu;(function(t){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):En.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}t.create=e;function n(r){let i=r;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,Gi.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||En.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||Ca.is(i.edit))}t.is=n})(Iu||(Iu={}));var ku;(function(t){function e(r,i){let s={range:r};return p.defined(i)&&(s.data=i),s}t.create=e;function n(r){let i=r;return p.defined(i)&&L.is(i.range)&&(p.undefined(i.command)||En.is(i.command))}t.is=n})(ku||(ku={}));var Cu;(function(t){function e(r,i){return{tabSize:r,insertSpaces:i}}t.create=e;function n(r){let i=r;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}t.is=n})(Cu||(Cu={}));var wu;(function(t){function e(r,i,s){return{range:r,target:i,data:s}}t.create=e;function n(r){let i=r;return p.defined(i)&&L.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}t.is=n})(wu||(wu={}));var Nu;(function(t){function e(r,i){return{range:r,parent:i}}t.create=e;function n(r){let i=r;return p.objectLiteral(i)&&L.is(i.range)&&(i.parent===void 0||t.is(i.parent))}t.is=n})(Nu||(Nu={}));var _u;(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(_u||(_u={}));var bu;(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(bu||(bu={}));var Ou;(function(t){function e(n){const r=n;return p.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}t.is=e})(Ou||(Ou={}));var Lu;(function(t){function e(r,i){return{range:r,text:i}}t.create=e;function n(r){const i=r;return i!=null&&L.is(i.range)&&p.string(i.text)}t.is=n})(Lu||(Lu={}));var Pu;(function(t){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}t.create=e;function n(r){const i=r;return i!=null&&L.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}t.is=n})(Pu||(Pu={}));var Mu;(function(t){function e(r,i){return{range:r,expression:i}}t.create=e;function n(r){const i=r;return i!=null&&L.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}t.is=n})(Mu||(Mu={}));var Du;(function(t){function e(r,i){return{frameId:r,stoppedLocation:i}}t.create=e;function n(r){const i=r;return p.defined(i)&&L.is(r.stoppedLocation)}t.is=n})(Du||(Du={}));var _a;(function(t){t.Type=1,t.Parameter=2;function e(n){return n===1||n===2}t.is=e})(_a||(_a={}));var ba;(function(t){function e(r){return{value:r}}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||$r.is(i.tooltip))&&(i.location===void 0||Fi.is(i.location))&&(i.command===void 0||En.is(i.command))}t.is=n})(ba||(ba={}));var Fu;(function(t){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}t.create=e;function n(r){const i=r;return p.objectLiteral(i)&&D.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,ba.is))&&(i.kind===void 0||_a.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,$n.is)&&(i.tooltip===void 0||p.string(i.tooltip)||$r.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}t.is=n})(Fu||(Fu={}));var Gu;(function(t){function e(n){return{kind:"snippet",value:n}}t.createSnippet=e})(Gu||(Gu={}));var Uu;(function(t){function e(n,r,i,s){return{insertText:n,filterText:r,range:i,command:s}}t.create=e})(Uu||(Uu={}));var Bu;(function(t){function e(n){return{items:n}}t.create=e})(Bu||(Bu={}));var ju;(function(t){t.Invoked=0,t.Automatic=1})(ju||(ju={}));var Ku;(function(t){function e(n,r){return{range:n,text:r}}t.create=e})(Ku||(Ku={}));var Hu;(function(t){function e(n,r){return{triggerKind:n,selectedCompletionInfo:r}}t.create=e})(Hu||(Hu={}));var Vu;(function(t){function e(n){const r=n;return p.objectLiteral(r)&&Ra.is(r.uri)&&p.string(r.name)}t.is=e})(Vu||(Vu={}));var Wu;(function(t){function e(s,a,o,l){return new TE(s,a,o,l)}t.create=e;function n(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}t.is=n;function r(s,a){let o=s.getText(),l=i(a,(c,f)=>{let d=c.range.start.line-f.range.start.line;return d===0?c.range.start.character-f.range.start.character:d}),u=o.length;for(let c=l.length-1;c>=0;c--){let f=l[c],d=s.offsetAt(f.range.start),h=s.offsetAt(f.range.end);if(h<=u)o=o.substring(0,d)+f.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");u=d}return o}t.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),u=s.slice(o);i(l,a),i(u,a);let c=0,f=0,d=0;for(;c<l.length&&f<u.length;)a(l[c],u[f])<=0?s[d++]=l[c++]:s[d++]=u[f++];for(;c<l.length;)s[d++]=l[c++];for(;f<u.length;)s[d++]=u[f++];return s}})(Wu||(Wu={}));let TE=class{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,r=!0;for(let i=0;i<n.length;i++){r&&(e.push(i),r=!1);let s=n.charAt(i);r=s==="\r"||s===`
|
|
115
|
+
`,s==="\r"&&i+1<n.length&&n.charAt(i+1)===`
|
|
116
|
+
`&&i++}r&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return D.create(0,e);for(;r<i;){let a=Math.floor((r+i)/2);n[a]>e?i=a:r=a+1}let s=r-1;return D.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var p;(function(t){const e=Object.prototype.toString;function n(h){return typeof h<"u"}t.defined=n;function r(h){return typeof h>"u"}t.undefined=r;function i(h){return h===!0||h===!1}t.boolean=i;function s(h){return e.call(h)==="[object String]"}t.string=s;function a(h){return e.call(h)==="[object Number]"}t.number=a;function o(h,m,g){return e.call(h)==="[object Number]"&&m<=h&&h<=g}t.numberRange=o;function l(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}t.integer=l;function u(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}t.uinteger=u;function c(h){return e.call(h)==="[object Function]"}t.func=c;function f(h){return h!==null&&typeof h=="object"}t.objectLiteral=f;function d(h,m){return Array.isArray(h)&&h.every(m)}t.typedArray=d})(p||(p={}));class vE{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new rd(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const n=new ko;return n.grammarSource=e,n.root=this.rootNode,this.current.content.push(n),this.nodeStack.push(n),n}buildLeafNode(e,n){const r=new Oa(e.startOffset,e.image.length,na(e),e.tokenType,!n);return r.grammarSource=n,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const n=e.container;if(n){const r=n.content.indexOf(e);r>=0&&n.content.splice(r,1)}}addHiddenNodes(e){const n=[];for(const s of e){const a=new Oa(s.startOffset,s.image.length,na(s),s.tokenType,!0);a.root=this.rootNode,n.push(a)}let r=this.current,i=!1;if(r.content.length>0){r.content.push(...n);return}for(;r.container;){const s=r.container.content.indexOf(r);if(s>0){r.container.content.splice(s,0,...n),i=!0;break}r=r.container}i||this.rootNode.content.unshift(...n)}construct(e){const n=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=n;const r=this.nodeStack.pop();(r==null?void 0:r.content.length)===0&&this.removeNode(r)}}class nd{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,n;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(n=this.container)===null||n===void 0?void 0:n.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Oa extends nd{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,n,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=n,this._range=r}}class ko extends nd{constructor(){super(...arguments),this.content=new Co(this)}get children(){return this.content}get offset(){var e,n;return(n=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&n!==void 0?n:0}get length(){return this.end-this.offset}get end(){var e,n;return(n=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&n!==void 0?n:0}get range(){const e=this.firstNonHiddenNode,n=this.lastNonHiddenNode;if(e&&n){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=n;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:D.create(0,0),end:D.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const n=this.content[e];if(!n.hidden)return n}return this.content[this.content.length-1]}}class Co extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Co.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,n,...r){return this.addParents(r),super.splice(e,n,...r)}addParents(e){for(const n of e)n.container=this.parent}}class rd extends ko{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const La=Symbol("Datatype");function Gs(t){return t.$type===La}const zu="",id=t=>t.endsWith(zu)?t:t+zu;class sd{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const n=this.lexer.definition,r=e.LanguageMetaData.mode==="production";this.wrapper=new xE(n,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,n){this.wrapper.wrapOr(e,n)}optional(e,n){this.wrapper.wrapOption(e,n)}many(e,n){this.wrapper.wrapMany(e,n)}atLeastOne(e,n){this.wrapper.wrapAtLeastOne(e,n)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class RE extends sd{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new vE,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,n){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(id(e.name),this.startImplementation(r,n).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Oc(e))return La;{const n=qa(e);return n??e.name}}}parse(e,n={}){this.nodeBuilder.buildRootNode(e);const r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=n.rule?this.allRules.get(n.rule):this.mainRule;if(!i)throw new Error(n.rule?`No rule found with name '${n.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,n){return r=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===La&&(a.value="")}let s;try{s=n(r)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const n=this.lexerResult.hidden;if(!n.length)return[];const r=e.startOffset;for(let i=0;i<n.length;i++)if(n[i].startOffset>r)return n.splice(0,i);return n.splice(0,n.length)}consume(e,n,r){const i=this.wrapper.wrapConsume(e,n);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:l}=this.getAssignment(r),u=this.current;if(o){const c=Ot(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,c,a,l)}else if(Gs(u)){let c=i.image;Ot(r)||(c=this.converter.convert(c,a).toString()),u.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,n,r,i,s){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,n,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,n,r){const{assignment:i,isCrossRef:s}=this.getAssignment(n);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(Gs(a))a.value+=e.toString();else if(typeof e=="object"&&e){const l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,n){if(!this.isRecording()){let r=this.current;if(n.feature&&n.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(n).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(n.operator,n.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Eh(e),this.nodeBuilder.construct(e),this.stack.pop(),Gs(e)?this.converter.convert(e.value,e.$cstNode):($h(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const n=Yi(e,bt);this.assignmentMap.set(e,{assignment:n,isCrossRef:n?Ha(n.terminal):!1})}return this.assignmentMap.get(e)}assign(e,n,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,n,i,r):o=r,e){case"=":{a[n]=o;break}case"?=":{a[n]=!0;break}case"+=":Array.isArray(a[n])||(a[n]=[]),a[n].push(o)}}assignWithoutOverride(e,n){for(const[i,s]of Object.entries(n)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class AE{buildMismatchTokenMessage(e){return Yt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Yt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Yt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Yt.buildEarlyExitMessage(e)}}class ad extends AE{buildMismatchTokenMessage({expected:e,actual:n}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class EE extends sd{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const n=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,n){const r=this.wrapper.DEFINE_RULE(id(e.name),this.startImplementation(n).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return n=>{const r=this.keepStackSize();try{e(n)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,n,r){this.wrapper.wrapConsume(e,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,n,r,i,s){this.before(i),this.wrapper.wrapSubrule(e,n,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const n=this.elementStack.lastIndexOf(e);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}}const $E={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new ad};class xE extends _A{constructor(e,n){const r=n&&"maxLookahead"in n;super(e,Object.assign(Object.assign(Object.assign({},$E),{lookaheadStrategy:r?new Ao({maxLookahead:n.maxLookahead}):new ZA({logging:n.skipValidations?()=>{}:void 0})}),n))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,n){return this.RULE(e,n)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,n){return this.consume(e,n)}wrapSubrule(e,n,r){return this.subrule(e,n,{ARGS:[r]})}wrapOr(e,n){this.or(e,n)}wrapOption(e,n){this.option(e,n)}wrapMany(e,n){this.many(e,n)}wrapAtLeastOne(e,n){this.atLeastOne(e,n)}}function od(t,e,n){return SE({parser:e,tokens:n,ruleNames:new Map},t),e}function SE(t,e){const n=Cc(e,!1),r=ne(e.rules).filter(_e).filter(i=>n.has(i));for(const i of r){const s=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(i,Dt(s,i.definition))}}function Dt(t,e,n=!1){let r;if(Ot(e))r=bE(t,e);else if(qi(e))r=IE(t,e);else if(bt(e))r=Dt(t,e.terminal);else if(Ha(e))r=ld(t,e);else if(Lt(e))r=kE(t,e);else if(Ec(e))r=wE(t,e);else if($c(e))r=NE(t,e);else if(Va(e))r=_E(t,e);else if(ph(e)){const i=t.consume++;r=()=>t.parser.consume(i,vt,e)}else throw new Tc(e.$cstNode,`Unexpected element type: ${e.$type}`);return ud(t,n?void 0:ji(e),r,e.cardinality)}function IE(t,e){const n=Ya(e);return()=>t.parser.action(n,e)}function kE(t,e){const n=e.rule.ref;if(_e(n)){const r=t.subrule++,i=n.fragment,s=e.arguments.length>0?CE(n,e.arguments):()=>({});return a=>t.parser.subrule(r,cd(t,n),i,e,s(a))}else if(Gt(n)){const r=t.consume++,i=Pa(t,n.name);return()=>t.parser.consume(r,i,e)}else if(n)Ir();else throw new Tc(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function CE(t,e){const n=e.map(r=>at(r.value));return r=>{const i={};for(let s=0;s<n.length;s++){const a=t.parameters[s],o=n[s];i[a.name]=o(r)}return i}}function at(t){if(lh(t)){const e=at(t.left),n=at(t.right);return r=>e(r)||n(r)}else if(oh(t)){const e=at(t.left),n=at(t.right);return r=>e(r)&&n(r)}else if(uh(t)){const e=at(t.value);return n=>!e(n)}else if(ch(t)){const e=t.parameter.ref.name;return n=>n!==void 0&&n[e]===!0}else if(ah(t)){const e=!!t.true;return()=>e}Ir()}function wE(t,e){if(e.elements.length===1)return Dt(t,e.elements[0]);{const n=[];for(const i of e.elements){const s={ALT:Dt(t,i,!0)},a=ji(i);a&&(s.GATE=at(a)),n.push(s)}const r=t.or++;return i=>t.parser.alternatives(r,n.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function NE(t,e){if(e.elements.length===1)return Dt(t,e.elements[0]);const n=[];for(const o of e.elements){const l={ALT:Dt(t,o,!0)},u=ji(o);u&&(l.GATE=at(u)),n.push(l)}const r=t.or++,i=(o,l)=>{const u=l.getRuleStack().join("-");return`uGroup_${o}_${u}`},s=o=>t.parser.alternatives(r,n.map((l,u)=>{const c={ALT:()=>!0},f=t.parser;c.ALT=()=>{if(l.ALT(o),!f.isRecording()){const h=i(r,f);f.unorderedGroups.get(h)||f.unorderedGroups.set(h,[]);const m=f.unorderedGroups.get(h);typeof(m==null?void 0:m[u])>"u"&&(m[u]=!0)}};const d=l.GATE;return d?c.GATE=()=>d(o):c.GATE=()=>{const h=f.unorderedGroups.get(i(r,f));return!(h!=null&&h[u])},c})),a=ud(t,ji(e),s,"*");return o=>{a(o),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(r,t.parser))}}function _E(t,e){const n=e.elements.map(r=>Dt(t,r));return r=>n.forEach(i=>i(r))}function ji(t){if(Va(t))return t.guardCondition}function ld(t,e,n=e.terminal){if(n)if(Lt(n)&&_e(n.rule.ref)){const r=n.rule.ref,i=t.subrule++;return s=>t.parser.subrule(i,cd(t,r),!1,e,s)}else if(Lt(n)&&Gt(n.rule.ref)){const r=t.consume++,i=Pa(t,n.rule.ref.name);return()=>t.parser.consume(r,i,e)}else if(Ot(n)){const r=t.consume++,i=Pa(t,n.value);return()=>t.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=_c(e.type.ref),i=r==null?void 0:r.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Ya(e.type.ref));return ld(t,e,i)}}function bE(t,e){const n=t.consume++,r=t.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(n,r,e)}function ud(t,e,n,r){const i=e&&at(e);if(!r)if(i){const s=t.or++;return a=>t.parser.alternatives(s,[{ALT:()=>n(a),GATE:()=>i(a)},{ALT:jl(),GATE:()=>!i(a)}])}else return n;if(r==="*"){const s=t.many++;return a=>t.parser.many(s,{DEF:()=>n(a),GATE:i?()=>i(a):void 0})}else if(r==="+"){const s=t.many++;if(i){const a=t.or++;return o=>t.parser.alternatives(a,[{ALT:()=>t.parser.atLeastOne(s,{DEF:()=>n(o)}),GATE:()=>i(o)},{ALT:jl(),GATE:()=>!i(o)}])}else return a=>t.parser.atLeastOne(s,{DEF:()=>n(a)})}else if(r==="?"){const s=t.optional++;return a=>t.parser.optional(s,{DEF:()=>n(a),GATE:i?()=>i(a):void 0})}else Ir()}function cd(t,e){const n=OE(t,e),r=t.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function OE(t,e){if(_e(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let n=e,r=n.$container,i=e.$type;for(;!_e(r);)(Va(r)||Ec(r)||$c(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,t.ruleNames.set(e,i),i}}function Pa(t,e){const n=t.tokens[e];if(!n)throw new Error(`Token "${e}" not found."`);return n}function LE(t){const e=t.Grammar,n=t.parser.Lexer,r=new EE(t);return od(e,r,n.definition),r.finalize(),r}function PE(t){const e=ME(t);return e.finalize(),e}function ME(t){const e=t.Grammar,n=t.parser.Lexer,r=new RE(t);return od(e,r,n.definition)}class fd{constructor(){this.diagnostics=[]}buildTokens(e,n){const r=ne(Cc(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,n);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&ia(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Gt).filter(n=>!n.fragment).map(n=>this.buildTerminalToken(n)).toArray()}buildTerminalToken(e){const n=Xa(e),r=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=ia(n)?he.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const n=new RegExp(e,e.flags+"y");return(r,i)=>(n.lastIndex=i,n.exec(r))}buildKeywordTokens(e,n,r){return e.filter(_e).flatMap(i=>kr(i).filter(Ot)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,n,!!(r!=null&&r.caseInsensitive)))}buildKeywordToken(e,n,r){const i=this.buildKeywordPattern(e,r),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,n)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,n){return n?new RegExp(bh(e.value)):e.value}findLongerAlt(e,n){return n.reduce((r,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&Oh("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class dd{convert(e,n){let r=n.grammarSource;if(Ha(r)&&(r=Dh(r)),Lt(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,n)}return e}runConverter(e,n,r){var i;switch(e.name.toUpperCase()){case"INT":return nt.convertInt(n);case"STRING":return nt.convertString(n);case"ID":return nt.convertID(n)}switch((i=Hh(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return nt.convertNumber(n);case"boolean":return nt.convertBoolean(n);case"bigint":return nt.convertBigint(n);case"date":return nt.convertDate(n);default:return n}}}var nt;(function(t){function e(u){let c="";for(let f=1;f<u.length-1;f++){const d=u.charAt(f);if(d==="\\"){const h=u.charAt(++f);c+=n(h)}else c+=d}return c}t.convertString=e;function n(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
|
|
117
|
+
`;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function r(u){return u.charAt(0)==="^"?u.substring(1):u}t.convertID=r;function i(u){return parseInt(u)}t.convertInt=i;function s(u){return BigInt(u)}t.convertBigint=s;function a(u){return new Date(u)}t.convertDate=a;function o(u){return Number(u)}t.convertNumber=o;function l(u){return u.toLowerCase()==="true"}t.convertBoolean=l})(nt||(nt={}));var xr={},ys={};Object.defineProperty(ys,"__esModule",{value:!0});let Ma;function Da(){if(Ma===void 0)throw new Error("No runtime abstraction layer installed");return Ma}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");Ma=n}t.install=e})(Da||(Da={}));ys.default=Da;var oe={};Object.defineProperty(oe,"__esModule",{value:!0});oe.stringArray=oe.array=oe.func=oe.error=oe.number=oe.string=oe.boolean=void 0;function DE(t){return t===!0||t===!1}oe.boolean=DE;function hd(t){return typeof t=="string"||t instanceof String}oe.string=hd;function FE(t){return typeof t=="number"||t instanceof Number}oe.number=FE;function GE(t){return t instanceof Error}oe.error=GE;function UE(t){return typeof t=="function"}oe.func=UE;function pd(t){return Array.isArray(t)}oe.array=pd;function BE(t){return pd(t)&&t.every(e=>hd(e))}oe.stringArray=BE;var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0});var md=Sn.Emitter=Sn.Event=void 0;const jE=ys;var qu;(function(t){const e={dispose(){}};t.None=function(){return e}})(qu||(Sn.Event=qu={}));class KE{add(e,n=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(r)&&r.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let r=!1;for(let i=0,s=this._callbacks.length;i<s;i++)if(this._callbacks[i]===e)if(this._contexts[i]===n){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else r=!0;if(r)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];const n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let s=0,a=r.length;s<a;s++)try{n.push(r[s].apply(i[s],e))}catch(o){(0,jE.default)().console.error(o)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class Ts{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,n,r)=>{this._callbacks||(this._callbacks=new KE),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);const i={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),i.dispose=Ts._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}md=Sn.Emitter=Ts;Ts._noop=function(){};var V;Object.defineProperty(xr,"__esModule",{value:!0});var wo=xr.CancellationTokenSource=V=xr.CancellationToken=void 0;const HE=ys,VE=oe,Fa=Sn;var Ki;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Fa.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Fa.Event.None});function e(n){const r=n;return r&&(r===t.None||r===t.Cancelled||VE.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}t.is=e})(Ki||(V=xr.CancellationToken=Ki={}));const WE=Object.freeze(function(t,e){const n=(0,HE.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}});class Yu{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?WE:(this._emitter||(this._emitter=new Fa.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class zE{get token(){return this._token||(this._token=new Yu),this._token}cancel(){this._token?this._token.cancel():this._token=Ki.Cancelled}dispose(){this._token?this._token instanceof Yu&&this._token.dispose():this._token=Ki.None}}wo=xr.CancellationTokenSource=zE;function qE(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}let pi=0,YE=10;function XE(){return pi=performance.now(),new wo}const Hi=Symbol("OperationCancelled");function vs(t){return t===Hi}async function Ee(t){if(t===V.None)return;const e=performance.now();if(e-pi>=YE&&(pi=e,await qE(),pi=performance.now()),t.isCancellationRequested)throw Hi}class No{constructor(){this.promise=new Promise((e,n)=>{this.resolve=r=>(e(r),this),this.reject=r=>(n(r),this)})}}class Sr{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){for(const r of e)if(Sr.isIncremental(r)){const i=yd(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let u=this._lineOffsets;const c=Xu(r.text,!1,s);if(l-o===c.length)for(let d=0,h=c.length;d<h;d++)u[d+o+1]=c[d];else c.length<1e4?u.splice(o+1,l-o,...c):this._lineOffsets=u=u.slice(0,o+1).concat(c,u.slice(l+1));const f=r.text.length-(a-s);if(f!==0)for(let d=o+1+c.length,h=u.length;d<h;d++)u[d]=u[d]+f}else if(Sr.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Xu(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const n=this.getLineOffsets();let r=0,i=n.length;if(i===0)return{line:0,character:e};for(;r<i;){const a=Math.floor((r+i)/2);n[a]>e?i=a:r=a+1}const s=r-1;return e=this.ensureBeforeEOL(e,n[s]),{line:s,character:e-n[s]}}offsetAt(e){const n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;const r=n[e.line];if(e.character<=0)return r;const i=e.line+1<n.length?n[e.line+1]:this._content.length,s=Math.min(r+e.character,i);return this.ensureBeforeEOL(s,r)}ensureBeforeEOL(e,n){for(;e>n&&gd(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){const n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}}var Ga;(function(t){function e(i,s,a,o){return new Sr(i,s,a,o)}t.create=e;function n(i,s,a){if(i instanceof Sr)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function r(i,s){const a=i.getText(),o=Ua(s.map(JE),(c,f)=>{const d=c.range.start.line-f.range.start.line;return d===0?c.range.start.character-f.range.start.character:d});let l=0;const u=[];for(const c of o){const f=i.offsetAt(c.range.start);if(f<l)throw new Error("Overlapping edit");f>l&&u.push(a.substring(l,f)),c.newText.length&&u.push(c.newText),l=i.offsetAt(c.range.end)}return u.push(a.substr(l)),u.join("")}t.applyEdits=r})(Ga||(Ga={}));function Ua(t,e){if(t.length<=1)return t;const n=t.length/2|0,r=t.slice(0,n),i=t.slice(n);Ua(r,e),Ua(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)e(r[s],i[a])<=0?t[o++]=r[s++]:t[o++]=i[a++];for(;s<r.length;)t[o++]=r[s++];for(;a<i.length;)t[o++]=i[a++];return t}function Xu(t,e,n=0){const r=e?[n]:[];for(let i=0;i<t.length;i++){const s=t.charCodeAt(i);gd(s)&&(s===13&&i+1<t.length&&t.charCodeAt(i+1)===10&&i++,r.push(n+i+1))}return r}function gd(t){return t===13||t===10}function yd(t){const e=t.start,n=t.end;return e.line>n.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function JE(t){const e=yd(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Td;(()=>{var t={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,u){for(var c,f="",d=0,h=-1,m=0,g=0;g<=l.length;++g){if(g<l.length)c=l.charCodeAt(g);else{if(c===47)break;c=47}if(c===47){if(!(h===g-1||m===1))if(h!==g-1&&m===2){if(f.length<2||d!==2||f.charCodeAt(f.length-1)!==46||f.charCodeAt(f.length-2)!==46){if(f.length>2){var R=f.lastIndexOf("/");if(R!==f.length-1){R===-1?(f="",d=0):d=(f=f.slice(0,R)).length-1-f.lastIndexOf("/"),h=g,m=0;continue}}else if(f.length===2||f.length===1){f="",d=0,h=g,m=0;continue}}u&&(f.length>0?f+="/..":f="..",d=2)}else f.length>0?f+="/"+l.slice(h+1,g):f=l.slice(h+1,g),d=g-h-1;h=g,m=0}else c===46&&m!==-1?++m:m=-1}return f}var o={resolve:function(){for(var l,u="",c=!1,f=arguments.length-1;f>=-1&&!c;f--){var d;f>=0?d=arguments[f]:(l===void 0&&(l=process.cwd()),d=l),s(d),d.length!==0&&(u=d+"/"+u,c=d.charCodeAt(0)===47)}return u=a(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(s(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=a(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u<arguments.length;++u){var c=arguments[u];s(c),c.length>0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":o.normalize(l)},relative:function(l,u){if(s(l),s(u),l===u||(l=o.resolve(l))===(u=o.resolve(u)))return"";for(var c=1;c<l.length&&l.charCodeAt(c)===47;++c);for(var f=l.length,d=f-c,h=1;h<u.length&&u.charCodeAt(h)===47;++h);for(var m=u.length-h,g=d<m?d:m,R=-1,y=0;y<=g;++y){if(y===g){if(m>g){if(u.charCodeAt(h+y)===47)return u.slice(h+y+1);if(y===0)return u.slice(h+y)}else d>g&&(l.charCodeAt(c+y)===47?R=y:y===0&&(R=0));break}var E=l.charCodeAt(c+y);if(E!==u.charCodeAt(h+y))break;E===47&&(R=y)}var v="";for(y=c+R+1;y<=f;++y)y!==f&&l.charCodeAt(y)!==47||(v.length===0?v+="..":v+="/..");return v.length>0?v+u.slice(h+R):(h+=R,u.charCodeAt(h)===47&&++h,u.slice(h))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,f=-1,d=!0,h=l.length-1;h>=1;--h)if((u=l.charCodeAt(h))===47){if(!d){f=h;break}}else d=!1;return f===-1?c?"/":".":c&&f===1?"//":l.slice(0,f)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(l);var c,f=0,d=-1,h=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var m=u.length-1,g=-1;for(c=l.length-1;c>=0;--c){var R=l.charCodeAt(c);if(R===47){if(!h){f=c+1;break}}else g===-1&&(h=!1,g=c+1),m>=0&&(R===u.charCodeAt(m)?--m==-1&&(d=c):(m=-1,d=g))}return f===d?d=g:d===-1&&(d=l.length),l.slice(f,d)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!h){f=c+1;break}}else d===-1&&(h=!1,d=c+1);return d===-1?"":l.slice(f,d)},extname:function(l){s(l);for(var u=-1,c=0,f=-1,d=!0,h=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)f===-1&&(d=!1,f=m+1),g===46?u===-1?u=m:h!==1&&(h=1):u!==-1&&(h=-1);else if(!d){c=m+1;break}}return u===-1||f===-1||h===0||h===1&&u===f-1&&u===c+1?"":l.slice(u,f)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(u,c){var f=c.dir||c.root,d=c.base||(c.name||"")+(c.ext||"");return f?f===c.root?f+d:f+"/"+d:d}(0,l)},parse:function(l){s(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,f=l.charCodeAt(0),d=f===47;d?(u.root="/",c=1):c=0;for(var h=-1,m=0,g=-1,R=!0,y=l.length-1,E=0;y>=c;--y)if((f=l.charCodeAt(y))!==47)g===-1&&(R=!1,g=y+1),f===46?h===-1?h=y:E!==1&&(E=1):h!==-1&&(E=-1);else if(!R){m=y+1;break}return h===-1||g===-1||E===0||E===1&&h===g-1&&h===m+1?g!==-1&&(u.base=u.name=m===0&&d?l.slice(1,g):l.slice(m,g)):(m===0&&d?(u.name=l.slice(1,h),u.base=l.slice(1,g)):(u.name=l.slice(m,h),u.base=l.slice(m,g)),u.ext=l.slice(h,g)),m>0?u.dir=l.slice(0,m-1):d&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function n(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return t[i](a,a.exports,n),a.exports}n.d=(i,s)=>{for(var a in s)n.o(s,a)&&!n.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},n.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),n.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;n.r(r),n.d(r,{URI:()=>d,Utils:()=>ke}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(x,T){if(!x.scheme&&T)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${x.authority}", path: "${x.path}", query: "${x.query}", fragment: "${x.fragment}"}`);if(x.scheme&&!s.test(x.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(x.path){if(x.authority){if(!a.test(x.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(x.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",c="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{constructor(T,$,S,O,b,_=!1){mt(this,"scheme");mt(this,"authority");mt(this,"path");mt(this,"query");mt(this,"fragment");typeof T=="object"?(this.scheme=T.scheme||u,this.authority=T.authority||u,this.path=T.path||u,this.query=T.query||u,this.fragment=T.fragment||u):(this.scheme=function(ve,Z){return ve||Z?ve:"file"}(T,_),this.authority=$||u,this.path=function(ve,Z){switch(ve){case"https":case"http":case"file":Z?Z[0]!==c&&(Z=c+Z):Z=c}return Z}(this.scheme,S||u),this.query=O||u,this.fragment=b||u,l(this,_))}static isUri(T){return T instanceof d||!!T&&typeof T.authority=="string"&&typeof T.fragment=="string"&&typeof T.path=="string"&&typeof T.query=="string"&&typeof T.scheme=="string"&&typeof T.fsPath=="string"&&typeof T.with=="function"&&typeof T.toString=="function"}get fsPath(){return E(this)}with(T){if(!T)return this;let{scheme:$,authority:S,path:O,query:b,fragment:_}=T;return $===void 0?$=this.scheme:$===null&&($=u),S===void 0?S=this.authority:S===null&&(S=u),O===void 0?O=this.path:O===null&&(O=u),b===void 0?b=this.query:b===null&&(b=u),_===void 0?_=this.fragment:_===null&&(_=u),$===this.scheme&&S===this.authority&&O===this.path&&b===this.query&&_===this.fragment?this:new m($,S,O,b,_)}static parse(T,$=!1){const S=f.exec(T);return S?new m(S[2]||u,se(S[4]||u),se(S[5]||u),se(S[7]||u),se(S[9]||u),$):new m(u,u,u,u,u)}static file(T){let $=u;if(i&&(T=T.replace(/\\/g,c)),T[0]===c&&T[1]===c){const S=T.indexOf(c,2);S===-1?($=T.substring(2),T=c):($=T.substring(2,S),T=T.substring(S)||c)}return new m("file",$,T,u,u)}static from(T){const $=new m(T.scheme,T.authority,T.path,T.query,T.fragment);return l($,!0),$}toString(T=!1){return v(this,T)}toJSON(){return this}static revive(T){if(T){if(T instanceof d)return T;{const $=new m(T);return $._formatted=T.external,$._fsPath=T._sep===h?T.fsPath:null,$}}return T}}const h=i?1:void 0;class m extends d{constructor(){super(...arguments);mt(this,"_formatted",null);mt(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=E(this)),this._fsPath}toString($=!1){return $?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){const $={$mid:1};return this._fsPath&&($.fsPath=this._fsPath,$._sep=h),this._formatted&&($.external=this._formatted),this.path&&($.path=this.path),this.scheme&&($.scheme=this.scheme),this.authority&&($.authority=this.authority),this.query&&($.query=this.query),this.fragment&&($.fragment=this.fragment),$}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function R(x,T,$){let S,O=-1;for(let b=0;b<x.length;b++){const _=x.charCodeAt(b);if(_>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===45||_===46||_===95||_===126||T&&_===47||$&&_===91||$&&_===93||$&&_===58)O!==-1&&(S+=encodeURIComponent(x.substring(O,b)),O=-1),S!==void 0&&(S+=x.charAt(b));else{S===void 0&&(S=x.substr(0,b));const ve=g[_];ve!==void 0?(O!==-1&&(S+=encodeURIComponent(x.substring(O,b)),O=-1),S+=ve):O===-1&&(O=b)}}return O!==-1&&(S+=encodeURIComponent(x.substring(O))),S!==void 0?S:x}function y(x){let T;for(let $=0;$<x.length;$++){const S=x.charCodeAt($);S===35||S===63?(T===void 0&&(T=x.substr(0,$)),T+=g[S]):T!==void 0&&(T+=x[$])}return T!==void 0?T:x}function E(x,T){let $;return $=x.authority&&x.path.length>1&&x.scheme==="file"?`//${x.authority}${x.path}`:x.path.charCodeAt(0)===47&&(x.path.charCodeAt(1)>=65&&x.path.charCodeAt(1)<=90||x.path.charCodeAt(1)>=97&&x.path.charCodeAt(1)<=122)&&x.path.charCodeAt(2)===58?x.path[1].toLowerCase()+x.path.substr(2):x.path,i&&($=$.replace(/\//g,"\\")),$}function v(x,T){const $=T?y:R;let S="",{scheme:O,authority:b,path:_,query:ve,fragment:Z}=x;if(O&&(S+=O,S+=":"),(b||O==="file")&&(S+=c,S+=c),b){let W=b.indexOf("@");if(W!==-1){const wt=b.substr(0,W);b=b.substr(W+1),W=wt.lastIndexOf(":"),W===-1?S+=$(wt,!1,!1):(S+=$(wt.substr(0,W),!1,!1),S+=":",S+=$(wt.substr(W+1),!1,!0)),S+="@"}b=b.toLowerCase(),W=b.lastIndexOf(":"),W===-1?S+=$(b,!1,!0):(S+=$(b.substr(0,W),!1,!0),S+=b.substr(W))}if(_){if(_.length>=3&&_.charCodeAt(0)===47&&_.charCodeAt(2)===58){const W=_.charCodeAt(1);W>=65&&W<=90&&(_=`/${String.fromCharCode(W+32)}:${_.substr(3)}`)}else if(_.length>=2&&_.charCodeAt(1)===58){const W=_.charCodeAt(0);W>=65&&W<=90&&(_=`${String.fromCharCode(W+32)}:${_.substr(2)}`)}S+=$(_,!0,!1)}return ve&&(S+="?",S+=$(ve,!1,!1)),Z&&(S+="#",S+=T?Z:R(Z,!1,!1)),S}function I(x){try{return decodeURIComponent(x)}catch{return x.length>3?x.substr(0,3)+I(x.substr(3)):x}}const M=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function se(x){return x.match(M)?x.replace(M,T=>I(T)):x}var Me=n(470);const Te=Me.posix||Me,We="/";var ke;(function(x){x.joinPath=function(T,...$){return T.with({path:Te.join(T.path,...$)})},x.resolvePath=function(T,...$){let S=T.path,O=!1;S[0]!==We&&(S=We+S,O=!0);let b=Te.resolve(S,...$);return O&&b[0]===We&&!T.authority&&(b=b.substring(1)),T.with({path:b})},x.dirname=function(T){if(T.path.length===0||T.path===We)return T;let $=Te.dirname(T.path);return $.length===1&&$.charCodeAt(0)===46&&($=""),T.with({path:$})},x.basename=function(T){return Te.basename(T.path)},x.extname=function(T){return Te.extname(T.path)}})(ke||(ke={}))})(),Td=r})();const{URI:Ft,Utils:On}=Td;var At;(function(t){t.basename=On.basename,t.dirname=On.dirname,t.extname=On.extname,t.joinPath=On.joinPath,t.resolvePath=On.resolvePath;function e(i,s){return(i==null?void 0:i.toString())===(s==null?void 0:s.toString())}t.equals=e;function n(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(h=>h.length>0),u=o.split("/").filter(h=>h.length>0);let c=0;for(;c<l.length&&l[c]===u[c];c++);const f="../".repeat(l.length-c),d=u.slice(c).join("/");return f+d}t.relative=n;function r(i){return Ft.parse(i.toString()).toString()}t.normalize=r})(At||(At={}));var K;(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(K||(K={}));class ZE{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,n=V.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,n)}fromTextDocument(e,n,r){return n=n??Ft.parse(e.uri),V.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromString(e,n,r){return V.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromModel(e,n){return this.create(n,{$model:e})}create(e,n,r){if(typeof n=="string"){const i=this.parse(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else if("$model"in n){const i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}async createAsync(e,n,r){if(typeof n=="string"){const i=await this.parseAsync(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else{const i=await this.parseAsync(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}createLangiumDocument(e,n,r,i){let s;if(r)s={parseResult:e,uri:n,state:K.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(n,i);s={parseResult:e,uri:n,state:K.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,n){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,n),e.parseResult.value.$document=e),e.state=K.Parsed,e}parse(e,n,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(n,r)}parseAsync(e,n,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(n,r)}createTextDocumentGetter(e,n){const r=this.serviceRegistry;let i;return()=>i??(i=Ga.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,n??""))}}class QE{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return ne(this.documentMap.values())}addDocument(e){const n=e.uri.toString();if(this.documentMap.has(n))throw new Error(`A document with the URI '${n}' is already present.`);this.documentMap.set(n,e)}getDocument(e){const n=e.toString();return this.documentMap.get(n)}async getOrCreateDocument(e,n){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,n),this.addDocument(r),r)}createDocument(e,n,r){if(r)return this.langiumDocumentFactory.fromString(n,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(n,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=K.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(r.state=K.Changed,this.documentMap.delete(n)),r}}const Us=Symbol("ref_resolving");class e${constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,n=V.None){for(const r of Xt(e.parseResult.value))await Ee(n),Sc(r).forEach(i=>this.doLink(i,e))}doLink(e,n){var r;const i=e.reference;if(i._ref===void 0){i._ref=Us;try{const s=this.getCandidate(e);if(ai(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}n.references.push(i)}}unlink(e){for(const n of e.references)delete n._ref,delete n._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,n,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(le(this._ref))return this._ref;if(Xd(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:n},this._nodeDescription)}else if(this._ref===void 0){this._ref=Us;const l=ra(e).$document,u=s.getLinkedNode({reference:a,container:e,property:n});if(u.error&&l&&l.state<K.ComputedScopes)return this._ref=void 0;this._ref=(o=u.node)!==null&&o!==void 0?o:u.error,this._nodeDescription=u.descr,l==null||l.references.push(this)}else if(this._ref===Us)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${n} (symbol '${i}')`);return le(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return ai(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var n;try{const r=this.getCandidate(e);if(ai(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(n=r.message)!==null&&n!==void 0?n:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const n=this.langiumDocuments().getDocument(e.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,e.path)}createLinkingError(e,n){const r=ra(e.container).$document;r&&r.state<K.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:n})}}function t$(t){return typeof t.name=="string"}class n${getName(e){if(t$(e))return e.name}getNameNode(e){return Nc(e.$cstNode,"name")}}class r${constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const n=jh(e),r=e.astNode;if(n&&r){const i=r[n.feature];if(qe(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(qe(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||Qd(e,i)))return r}}}findDeclarationNode(e){const n=this.findDeclaration(e);if(n!=null&&n.$cstNode){const r=this.nameProvider.getNameNode(n);return r??n.$cstNode}}findReferences(e,n){const r=[];if(n.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return n.documentUri&&(i=i.filter(s=>At.equals(s.sourceUri,n.documentUri))),r.push(...i),ne(r)}getReferenceToSelf(e){const n=this.nameProvider.getNameNode(e);if(n){const r=gt(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:$i(n),local:!0}}}}class Vi{constructor(e){if(this.map=new Map,e)for(const[n,r]of e)this.add(n,r)}get size(){return ea.sum(ne(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,n){if(n===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(n);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var n;return(n=this.map.get(e))!==null&&n!==void 0?n:[]}has(e,n){if(n===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(n)>=0:!1}}add(e,n){return this.map.has(e)?this.map.get(e).push(n):this.map.set(e,[n]),this}addAll(e,n){return this.map.has(e)?this.map.get(e).push(...n):this.map.set(e,Array.from(n)),this}forEach(e){this.map.forEach((n,r)=>n.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ne(this.map.entries()).flatMap(([e,n])=>n.map(r=>[e,r]))}keys(){return ne(this.map.keys())}values(){return ne(this.map.values()).flat()}entriesGroupedByKey(){return ne(this.map.entries())}}class Ju{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[n,r]of e)this.set(n,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,n){return this.map.set(e,n),this.inverse.set(n,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const n=this.map.get(e);return n!==void 0?(this.map.delete(e),this.inverse.delete(n),!0):!1}}class i${constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,n=V.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,n)}async computeExportsForNode(e,n,r=Wa,i=V.None){const s=[];this.exportNode(e,s,n);for(const a of r(e))await Ee(i),this.exportNode(a,s,n);return s}exportNode(e,n,r){const i=this.nameProvider.getName(e);i&&n.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,n=V.None){const r=e.parseResult.value,i=new Vi;for(const s of kr(r))await Ee(n),this.processNode(s,e,i);return i}processNode(e,n,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,n))}}}class Zu{constructor(e,n,r){var i;this.elements=e,this.outerScope=n,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const n=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}}class s${constructor(e,n,r){var i;this.elements=new Map,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=n}getElement(e){const n=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(n);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=ne(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class vd{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class a$ extends vd{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,n){this.throwIfDisposed(),this.cache.set(e,n)}get(e,n){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(n){const r=n();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class o$ extends vd{constructor(e){super(),this.cache=new Map,this.converter=e??(n=>n)}has(e,n){return this.throwIfDisposed(),this.cacheForContext(e).has(n)}set(e,n,r){this.throwIfDisposed(),this.cacheForContext(e).set(n,r)}get(e,n,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(n))return i.get(n);if(r){const s=r();return i.set(n,s),s}else return}delete(e,n){return this.throwIfDisposed(),this.cacheForContext(e).delete(n)}clear(e){if(this.throwIfDisposed(),e){const n=this.converter(e);this.cache.delete(n)}else this.cache.clear()}cacheForContext(e){const n=this.converter(e);let r=this.cache.get(n);return r||(r=new Map,this.cache.set(n,r)),r}}class l$ extends a${constructor(e,n){super(),n?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(n,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class u${constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new l$(e.shared)}getScope(e){const n=[],r=this.reflection.getReferenceType(e),i=gt(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&n.push(ne(o).filter(l=>this.reflection.isSubtype(l.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=n.length-1;a>=0;a--)s=this.createScope(n[a],s);return s}createScope(e,n,r){return new Zu(ne(e),n,r)}createScopeForNodes(e,n,r){const i=ne(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new Zu(i,n,r)}getGlobalScope(e,n){return this.globalScopeCache.get(e,()=>new s$(this.indexManager.allElements(e)))}}function c$(t){return typeof t.$comment=="string"}function Qu(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}class f${constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,n){const r=n??{},i=n==null?void 0:n.replacer,s=(o,l)=>this.replacer(o,l,r),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=gt(e),JSON.stringify(e,a,n==null?void 0:n.space)}finally{this.currentDocument=void 0}}deserialize(e,n){const r=n??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,n,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,u,c,f;if(!this.ignoreProperties.has(e))if(qe(n)){const d=n.ref,h=r?n.$refText:void 0;if(d){const m=gt(d);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,n):g=m.uri.toString());const R=this.astNodeLocator.getAstNodePath(d);return{$ref:`${g}#${R}`,$refText:h}}else return{$error:(u=(l=n.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:h}}else if(le(n)){let d;if(s&&(d=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},n)),(!e||n.$document)&&(d!=null&&d.$textRegion)&&(d.$textRegion.documentURI=(c=this.currentDocument)===null||c===void 0?void 0:c.uri.toString())),i&&!e&&(d??(d=Object.assign({},n)),d.$sourceText=(f=n.$cstNode)===null||f===void 0?void 0:f.text),a){d??(d=Object.assign({},n));const h=this.commentProvider.getComment(n);h&&(d.$comment=h.replace(/\r/g,""))}return d??n}else return n}addAstNodeRegionWithAssignmentsTo(e){const n=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=n(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=Gh(e.$cstNode,s).map(n);a.length!==0&&(i[s]=a)}),e}}linkNode(e,n,r,i,s,a){for(const[l,u]of Object.entries(e))if(Array.isArray(u))for(let c=0;c<u.length;c++){const f=u[c];Qu(f)?u[c]=this.reviveReference(e,l,n,f,r):le(f)&&this.linkNode(f,n,r,e,l,c)}else Qu(u)?e[l]=this.reviveReference(e,l,n,u,r):le(u)&&this.linkNode(u,n,r,e,l);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,n,r,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const l=this.getRefNode(r,i.$ref,s.uriConverter);if(le(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:n,message:o,reference:l},l}else return}getRefNode(e,n,r){try{const i=n.indexOf("#");if(i===0){const l=this.astNodeLocator.getAstNode(e,n.substring(1));return l||"Could not resolve path: "+n}if(i<0){const l=r?r(n):Ft.parse(n),u=this.langiumDocuments.getDocument(l);return u?u.parseResult.value:"Could not find document for URI: "+n}const s=r?r(n.substring(0,i)):Ft.parse(n.substring(0,i)),a=this.langiumDocuments.getDocument(s);if(!a)return"Could not find document for URI: "+n;if(i===n.length-1)return a.parseResult.value;const o=this.astNodeLocator.getAstNode(a.parseResult.value,n.substring(i+1));return o||"Could not resolve URI: "+n}catch(i){return String(i)}}}class d${get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e==null?void 0:e.workspace.TextDocuments}register(e){const n=e.LanguageMetaData;for(const r of n.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(n.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var n,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(n=this.textDocuments)===null||n===void 0?void 0:n.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=At.extname(e),a=this.fileExtensionMap.get(s);if(!a)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function fr(t){return{code:t}}var Wi;(function(t){t.all=["fast","slow","built-in"]})(Wi||(Wi={}));class h${constructor(e){this.entries=new Vi,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,n=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const l={check:this.wrapValidationException(o,n),category:r};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,n),category:r};this.addEntry(i,o)}else Ir()}}wrapValidationException(e,n){return async(r,i,s)=>{await this.handleException(()=>e.call(n,r,i,s),"An error occurred during validation",i,r)}}async handleException(e,n,r,i){try{await e()}catch(s){if(vs(s))throw s;console.error(`${n}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);r("error",`${n}: ${a}`,{node:i})}}addEntry(e,n){if(e==="AstNode"){this.entries.add("AstNode",n);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,n)}getChecks(e,n){let r=ne(this.entries.get(e)).concat(this.entries.get("AstNode"));return n&&(r=r.filter(i=>n.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(e,n=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",n))}registerAfterDocument(e,n=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",n))}wrapPreparationException(e,n,r){return async(i,s,a,o)=>{await this.handleException(()=>e.call(r,i,s,a,o),n,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class p${constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,n={},r=V.None){const i=e.parseResult,s=[];if(await Ee(r),(!n.categories||n.categories.includes("built-in"))&&(this.processLexingErrors(i,s,n),n.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Ge.LexingError})||(this.processParsingErrors(i,s,n),n.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Ge.ParsingError}))||(this.processLinkingErrors(e,s,n),n.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Ge.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,n,r))}catch(a){if(vs(a))throw a;console.error("An error occurred during validation:",a)}return await Ee(r),s}processLexingErrors(e,n,r){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const u=(a=l.severity)!==null&&a!==void 0?a:"error",c={severity:Bs(u),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:g$(u),source:this.getSource()};n.push(c)}}processParsingErrors(e,n,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=na(i.token);if(s){const a={severity:Bs("error"),range:s,message:i.message,data:fr(Ge.ParsingError),source:this.getSource()};n.push(a)}}}processLinkingErrors(e,n,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:Ge.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};n.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,n,r=V.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,n,s,r),await this.validateAstNodes(e,n,s,r),await this.validateAstAfter(e,n,s,r),i}async validateAstBefore(e,n,r,i=V.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await Ee(i),await o(e,r,(s=n.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,n,r,i=V.None){await Promise.all(Xt(e).map(async s=>{await Ee(i);const a=this.validationRegistry.getChecks(s.$type,n.categories);for(const o of a)await o(s,r,i)}))}async validateAstAfter(e,n,r,i=V.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await Ee(i),await o(e,r,(s=n.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,n,r){return{message:n,range:m$(r),severity:Bs(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function m$(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=Nc(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=Uh(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Bs(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function g$(t){switch(t){case"error":return fr(Ge.LexingError);case"warning":return fr(Ge.LexingWarning);case"info":return fr(Ge.LexingInfo);case"hint":return fr(Ge.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var Ge;(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(Ge||(Ge={}));class y${constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,n,r){const i=r??gt(e);n??(n=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!n)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=$i((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:n,get nameSegment(){return o()},selectionSegment:$i(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class T${constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,n=V.None){const r=[],i=e.parseResult.value;for(const s of Xt(i))await Ee(n),Sc(s).filter(a=>!ai(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const n=e.reference.$nodeDescription,r=e.reference.$refNode;if(!n||!r)return;const i=gt(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:n.documentUri,targetPath:n.path,segment:$i(r),local:At.equals(n.documentUri,i)}}}class v${constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const n=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return n+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:n}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return n!==void 0?e+this.indexSeparator+n:e}getAstNode(e,n){return n.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),l=parseInt(s.substring(a+1)),u=i[o];return u==null?void 0:u[l]}return i[s]},e)}}class R${constructor(e){this._ready=new No,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new md,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var n,r;this.workspaceConfig=(r=(n=e.capabilities.workspace)===null||n===void 0?void 0:n.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const n=this.serviceRegistry.all;e.register({section:n.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const n=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(n);n.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(n=>{const r=e.settings[n];this.updateSectionConfiguration(n,r),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:r})})}updateSectionConfiguration(e,n){this.settings[e]=n}async getConfiguration(e,n){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][n]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var yr;(function(t){function e(n){return{dispose:async()=>await n()}}t.create=e})(yr||(yr={}));class A${constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Vi,this.documentPhaseListeners=new Vi,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=K.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,n={},r=V.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===K.Validated){if(typeof n.validation=="boolean"&&n.validation)a.state=K.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof n.validation=="object"){const l=this.buildState.get(o),u=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(u){const f=((s=n.validation.categories)!==null&&s!==void 0?s:Wi.all).filter(d=>!u.includes(d));f.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},n.validation),{categories:f})},result:l.result}),a.state=K.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=K.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,n,r)}async update(e,n,r=V.None){this.currentState=K.Changed;for(const a of n)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=K.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}const i=ne(e).concat(n).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,K.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,n),await Ee(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<K.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,n){await Promise.all(this.updateListeners.map(r=>r(e,n)))}sortDocuments(e){let n=0,r=e.length-1;for(;n<r;){for(;n<e.length&&this.hasTextDocument(e[n]);)n++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;n<r&&([e[n],e[r]]=[e[r],e[n]])}return e}hasTextDocument(e){var n;return!!(!((n=this.textDocuments)===null||n===void 0)&&n.get(e.uri))}shouldRelink(e,n){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,n)}onUpdate(e){return this.updateListeners.push(e),yr.create(()=>{const n=this.updateListeners.indexOf(e);n>=0&&this.updateListeners.splice(n,1)})}async buildDocuments(e,n,r){this.prepareBuild(e,n),await this.runCancelable(e,K.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,K.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,K.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,K.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,K.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,K.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,n){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:n,result:s==null?void 0:s.result})}}async runCancelable(e,n,r,i){const s=e.filter(o=>o.state<n);for(const o of s)await Ee(r),await i(o),o.state=n,await this.notifyDocumentPhase(o,n,r);const a=e.filter(o=>o.state===n);await this.notifyBuildPhase(a,n,r),this.currentState=n}onBuildPhase(e,n){return this.buildPhaseListeners.add(e,n),yr.create(()=>{this.buildPhaseListeners.delete(e,n)})}onDocumentPhase(e,n){return this.documentPhaseListeners.add(e,n),yr.create(()=>{this.documentPhaseListeners.delete(e,n)})}waitUntil(e,n,r){let i;if(n&&"path"in n?i=n:r=n,r??(r=V.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(Hi):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u==null?void 0:u.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(Hi)})})}async notifyDocumentPhase(e,n,r){const s=this.documentPhaseListeners.get(n).slice();for(const a of s)try{await a(e,r)}catch(o){if(!vs(o))throw o}}async notifyBuildPhase(e,n,r){if(e.length===0)return;const s=this.buildPhaseListeners.get(n).slice();for(const a of s)await Ee(r),await a(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,n){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,n);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const u=this.buildState.get(e.uri.toString());if(u){(r=u.result)!==null&&r!==void 0||(u.result={});const c=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:Wi.all;u.result.validationChecks?u.result.validationChecks.push(...c):u.result.validationChecks=[...c]}}getBuildOptions(e){var n,r;return(r=(n=this.buildState.get(e.uri.toString()))===null||n===void 0?void 0:n.options)!==null&&r!==void 0?r:{}}}class E${constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new o$,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,n){const r=gt(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{At.equals(a.targetUri,r)&&a.targetPath===n&&i.push(a)})}),ne(i)}allElements(e,n){let r=ne(this.symbolIndex.keys());return n&&(r=r.filter(i=>!n||n.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,n){var r;return n?this.symbolByTypeIndex.get(e,n,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,n))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const n=e.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n),this.referenceIndex.delete(n)}async updateContent(e,n=V.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,n),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,n=V.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,n);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,n){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&n.has(i.targetUri.toString())):!1}}class $${constructor(e){this.initialBuildOptions={},this._ready=new No,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var n;this.folders=(n=e.workspaceFolders)!==null&&n!==void 0?n:void 0}initialized(e){return this.mutex.write(n=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],n)})}async initializeWorkspace(e,n=V.None){const r=await this.performStartup(e);await Ee(n),await this.documentBuilder.build(r,this.initialBuildOptions,n)}async performStartup(e){const n=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,n,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,n){return Promise.resolve()}getRootFolder(e){return Ft.parse(e.uri)}async traverseFolder(e,n,r,i){const s=await this.fileSystemProvider.readDirectory(n);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,n,r){const i=At.basename(n.uri);if(i.startsWith("."))return!1;if(n.isDirectory)return i!=="node_modules"&&i!=="out";if(n.isFile){const s=At.extname(n.uri);return r.includes(s)}return!1}}class x${buildUnexpectedCharactersMessage(e,n,r,i,s){return da.buildUnexpectedCharactersMessage(e,n,r,i,s)}buildUnableToPopLexerModeMessage(e){return da.buildUnableToPopLexerModeMessage(e)}}const S$={mode:"full"};class I${constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const n=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);const r=ec(n)?Object.values(n):n,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new he(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,n=S$){var r,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(r=a.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(ec(e))return e;const n=Rd(e)?Object.values(e.modes).flat():e,r={};return n.forEach(i=>r[i.name]=i),r}}function k$(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function Rd(t){return t&&"modes"in t&&"defaultMode"in t}function ec(t){return!k$(t)&&!Rd(t)}function C$(t,e,n){let r,i;typeof t=="string"?(i=e,r=n):(i=t.range.start,r=e),i||(i=D.create(0,0));const s=Ad(t),a=_o(r),o=_$({lines:s,position:i,options:a});return M$({index:0,tokens:o,position:i})}function w$(t,e){const n=_o(e),r=Ad(t);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=n.start,o=n.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function Ad(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(kh)}const tc=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,N$=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function _$(t){var e,n,r;const i=[];let s=t.position.line,a=t.position.character;for(let o=0;o<t.lines.length;o++){const l=o===0,u=o===t.lines.length-1;let c=t.lines[o],f=0;if(l&&t.options.start){const h=(e=t.options.start)===null||e===void 0?void 0:e.exec(c);h&&(f=h.index+h[0].length)}else{const h=(n=t.options.line)===null||n===void 0?void 0:n.exec(c);h&&(f=h.index+h[0].length)}if(u){const h=(r=t.options.end)===null||r===void 0?void 0:r.exec(c);h&&(c=c.substring(0,h.index))}if(c=c.substring(0,P$(c)),Ba(c,f)>=c.length){if(i.length>0){const h=D.create(s,a);i.push({type:"break",content:"",range:L.create(h,h)})}}else{tc.lastIndex=f;const h=tc.exec(c);if(h){const m=h[0],g=h[1],R=D.create(s,a+f),y=D.create(s,a+f+m.length);i.push({type:"tag",content:g,range:L.create(R,y)}),f+=m.length,f=Ba(c,f)}if(f<c.length){const m=c.substring(f),g=Array.from(m.matchAll(N$));i.push(...b$(g,m,s,a+f))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function b$(t,e,n,r){const i=[];if(t.length===0){const s=D.create(n,r),a=D.create(n,r+e.length);i.push({type:"text",content:e,range:L.create(s,a)})}else{let s=0;for(const o of t){const l=o.index,u=e.substring(s,l);u.length>0&&i.push({type:"text",content:e.substring(s,l),range:L.create(D.create(n,s+r),D.create(n,l+r))});let c=u.length+1;const f=o[1];if(i.push({type:"inline-tag",content:f,range:L.create(D.create(n,s+c+r),D.create(n,s+c+f.length+r))}),c+=f.length,o.length===4){c+=o[2].length;const d=o[3];i.push({type:"text",content:d,range:L.create(D.create(n,s+c+r),D.create(n,s+c+d.length+r))})}else i.push({type:"text",content:"",range:L.create(D.create(n,s+c+r),D.create(n,s+c+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:L.create(D.create(n,s+r),D.create(n,s+r+a.length))})}return i}const O$=/\S/,L$=/\s*$/;function Ba(t,e){const n=t.substring(e).match(O$);return n?e+n.index:t.length}function P$(t){const e=t.match(L$);if(e&&typeof e.index=="number")return e.index}function M$(t){var e,n,r,i;const s=D.create(t.position.line,t.position.character);if(t.tokens.length===0)return new nc([],L.create(s,s));const a=[];for(;t.index<t.tokens.length;){const u=D$(t,a[a.length-1]);u&&a.push(u)}const o=(n=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&n!==void 0?n:s,l=(i=(r=a[a.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new nc(a,L.create(o,l))}function D$(t,e){const n=t.tokens[t.index];if(n.type==="tag")return $d(t,!1);if(n.type==="text"||n.type==="inline-tag")return Ed(t);F$(n,e),t.index++}function F$(t,e){if(e){const n=new Sd("",t.range);"inlines"in e?e.inlines.push(n):e.content.inlines.push(n)}}function Ed(t){let e=t.tokens[t.index];const n=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(G$(t)),r=e,e=t.tokens[t.index];return new ja(i,L.create(n.range.start,r.range.end))}function G$(t){return t.tokens[t.index].type==="inline-tag"?$d(t,!0):xd(t)}function $d(t,e){const n=t.tokens[t.index++],r=n.content.substring(1),i=t.tokens[t.index];if((i==null?void 0:i.type)==="text")if(e){const s=xd(t);return new Ks(r,new ja([s],s.range),e,L.create(n.range.start,s.range.end))}else{const s=Ed(t);return new Ks(r,s,e,L.create(n.range.start,s.range.end))}else{const s=n.range;return new Ks(r,new ja([],s),e,s)}}function xd(t){const e=t.tokens[t.index++];return new Sd(e.content,e.range)}function _o(t){if(!t)return _o({start:"/**",end:"*/",line:"*"});const{start:e,end:n,line:r}=t;return{start:js(e,!0),end:js(n,!1),line:js(r,!0)}}function js(t,e){if(typeof t=="string"||typeof t=="object"){const n=typeof t=="string"?Ji(t):t.source;return e?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}else return t}class nc{constructor(e,n){this.elements=e,this.range=n}getTag(e){return this.getAllTags().find(n=>n.name===e)}getTags(e){return this.getAllTags().filter(n=>n.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const n of this.elements)if(e.length===0)e=n.toString();else{const r=n.toString();e+=rc(e)+r}return e.trim()}toMarkdown(e){let n="";for(const r of this.elements)if(n.length===0)n=r.toMarkdown(e);else{const i=r.toMarkdown(e);n+=rc(n)+i}return n.trim()}}class Ks{constructor(e,n,r,i){this.name=e,this.content=n,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const n=this.content.toString();return this.content.inlines.length===1?e=`${e} ${n}`:this.content.inlines.length>1&&(e=`${e}
|
|
118
|
+
${n}`),this.inline?`{${e}}`:e}toMarkdown(e){var n,r;return(r=(n=e==null?void 0:e.renderTag)===null||n===void 0?void 0:n.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const n=this.content.toMarkdown(e);if(this.inline){const s=U$(this.name,n,e??{});if(typeof s=="string")return s}let r="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?r="*":(e==null?void 0:e.tag)==="bold"?r="**":(e==null?void 0:e.tag)==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} — ${n}`:this.content.inlines.length>1&&(i=`${i}
|
|
119
|
+
${n}`),this.inline?`{${i}}`:i}}function U$(t,e,n){var r,i;if(t==="linkplain"||t==="linkcode"||t==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=Ba(e,s);a=e.substring(l),e=e.substring(0,s)}return(t==="linkcode"||t==="link"&&n.link==="code")&&(a=`\`${a}\``),(i=(r=n.renderLink)===null||r===void 0?void 0:r.call(n,e,a))!==null&&i!==void 0?i:B$(e,a)}}function B$(t,e){try{return Ft.parse(t,!0),`[${e}](${t})`}catch{return t}}class ja{constructor(e,n){this.inlines=e,this.range=n}toString(){let e="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
|
|
120
|
+
`)}return e}toMarkdown(e){let n="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];n+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(n+=`
|
|
121
|
+
`)}return n}}class Sd{constructor(e,n){this.text=e,this.range=n}toString(){return this.text}toMarkdown(){return this.text}}function rc(t){return t.endsWith(`
|
|
122
|
+
`)?`
|
|
123
|
+
`:`
|
|
124
|
+
|
|
125
|
+
`}class j${constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const n=this.commentProvider.getComment(e);if(n&&w$(n))return C$(n).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,n,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,n))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,n);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,n){}findNameInPrecomputedScopes(e,n){const i=gt(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===n);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,n){return this.indexManager.allElements().find(i=>i.name===n)}}class K${constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var n;return c$(e)?e.$comment:(n=rh(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||n===void 0?void 0:n.text}}class H${constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,n){return Promise.resolve(this.syncParser.parse(e))}}class V${constructor(){this.previousTokenSource=new wo,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const n=XE();return this.previousTokenSource=n,this.enqueue(this.writeQueue,e,n.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,n,r=V.None){const i=new No,s={action:n,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:n,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>n(i));r.resolve(s)}catch(s){vs(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class W${constructor(e){this.grammarElementIdMap=new Ju,this.tokenTypeIdMap=new Ju,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(n=>Object.assign(Object.assign({},n),{message:n.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const n=new Map,r=new Map;for(const i of Xt(e))n.set(i,{});if(e.$cstNode)for(const i of ta(e.$cstNode))r.set(i,{});return{astNodes:n,cstNodes:r}}dehydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,n));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)le(o)?a.push(this.dehydrateAstNode(o,n)):qe(o)?a.push(this.dehydrateReference(o,n)):a.push(o)}else le(s)?r[i]=this.dehydrateAstNode(s,n):qe(s)?r[i]=this.dehydrateReference(s,n):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,n){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=n.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,n){const r=n.cstNodes.get(e);return yc(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=n.astNodes.get(e.astNode),Tr(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,n)):gc(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const n=e.value,r=this.createHydrationContext(n);return"$cstNode"in n&&this.hydrateCstNode(n.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(n,r)}}createHydrationContext(e){const n=new Map,r=new Map;for(const s of Xt(e))n.set(s,{});let i;if(e.$cstNode)for(const s of ta(e.$cstNode)){let a;"fullText"in s?(a=new rd(s.fullText),i=a):"content"in s?a=new ko:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:n,cstNodes:r}}hydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=n.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)le(o)?a.push(this.setParent(this.hydrateAstNode(o,n),r)):qe(o)?a.push(this.hydrateReference(o,r,i,n)):a.push(o)}else le(s)?r[i]=this.setParent(this.hydrateAstNode(s,n),r):qe(s)?r[i]=this.hydrateReference(s,r,i,n):s!==void 0&&(r[i]=s);return r}setParent(e,n){return e.$container=n,e}hydrateReference(e,n,r,i){return this.linker.buildReference(n,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,n,r=0){const i=n.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=n.astNodes.get(e.astNode),Tr(i))for(const s of e.content){const a=this.hydrateCstNode(s,n,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const n=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,u=e.hidden;return new Oa(r,i,{start:{line:s,character:a},end:{line:o,character:l}},n,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const n of Xt(this.grammar))sh(n)&&this.grammarElementIdMap.set(n,e++)}}function St(t){return{documentation:{CommentProvider:e=>new K$(e),DocumentationProvider:e=>new j$(e)},parser:{AsyncParser:e=>new H$(e),GrammarConfig:e=>Xh(e),LangiumParser:e=>PE(e),CompletionParser:e=>LE(e),ValueConverter:()=>new dd,TokenBuilder:()=>new fd,Lexer:e=>new I$(e),ParserErrorMessageProvider:()=>new ad,LexerErrorMessageProvider:()=>new x$},workspace:{AstNodeLocator:()=>new v$,AstNodeDescriptionProvider:e=>new y$(e),ReferenceDescriptionProvider:e=>new T$(e)},references:{Linker:e=>new e$(e),NameProvider:()=>new n$,ScopeProvider:e=>new u$(e),ScopeComputation:e=>new i$(e),References:e=>new r$(e)},serializer:{Hydrator:e=>new W$(e),JsonSerializer:e=>new f$(e)},validation:{DocumentValidator:e=>new p$(e),ValidationRegistry:e=>new h$(e)},shared:()=>t.shared}}function It(t){return{ServiceRegistry:e=>new d$(e),workspace:{LangiumDocuments:e=>new QE(e),LangiumDocumentFactory:e=>new ZE(e),DocumentBuilder:e=>new A$(e),IndexManager:e=>new E$(e),WorkspaceManager:e=>new $$(e),FileSystemProvider:e=>t.fileSystemProvider(e),WorkspaceLock:()=>new V$,ConfigurationProvider:e=>new R$(e)}}}var ic;(function(t){t.merge=(e,n)=>zi(zi({},e),n)})(ic||(ic={}));function ue(t,e,n,r,i,s,a,o,l){const u=[t,e,n,r,i,s,a,o,l].reduce(zi,{});return Id(u)}const z$=Symbol("isProxy");function Id(t,e){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===z$?!0:ac(r,i,t,e||n),getOwnPropertyDescriptor:(r,i)=>(ac(r,i,t,e||n),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return n}const sc=Symbol();function ac(t,e,n,r){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===sc)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in n){const i=n[e];t[e]=sc;try{t[e]=typeof i=="function"?i(r):Id(i,r)}catch(s){throw t[e]=s instanceof Error?s:void 0,s}return t[e]}else return}function zi(t,e){if(e){for(const[n,r]of Object.entries(e))if(r!==void 0){const i=t[n];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?t[n]=zi(i,r):t[n]=r}}return t}class q${readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const kt={fileSystemProvider:()=>new q$},Y$={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},X$={AstReflection:()=>new xc};function J$(){const t=ue(It(kt),X$),e=ue(St({shared:t}),Y$);return t.ServiceRegistry.register(e),e}function Ht(t){var e;const n=J$(),r=n.serializer.JsonSerializer.deserialize(t);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,Ft.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Z$=Object.defineProperty,A=(t,e)=>Z$(t,"name",{value:e,configurable:!0}),oc="Statement",mi="Architecture";function Q$(t){return Ve.isInstance(t,mi)}A(Q$,"isArchitecture");var Qr="Axis",dr="Branch";function ex(t){return Ve.isInstance(t,dr)}A(ex,"isBranch");var ei="Checkout",ti="CherryPicking",Hs="ClassDefStatement",hr="Commit";function tx(t){return Ve.isInstance(t,hr)}A(tx,"isCommit");var Vs="Curve",Ws="Edge",zs="Entry",pr="GitGraph";function nx(t){return Ve.isInstance(t,pr)}A(nx,"isGitGraph");var qs="Group",gi="Info";function rx(t){return Ve.isInstance(t,gi)}A(rx,"isInfo");var ni="Item",Ys="Junction",mr="Merge";function ix(t){return Ve.isInstance(t,mr)}A(ix,"isMerge");var Xs="Option",yi="Packet";function sx(t){return Ve.isInstance(t,yi)}A(sx,"isPacket");var Ti="PacketBlock";function ax(t){return Ve.isInstance(t,Ti)}A(ax,"isPacketBlock");var vi="Pie";function ox(t){return Ve.isInstance(t,vi)}A(ox,"isPie");var Ri="PieSection";function lx(t){return Ve.isInstance(t,Ri)}A(lx,"isPieSection");var Js="Radar",Zs="Service",Ai="Treemap";function ux(t){return Ve.isInstance(t,Ai)}A(ux,"isTreemap");var Qs="TreemapRow",ri="Direction",ii="Leaf",si="Section",Qt,kd=(Qt=class extends mc{getAllTypes(){return[mi,Qr,dr,ei,ti,Hs,hr,Vs,ri,Ws,zs,pr,qs,gi,ni,Ys,ii,mr,Xs,yi,Ti,vi,Ri,Js,si,Zs,oc,Ai,Qs]}computeIsSubtype(e,n){switch(e){case dr:case ei:case ti:case hr:case mr:return this.isSubtype(oc,n);case ri:return this.isSubtype(pr,n);case ii:case si:return this.isSubtype(ni,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Entry:axis":return Qr;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case mi:return{name:mi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case Qr:return{name:Qr,properties:[{name:"label"},{name:"name"}]};case dr:return{name:dr,properties:[{name:"name"},{name:"order"}]};case ei:return{name:ei,properties:[{name:"branch"}]};case ti:return{name:ti,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Hs:return{name:Hs,properties:[{name:"className"},{name:"styleText"}]};case hr:return{name:hr,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Vs:return{name:Vs,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Ws:return{name:Ws,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case zs:return{name:zs,properties:[{name:"axis"},{name:"value"}]};case pr:return{name:pr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case qs:return{name:qs,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case gi:return{name:gi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case ni:return{name:ni,properties:[{name:"classSelector"},{name:"name"}]};case Ys:return{name:Ys,properties:[{name:"id"},{name:"in"}]};case mr:return{name:mr,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case Xs:return{name:Xs,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case yi:return{name:yi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case Ti:return{name:Ti,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case vi:return{name:vi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Ri:return{name:Ri,properties:[{name:"label"},{name:"value"}]};case Js:return{name:Js,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Zs:return{name:Zs,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Ai:return{name:Ai,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Qs:return{name:Qs,properties:[{name:"indent"},{name:"item"}]};case ri:return{name:ri,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case ii:return{name:ii,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case si:return{name:si,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},A(Qt,"MermaidAstReflection"),Qt),Ve=new kd,lc,cx=A(()=>lc??(lc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),uc,fx=A(()=>uc??(uc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),cc,dx=A(()=>cc??(cc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),fc,hx=A(()=>fc??(fc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),dc,px=A(()=>dc??(dc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),hc,mx=A(()=>hc??(hc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),pc,gx=A(()=>pc??(pc=Ht(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),yx={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Tx={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},vx={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Rx={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ax={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ex={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},$x={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Vt={AstReflection:A(()=>new kd,"AstReflection")},xx={Grammar:A(()=>cx(),"Grammar"),LanguageMetaData:A(()=>yx,"LanguageMetaData"),parser:{}},Sx={Grammar:A(()=>fx(),"Grammar"),LanguageMetaData:A(()=>Tx,"LanguageMetaData"),parser:{}},Ix={Grammar:A(()=>dx(),"Grammar"),LanguageMetaData:A(()=>vx,"LanguageMetaData"),parser:{}},kx={Grammar:A(()=>hx(),"Grammar"),LanguageMetaData:A(()=>Rx,"LanguageMetaData"),parser:{}},Cx={Grammar:A(()=>px(),"Grammar"),LanguageMetaData:A(()=>Ax,"LanguageMetaData"),parser:{}},wx={Grammar:A(()=>mx(),"Grammar"),LanguageMetaData:A(()=>Ex,"LanguageMetaData"),parser:{}},Nx={Grammar:A(()=>gx(),"Grammar"),LanguageMetaData:A(()=>$x,"LanguageMetaData"),parser:{}},_x=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,bx=/accTitle[\t ]*:([^\n\r]*)/,Ox=/title([\t ][^\n\r]*|)/,Lx={ACC_DESCR:_x,ACC_TITLE:bx,TITLE:Ox},en,Rs=(en=class extends dd{runConverter(e,n,r){let i=this.runCommonConverter(e,n,r);return i===void 0&&(i=this.runCustomConverter(e,n,r)),i===void 0?super.runConverter(e,n,r):i}runCommonConverter(e,n,r){const i=Lx[e.name];if(i===void 0)return;const s=i.exec(n);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
|
|
126
|
+
`)}}},A(en,"AbstractMermaidValueConverter"),en),tn,As=(tn=class extends Rs{runCustomConverter(e,n,r){}},A(tn,"CommonValueConverter"),tn),nn,Ct=(nn=class extends fd{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,n,r){const i=super.buildKeywordTokens(e,n,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},A(nn,"AbstractMermaidTokenBuilder"),nn),rn;rn=class extends Ct{},A(rn,"CommonTokenBuilder");var sn,Px=(sn=class extends Ct{constructor(){super(["gitGraph"])}},A(sn,"GitGraphTokenBuilder"),sn),Cd={parser:{TokenBuilder:A(()=>new Px,"TokenBuilder"),ValueConverter:A(()=>new As,"ValueConverter")}};function wd(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),Cx,Cd);return e.ServiceRegistry.register(n),{shared:e,GitGraph:n}}A(wd,"createGitGraphServices");var an,Mx=(an=class extends Ct{constructor(){super(["info","showInfo"])}},A(an,"InfoTokenBuilder"),an),Nd={parser:{TokenBuilder:A(()=>new Mx,"TokenBuilder"),ValueConverter:A(()=>new As,"ValueConverter")}};function _d(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),xx,Nd);return e.ServiceRegistry.register(n),{shared:e,Info:n}}A(_d,"createInfoServices");var on,Dx=(on=class extends Ct{constructor(){super(["packet"])}},A(on,"PacketTokenBuilder"),on),bd={parser:{TokenBuilder:A(()=>new Dx,"TokenBuilder"),ValueConverter:A(()=>new As,"ValueConverter")}};function Od(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),Sx,bd);return e.ServiceRegistry.register(n),{shared:e,Packet:n}}A(Od,"createPacketServices");var ln,Fx=(ln=class extends Ct{constructor(){super(["pie","showData"])}},A(ln,"PieTokenBuilder"),ln),un,Gx=(un=class extends Rs{runCustomConverter(e,n,r){if(e.name==="PIE_SECTION_LABEL")return n.replace(/"/g,"").trim()}},A(un,"PieValueConverter"),un),Ld={parser:{TokenBuilder:A(()=>new Fx,"TokenBuilder"),ValueConverter:A(()=>new Gx,"ValueConverter")}};function Pd(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),Ix,Ld);return e.ServiceRegistry.register(n),{shared:e,Pie:n}}A(Pd,"createPieServices");var cn,Ux=(cn=class extends Ct{constructor(){super(["architecture"])}},A(cn,"ArchitectureTokenBuilder"),cn),fn,Bx=(fn=class extends Rs{runCustomConverter(e,n,r){if(e.name==="ARCH_ICON")return n.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return n.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return n.replace(/[[\]]/g,"").trim()}},A(fn,"ArchitectureValueConverter"),fn),Md={parser:{TokenBuilder:A(()=>new Ux,"TokenBuilder"),ValueConverter:A(()=>new Bx,"ValueConverter")}};function Dd(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),kx,Md);return e.ServiceRegistry.register(n),{shared:e,Architecture:n}}A(Dd,"createArchitectureServices");var dn,jx=(dn=class extends Ct{constructor(){super(["radar-beta"])}},A(dn,"RadarTokenBuilder"),dn),Fd={parser:{TokenBuilder:A(()=>new jx,"TokenBuilder"),ValueConverter:A(()=>new As,"ValueConverter")}};function Gd(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),wx,Fd);return e.ServiceRegistry.register(n),{shared:e,Radar:n}}A(Gd,"createRadarServices");var hn,Kx=(hn=class extends Ct{constructor(){super(["treemap"])}},A(hn,"TreemapTokenBuilder"),hn),Hx=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,pn,Vx=(pn=class extends Rs{runCustomConverter(e,n,r){if(e.name==="NUMBER2")return parseFloat(n.replace(/,/g,""));if(e.name==="SEPARATOR")return n.substring(1,n.length-1);if(e.name==="STRING2")return n.substring(1,n.length-1);if(e.name==="INDENTATION")return n.length;if(e.name==="ClassDef"){if(typeof n!="string")return n;const i=Hx.exec(n);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}},A(pn,"TreemapValueConverter"),pn);function Ud(t){const e=t.validation.TreemapValidator,n=t.validation.ValidationRegistry;if(n){const r={Treemap:e.checkSingleRoot.bind(e)};n.register(r,e)}}A(Ud,"registerValidationChecks");var mn,Wx=(mn=class{checkSingleRoot(e,n){let r;for(const i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?n("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&n("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},A(mn,"TreemapValidator"),mn),Bd={parser:{TokenBuilder:A(()=>new Kx,"TokenBuilder"),ValueConverter:A(()=>new Vx,"ValueConverter")},validation:{TreemapValidator:A(()=>new Wx,"TreemapValidator")}};function jd(t=kt){const e=ue(It(t),Vt),n=ue(St({shared:e}),Nx,Bd);return e.ServiceRegistry.register(n),Ud(n),{shared:e,Treemap:n}}A(jd,"createTreemapServices");var rt={},zx={info:A(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>Yx),e=t().Info.parser.LangiumParser;rt.info=e},"info"),packet:A(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>Xx),e=t().Packet.parser.LangiumParser;rt.packet=e},"packet"),pie:A(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>Jx),e=t().Pie.parser.LangiumParser;rt.pie=e},"pie"),architecture:A(async()=>{const{createArchitectureServices:t}=await Promise.resolve().then(()=>Zx),e=t().Architecture.parser.LangiumParser;rt.architecture=e},"architecture"),gitGraph:A(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>Qx),e=t().GitGraph.parser.LangiumParser;rt.gitGraph=e},"gitGraph"),radar:A(async()=>{const{createRadarServices:t}=await Promise.resolve().then(()=>eS),e=t().Radar.parser.LangiumParser;rt.radar=e},"radar"),treemap:A(async()=>{const{createTreemapServices:t}=await Promise.resolve().then(()=>tS),e=t().Treemap.parser.LangiumParser;rt.treemap=e},"treemap")};async function Kd(t,e){const n=zx[t];if(!n)throw new Error(`Unknown diagram type: ${t}`);rt[t]||await n();const i=rt[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new qx(i);return i.value}A(Kd,"parse");var gn,qx=(gn=class extends Error{constructor(e){const n=e.lexerErrors.map(i=>i.message).join(`
|
|
127
|
+
`),r=e.parserErrors.map(i=>i.message).join(`
|
|
128
|
+
`);super(`Parsing failed: ${n} ${r}`),this.result=e}},A(gn,"MermaidParseError"),gn);const Yx=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:Nd,createInfoServices:_d},Symbol.toStringTag,{value:"Module"})),Xx=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:bd,createPacketServices:Od},Symbol.toStringTag,{value:"Module"})),Jx=Object.freeze(Object.defineProperty({__proto__:null,PieModule:Ld,createPieServices:Pd},Symbol.toStringTag,{value:"Module"})),Zx=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:Md,createArchitectureServices:Dd},Symbol.toStringTag,{value:"Module"})),Qx=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:Cd,createGitGraphServices:wd},Symbol.toStringTag,{value:"Module"})),eS=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:Fd,createRadarServices:Gd},Symbol.toStringTag,{value:"Module"})),tS=Object.freeze(Object.defineProperty({__proto__:null,TreemapModule:Bd,createTreemapServices:jd},Symbol.toStringTag,{value:"Module"}));exports.parse=Kd;
|