@mcpc-tech/unplugin-dev-inspector-mcp 0.1.28 → 0.1.30
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/client/dist/{PromptParamsDialog-CtCaLYaq.js → PromptParamsDialog-D0TaQM5I.js} +146 -68
- package/client/dist/architecture-U656AL7Q-DLZFIEaG.js +1 -0
- package/client/dist/{architectureDiagram-VXUJARFQ-mTEFN4g1.js → architectureDiagram-VXUJARFQ-DNc0rX0p.js} +1 -1
- package/client/dist/{chunk-76Q3JFCE-naB4GsSN.js → chunk-76Q3JFCE-CAXIRKnn.js} +1 -1
- package/client/dist/chunk-FPAJGGOC-BjlYzVzU.js +80 -0
- package/client/dist/{chunk-FWNWRKHM-DESdnxaO.js → chunk-FWNWRKHM-VOvXoVoT.js} +1 -1
- package/client/dist/{chunk-LBM3YZW2-D1UaPZ0s.js → chunk-LBM3YZW2-CvtIRI2w.js} +1 -1
- package/client/dist/{chunk-LHMN2FUI-DvMeDi1w.js → chunk-LHMN2FUI-Ca-4316E.js} +1 -1
- package/client/dist/{chunk-O7ZBX7Z2-CzEL6GEY.js → chunk-O7ZBX7Z2-CECReL7o.js} +1 -1
- package/client/dist/{chunk-S6J4BHB3-dkKq153Y.js → chunk-S6J4BHB3-BHybUXml.js} +1 -1
- package/client/dist/{chunk-T53DSG4Q-m8YxcxT5.js → chunk-T53DSG4Q-7987HmnS.js} +1 -1
- package/client/dist/{diagram-PSM6KHXK-BxJGiGPe.js → diagram-PSM6KHXK-DTb9CVoz.js} +1 -1
- package/client/dist/{diagram-QEK2KX5R-DYp7ZFqv.js → diagram-QEK2KX5R-B2o1-dFI.js} +1 -1
- package/client/dist/{diagram-S2PKOQOG-DJkha_WW.js → diagram-S2PKOQOG-DPPFE3hr.js} +1 -1
- package/client/dist/gitGraph-F6HP7TQM-l-NE_Osd.js +1 -0
- package/client/dist/{gitGraphDiagram-NY62KEGX-Cr6_VXUM.js → gitGraphDiagram-NY62KEGX-Jp7zkjZT.js} +1 -1
- package/client/dist/info-NVLQJR56-EuF5TjLZ.js +1 -0
- package/client/dist/{infoDiagram-ER5ION4S-CtrGb0So.js → infoDiagram-ER5ION4S-CXN8mVBL.js} +1 -1
- package/client/dist/inspector.js +21 -98
- package/client/dist/{mermaid-parser.core-lVkskdol.js → mermaid-parser.core-B4UmuquT.js} +1 -1
- package/client/dist/{mermaid.core-DfenwpGd.js → mermaid.core-Bb_NaryS.js} +2 -2
- package/client/dist/packet-BFZMPI3H-BeBassQF.js +1 -0
- package/client/dist/pie-7BOR55EZ-CaiOg9Y8.js +1 -0
- package/client/dist/{pieDiagram-ADFJNKIX-10ENr3pD.js → pieDiagram-ADFJNKIX-C2tbuWJp.js} +1 -1
- package/client/dist/radar-NHE76QYJ-Dig7Z189.js +1 -0
- package/client/dist/sidebar.js +1 -1
- package/client/dist/treemap-KMMF4GRG-CTX-6nPT.js +1 -0
- package/dist/cli.cjs +24 -5
- package/dist/cli.js +24 -5
- package/dist/config-updater.cjs +99 -7
- package/dist/config-updater.js +99 -7
- package/dist/react/react.js +28 -1
- package/package.json +2 -2
- package/client/dist/architecture-U656AL7Q-BbnkeEk-.js +0 -1
- package/client/dist/chunk-FPAJGGOC-_ax7LrI6.js +0 -81
- package/client/dist/gitGraph-F6HP7TQM-KAtjK5Ox.js +0 -1
- package/client/dist/info-NVLQJR56-DiZxlu_o.js +0 -1
- package/client/dist/packet-BFZMPI3H-Co0kmFAY.js +0 -1
- package/client/dist/pie-7BOR55EZ-27A0zi3z.js +0 -1
- package/client/dist/radar-NHE76QYJ-BNuOm017.js +0 -1
- package/client/dist/treemap-KMMF4GRG-Cs32ogTY.js +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-BbOf1w_A.js";import{B as r,C as i,E as a,H as o,O as s,R as c,S as l,U as u,V as d,_ as f,j as p,k as m,t as h,v as g,w as _,x as ee,z as v}from"./isArrayLikeObject-CgiDz5DP.js";import{D as y,M as te,O as ne,S as re,_ as ie,a as b,b as ae,f as oe,g as se,i as x,j as S,k as ce,l as le,n as C,o as ue,r as de,s as w,t as fe,u as pe,v as me,x as he}from"./_baseUniq-DrKsbT7-.js";import{a as T,d as ge,f as _e,l as ve,n as ye,o as E,p as be,s as D,t as xe,u as Se}from"./_basePickBy-CO2jbuKs.js";import{t as O}from"./isEmpty-CokRQ2Nu.js";import{t as k}from"./clone-DaCWoOD3.js";function A(e){return typeof e==`object`&&!!e&&typeof e.$type==`string`}function Ce(e){return typeof e==`object`&&!!e&&typeof e.$refText==`string`}function we(e){return typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.type==`string`&&typeof e.path==`string`}function Te(e){return typeof e==`object`&&!!e&&A(e.container)&&Ce(e.reference)&&typeof e.message==`string`}var Ee=class{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return A(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||=this.subtypes[e]={};let r=n[t];if(r!==void 0)return r;{let r=this.computeIsSubtype(e,t);return n[t]=r,r}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),n=[];for(let r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}};function De(e){return typeof e==`object`&&!!e&&Array.isArray(e.content)}function Oe(e){return typeof e==`object`&&!!e&&typeof e.tokenType==`object`}function ke(e){return De(e)&&typeof e.fullText==`string`}var Ae=class e{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let 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(){let e=this.iterator(),t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){let e=[],t=this.iterator(),n;do n=t.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){let n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do if(t=this.nextFn(e.first),!t.done)return t;while(!t.done);e.firstDone=!0}do if(t=e.iterator.next(),!t.done)return t;while(!t.done);return Pe})}join(e=`,`){let t=this.iterator(),n=``,r,i=!1;do r=t.next(),r.done||(i&&(n+=e),n+=je(r.value)),i=!0;while(!r.done);return n}indexOf(e,t=0){let n=this.iterator(),r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(t){return new e(this.startFn,e=>{let{done:n,value:r}=this.nextFn(e);return n?Pe:{done:!1,value:t(r)}})}filter(t){return new e(this.startFn,e=>{let n;do if(n=this.nextFn(e),!n.done&&t(n.value))return n;while(!n.done);return Pe})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){let n=this.iterator(),r=t,i=n.next();for(;!i.done;)r=r===void 0?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){let r=e.next();if(r.done)return n;let i=this.recursiveReduce(e,t,n);return i===void 0?r.value:t(i,r.value)}find(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:n,value:r}=this.nextFn(e.this);if(!n){let n=t(r);if(Me(n))e.iterator=n[Symbol.iterator]();else return{done:!1,value:n}}}while(e.iterator);return Pe})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new e(()=>({this:n.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:t,value:r}=n.nextFn(e.this);if(!t)if(Me(r))e.iterator=r[Symbol.iterator]();else return{done:!1,value:r}}while(e.iterator);return Pe})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(t=1){return new e(()=>{let e=this.startFn();for(let n=0;n<t;n++)if(this.nextFn(e).done)return e;return e},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),e=>(e.size++,e.size>t?Pe:this.nextFn(e.state)))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),e=>{let n;do if(n=this.nextFn(e.internalState),!n.done){let r=t?t(n.value):n.value;if(!e.set.has(r))return e.set.add(r),n}while(!n.done);return Pe})}exclude(e,t){let n=new Set;for(let r of e){let e=t?t(r):r;n.add(e)}return this.filter(e=>{let r=t?t(e):e;return!n.has(r)})}};function je(e){return typeof e==`string`?e:e===void 0?`undefined`:typeof e.toString==`function`?e.toString():Object.prototype.toString.call(e)}function Me(e){return!!e&&typeof e[Symbol.iterator]==`function`}const Ne=new Ae(()=>void 0,()=>Pe),Pe=Object.freeze({done:!0,value:void 0});function j(...e){if(e.length===1){let t=e[0];if(t instanceof Ae)return t;if(Me(t))return new Ae(()=>t[Symbol.iterator](),e=>e.next());if(typeof t.length==`number`)return new Ae(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:Pe)}return e.length>1?new Ae(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let n=e[t.collIndex++];Me(n)?t.iterator=n[Symbol.iterator]():n&&typeof n.length==`number`&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return Pe}):Ne}var Fe=class extends Ae{constructor(e,t,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&=(e.iterators.pop(),!1);e.iterators.length>0;){let n=e.iterators[e.iterators.length-1].next();if(n.done)e.iterators.pop();else return e.iterators.push(t(n.value)[Symbol.iterator]()),n}return Pe})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}},Ie;(function(e){function t(e){return e.reduce((e,t)=>e+t,0)}e.sum=t;function n(e){return e.reduce((e,t)=>e*t,0)}e.product=n;function r(e){return e.reduce((e,t)=>Math.min(e,t))}e.min=r;function i(e){return e.reduce((e,t)=>Math.max(e,t))}e.max=i})(Ie||={});function Le(e){return new Fe(e,e=>De(e)?e.content:[],{includeRoot:!0})}function Re(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function ze(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function Be(e){if(!e)return;let{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var Ve;(function(e){e[e.Before=0]=`Before`,e[e.After=1]=`After`,e[e.OverlapFront=2]=`OverlapFront`,e[e.OverlapBack=3]=`OverlapBack`,e[e.Inside=4]=`Inside`,e[e.Outside=5]=`Outside`})(Ve||={});function He(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return Ve.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return Ve.After;let n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?Ve.Inside:n?Ve.OverlapBack:r?Ve.OverlapFront:Ve.Outside}function Ue(e,t){return He(e,t)>Ve.After}const We=/^[\w\p{L}]$/u;function Ge(e,t){if(e){let n=qe(e,!0);if(n&&Ke(n,t))return n;if(ke(e)){let n=e.content.findIndex(e=>!e.hidden);for(let r=n-1;r>=0;r--){let n=e.content[r];if(Ke(n,t))return n}}}}function Ke(e,t){return Oe(e)&&t.includes(e.tokenType.name)}function qe(e,t=!0){for(;e.container;){let n=e.container,r=n.content.indexOf(e);for(;r>0;){r--;let e=n.content[r];if(t||!e.hidden)return e}e=n}}var Je=class extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function Ye(e){throw Error(`Error! The input value was not handled.`)}const Xe=`AbstractRule`,Ze=`AbstractType`,Qe=`Condition`,$e=`TypeDefinition`,et=`ValueLiteral`,tt=`AbstractElement`;function nt(e){return M.isInstance(e,tt)}const rt=`ArrayLiteral`,it=`ArrayType`,at=`BooleanLiteral`;function ot(e){return M.isInstance(e,at)}const st=`Conjunction`;function ct(e){return M.isInstance(e,st)}const lt=`Disjunction`;function ut(e){return M.isInstance(e,lt)}const dt=`Grammar`,ft=`GrammarImport`,pt=`InferredType`;function mt(e){return M.isInstance(e,pt)}const ht=`Interface`;function gt(e){return M.isInstance(e,ht)}const _t=`NamedArgument`,vt=`Negation`;function yt(e){return M.isInstance(e,vt)}const bt=`NumberLiteral`,xt=`Parameter`,St=`ParameterReference`;function Ct(e){return M.isInstance(e,St)}const wt=`ParserRule`;function Tt(e){return M.isInstance(e,wt)}const Et=`ReferenceType`,Dt=`ReturnType`;function Ot(e){return M.isInstance(e,Dt)}const kt=`SimpleType`;function At(e){return M.isInstance(e,kt)}const jt=`StringLiteral`,Mt=`TerminalRule`;function Nt(e){return M.isInstance(e,Mt)}const Pt=`Type`;function Ft(e){return M.isInstance(e,Pt)}const It=`TypeAttribute`,Lt=`UnionType`,Rt=`Action`;function zt(e){return M.isInstance(e,Rt)}const Bt=`Alternatives`;function Vt(e){return M.isInstance(e,Bt)}const Ht=`Assignment`;function Ut(e){return M.isInstance(e,Ht)}const Wt=`CharacterRange`;function Gt(e){return M.isInstance(e,Wt)}const Kt=`CrossReference`;function qt(e){return M.isInstance(e,Kt)}const Jt=`EndOfFile`;function Yt(e){return M.isInstance(e,Jt)}const Xt=`Group`;function Zt(e){return M.isInstance(e,Xt)}const Qt=`Keyword`;function $t(e){return M.isInstance(e,Qt)}const en=`NegatedToken`;function tn(e){return M.isInstance(e,en)}const nn=`RegexToken`;function rn(e){return M.isInstance(e,nn)}const an=`RuleCall`;function on(e){return M.isInstance(e,an)}const sn=`TerminalAlternatives`;function cn(e){return M.isInstance(e,sn)}const ln=`TerminalGroup`;function un(e){return M.isInstance(e,ln)}const dn=`TerminalRuleCall`;function fn(e){return M.isInstance(e,dn)}const pn=`UnorderedGroup`;function mn(e){return M.isInstance(e,pn)}const hn=`UntilToken`;function gn(e){return M.isInstance(e,hn)}const _n=`Wildcard`;function vn(e){return M.isInstance(e,_n)}var yn=class extends Ee{getAllTypes(){return[tt,Xe,Ze,Rt,Bt,rt,it,Ht,at,Wt,Qe,st,Kt,lt,Jt,dt,ft,Xt,pt,ht,Qt,_t,en,vt,bt,xt,St,wt,Et,nn,Dt,an,kt,jt,sn,ln,Mt,dn,Pt,It,$e,Lt,pn,hn,et,_n]}computeIsSubtype(e,t){switch(e){case Rt:case Bt:case Ht:case Wt:case Kt:case Jt:case Xt:case Qt:case en:case nn:case an:case sn:case ln:case dn:case pn:case hn:case _n:return this.isSubtype(tt,t);case rt:case bt:case jt:return this.isSubtype(et,t);case it:case Et:case kt:case Lt:return this.isSubtype($e,t);case at:return this.isSubtype(Qe,t)||this.isSubtype(et,t);case st:case lt:case vt:case St:return this.isSubtype(Qe,t);case pt:case ht:case Pt:return this.isSubtype(Ze,t);case wt:return this.isSubtype(Xe,t)||this.isSubtype(Ze,t);case Mt:return this.isSubtype(Xe,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case`Action:type`:case`CrossReference:type`:case`Interface:superTypes`:case`ParserRule:returnType`:case`SimpleType:typeRef`:return Ze;case`Grammar:hiddenTokens`:case`ParserRule:hiddenTokens`:case`RuleCall:rule`:return Xe;case`Grammar:usedGrammars`:return dt;case`NamedArgument:parameter`:case`ParameterReference:parameter`:return xt;case`TerminalRuleCall:rule`:return Mt;default:throw Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case tt:return{name:tt,properties:[{name:`cardinality`},{name:`lookahead`}]};case rt:return{name:rt,properties:[{name:`elements`,defaultValue:[]}]};case it:return{name:it,properties:[{name:`elementType`}]};case at:return{name:at,properties:[{name:`true`,defaultValue:!1}]};case st:return{name:st,properties:[{name:`left`},{name:`right`}]};case lt:return{name:lt,properties:[{name:`left`},{name:`right`}]};case dt:return{name:dt,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 ft:return{name:ft,properties:[{name:`path`}]};case pt:return{name:pt,properties:[{name:`name`}]};case ht:return{name:ht,properties:[{name:`attributes`,defaultValue:[]},{name:`name`},{name:`superTypes`,defaultValue:[]}]};case _t:return{name:_t,properties:[{name:`calledByName`,defaultValue:!1},{name:`parameter`},{name:`value`}]};case vt:return{name:vt,properties:[{name:`value`}]};case bt:return{name:bt,properties:[{name:`value`}]};case xt:return{name:xt,properties:[{name:`name`}]};case St:return{name:St,properties:[{name:`parameter`}]};case wt:return{name:wt,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 Et:return{name:Et,properties:[{name:`referenceType`}]};case Dt:return{name:Dt,properties:[{name:`name`}]};case kt:return{name:kt,properties:[{name:`primitiveType`},{name:`stringType`},{name:`typeRef`}]};case jt:return{name:jt,properties:[{name:`value`}]};case Mt:return{name:Mt,properties:[{name:`definition`},{name:`fragment`,defaultValue:!1},{name:`hidden`,defaultValue:!1},{name:`name`},{name:`type`}]};case Pt:return{name:Pt,properties:[{name:`name`},{name:`type`}]};case It:return{name:It,properties:[{name:`defaultValue`},{name:`isOptional`,defaultValue:!1},{name:`name`},{name:`type`}]};case Lt:return{name:Lt,properties:[{name:`types`,defaultValue:[]}]};case Rt:return{name:Rt,properties:[{name:`cardinality`},{name:`feature`},{name:`inferredType`},{name:`lookahead`},{name:`operator`},{name:`type`}]};case Bt:return{name:Bt,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case Ht:return{name:Ht,properties:[{name:`cardinality`},{name:`feature`},{name:`lookahead`},{name:`operator`},{name:`terminal`}]};case Wt:return{name:Wt,properties:[{name:`cardinality`},{name:`left`},{name:`lookahead`},{name:`right`}]};case Kt:return{name:Kt,properties:[{name:`cardinality`},{name:`deprecatedSyntax`,defaultValue:!1},{name:`lookahead`},{name:`terminal`},{name:`type`}]};case Jt:return{name:Jt,properties:[{name:`cardinality`},{name:`lookahead`}]};case Xt:return{name:Xt,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`guardCondition`},{name:`lookahead`}]};case Qt:return{name:Qt,properties:[{name:`cardinality`},{name:`lookahead`},{name:`value`}]};case en:return{name:en,properties:[{name:`cardinality`},{name:`lookahead`},{name:`terminal`}]};case nn:return{name:nn,properties:[{name:`cardinality`},{name:`lookahead`},{name:`regex`}]};case an:return{name:an,properties:[{name:`arguments`,defaultValue:[]},{name:`cardinality`},{name:`lookahead`},{name:`rule`}]};case sn:return{name:sn,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case ln:return{name:ln,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case dn:return{name:dn,properties:[{name:`cardinality`},{name:`lookahead`},{name:`rule`}]};case pn:return{name:pn,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case hn:return{name:hn,properties:[{name:`cardinality`},{name:`lookahead`},{name:`terminal`}]};case _n:return{name:_n,properties:[{name:`cardinality`},{name:`lookahead`}]};default:return{name:e,properties:[]}}}};const M=new yn;function bn(e){for(let[t,n]of Object.entries(e))t.startsWith(`$`)||(Array.isArray(n)?n.forEach((n,r)=>{A(n)&&(n.$container=e,n.$containerProperty=t,n.$containerIndex=r)}):A(n)&&(n.$container=e,n.$containerProperty=t))}function xn(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function Sn(e){let t=Cn(e).$document;if(!t)throw Error(`AST node has no document.`);return t}function Cn(e){for(;e.$container;)e=e.$container;return e}function wn(e,t){if(!e)throw Error(`Node must be an AstNode.`);let n=t?.range;return new Ae(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith(`$`)){let i=e[r];if(A(i)){if(t.keyIndex++,Dn(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(A(e)&&Dn(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return Pe})}function Tn(e,t){if(!e)throw Error(`Root node must be an AstNode.`);return new Fe(e,e=>wn(e,t))}function En(e,t){if(e){if(t?.range&&!Dn(e,t.range))return new Fe(e,()=>[])}else throw Error(`Root node must be an AstNode.`);return new Fe(e,e=>wn(e,t),{includeRoot:!0})}function Dn(e,t){if(!t)return!0;let n=e.$cstNode?.range;return n?Ue(n,t):!1}function On(e){return new Ae(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith(`$`)){let r=e[n];if(Ce(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){let i=t.arrayIndex++,a=r[i];if(Ce(a))return{done:!1,value:{reference:a,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return Pe})}function kn(e,t){let n=e.getTypeMetaData(t.$type),r=t;for(let e of n.properties)e.defaultValue!==void 0&&r[e.name]===void 0&&(r[e.name]=An(e.defaultValue))}function An(e){return Array.isArray(e)?[...e.map(An)]:e}function N(e){return e.charCodeAt(0)}function jn(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function Mn(e,t){if(e[t]===!0)throw`duplicate flag `+t;e[t],e[t]=!0}function Nn(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function Pn(){throw Error(`Internal Error - Should never get here!`)}function Fn(e){return e.type===`Character`}const In=[];for(let e=N(`0`);e<=N(`9`);e++)In.push(e);const Ln=[N(`_`)].concat(In);for(let e=N(`a`);e<=N(`z`);e++)Ln.push(e);for(let e=N(`A`);e<=N(`Z`);e++)Ln.push(e);const Rn=[N(` `),N(`\f`),N(`
|
|
2
|
+
`),N(`\r`),N(` `),N(`\v`),N(` `),N(`\xA0`),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(`\u2028`),N(`\u2029`),N(` `),N(` `),N(` `),N(``)],zn=/[0-9a-fA-F]/,Bn=/[0-9]/,Vn=/[1-9]/;var Hn=class{constructor(){this.idx=0,this.input=``,this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar(`/`);let t=this.disjunction();this.consumeChar(`/`);let n={type:`Flags`,loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case`g`:Mn(n,`global`);break;case`i`:Mn(n,`ignoreCase`);break;case`m`:Mn(n,`multiLine`);break;case`u`:Mn(n,`unicode`);break;case`y`:Mn(n,`sticky`);break}if(this.idx!==this.input.length)throw Error(`Redundant input: `+this.input.substring(this.idx));return{type:`Pattern`,flags:n,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()===`|`;)this.consumeChar(`|`),e.push(this.alternative());return{type:`Disjunction`,value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:`Alternative`,value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case`^`:return{type:`StartAnchor`,loc:this.loc(e)};case`$`:return{type:`EndAnchor`,loc:this.loc(e)};case`\\`:switch(this.popChar()){case`b`:return{type:`WordBoundary`,loc:this.loc(e)};case`B`:return{type:`NonWordBoundary`,loc:this.loc(e)}}throw Error(`Invalid Assertion Escape`);case`(`:this.consumeChar(`?`);let t;switch(this.popChar()){case`=`:t=`Lookahead`;break;case`!`:t=`NegativeLookahead`;break}Nn(t);let n=this.disjunction();return this.consumeChar(`)`),{type:t,value:n,loc:this.loc(e)}}return Pn()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case`*`:t={atLeast:0,atMost:1/0};break;case`+`:t={atLeast:1,atMost:1/0};break;case`?`:t={atLeast:0,atMost:1};break;case`{`:let n=this.integerIncludingZero();switch(this.popChar()){case`}`:t={atLeast:n,atMost:n};break;case`,`:let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar(`}`);break}if(e===!0&&t===void 0)return;Nn(t);break}if(!(e===!0&&t===void 0)&&Nn(t))return this.peekChar(0)===`?`?(this.consumeChar(`?`),t.greedy=!1):t.greedy=!0,t.type=`Quantifier`,t.loc=this.loc(n),t}atom(){let e,t=this.idx;switch(this.peekChar()){case`.`:e=this.dotAll();break;case`\\`:e=this.atomEscape();break;case`[`:e=this.characterClass();break;case`(`:e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Nn(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):Pn()}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,t=!1;switch(this.popChar()){case`d`:e=In;break;case`D`:e=In,t=!0;break;case`s`:e=Rn;break;case`S`:e=Rn,t=!0;break;case`w`:e=Ln;break;case`W`:e=Ln,t=!0;break}return Nn(e)?{type:`Set`,value:e,complement:t}:Pn()}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}return Nn(e)?{type:`Character`,value:e}:Pn()}controlLetterEscapeAtom(){this.consumeChar(`c`);let 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(){return{type:`Character`,value:N(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
|
5
|
+
`:case`\r`:case`\u2028`:case`\u2029`:case`\\`:case`]`:throw Error(`TBD`);default:return{type:`Character`,value:N(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar(`[`),this.peekChar(0)===`^`&&(this.consumeChar(`^`),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,Fn(t)&&this.isRangeDash()){this.consumeChar(`-`);let n=this.classAtom();if(n.type,Fn(n)){if(n.value<t.value)throw Error(`Range out of order in character class`);e.push({from:t.value,to:n.value})}else jn(t.value,e),e.push(N(`-`)),jn(n.value,e)}else jn(t.value,e)}return this.consumeChar(`]`),{type:`Set`,complement:t,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}let t=this.disjunction();this.consumeChar(`)`);let n={type:`Group`,capturing:e,value:t};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(Vn.test(e)===!1)throw Error(`Expecting a positive integer`);for(;Bn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Bn.test(e)===!1)throw Error(`Expecting an integer`);for(;Bn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let 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 Bn.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(){let 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 t=``;for(let n=0;n<e;n++){let e=this.popChar();if(zn.test(e)===!1)throw Error(`Expecting a HexDecimal digits`);t+=e}return{type:`Character`,value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let 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}}},Un=class{visitChildren(e){for(let t in e){let n=e[t];e.hasOwnProperty(t)&&(n.type===void 0?Array.isArray(n)&&n.forEach(e=>{this.visit(e)},this):this.visit(n))}}visit(e){switch(e.type){case`Pattern`:this.visitPattern(e);break;case`Flags`:this.visitFlags(e);break;case`Disjunction`:this.visitDisjunction(e);break;case`Alternative`:this.visitAlternative(e);break;case`StartAnchor`:this.visitStartAnchor(e);break;case`EndAnchor`:this.visitEndAnchor(e);break;case`WordBoundary`:this.visitWordBoundary(e);break;case`NonWordBoundary`:this.visitNonWordBoundary(e);break;case`Lookahead`:this.visitLookahead(e);break;case`NegativeLookahead`:this.visitNegativeLookahead(e);break;case`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 Wn=/\r?\n/gm,Gn=new Hn,Kn=new class extends Un{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){let t=String.fromCharCode(e.value);if(!this.multiline&&t===`
|
|
10
|
+
`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=Xn(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!`
|
|
11
|
+
`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type===`Group`&&e.quantifier||super.visitChildren(e)}};function qn(e){try{return typeof e==`string`&&(e=new RegExp(e)),e=e.toString(),Kn.reset(e),Kn.visit(Gn.pattern(e)),Kn.multiline}catch{return!1}}const Jn=`\f
|
|
12
|
+
\r \v \xA0 \u2028\u2029 `.split(``);function Yn(e){let t=typeof e==`string`?new RegExp(e):e;return Jn.some(e=>t.test(e))}function Xn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Zn(e){return Array.prototype.map.call(e,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Xn(e)).join(``)}function Qn(e,t){let n=$n(e),r=t.match(n);return!!r&&r[0].length>0}function $n(e){typeof e==`string`&&(e=new RegExp(e));let t=e,n=e.source,r=0;function i(){let e=``,a;function o(t){e+=n.substr(r,t),r+=t}function s(t){e+=`(?:`+n.substr(r,t)+`|$)`,r+=t}for(;r<n.length;)switch(n[r]){case`\\`:switch(n[r+1]){case`c`:s(3);break;case`x`:s(4);break;case`u`:t.unicode?n[r+2]===`{`?s(n.indexOf(`}`,r)-r+1):s(6):s(2);break;case`p`:case`P`:t.unicode?s(n.indexOf(`}`,r)-r+1):s(2);break;case`k`:s(n.indexOf(`>`,r)-r+1);break;default:s(2);break}break;case`[`:a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(n)||[],s(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):s(1);break;case`(`:if(n[r+1]===`?`)switch(n[r+2]){case`:`:e+=`(?:`,r+=3,e+=i()+`|$)`;break;case`=`:e+=`(?=`,r+=3,e+=i()+`)`;break;case`!`:a=r,r+=3,i(),e+=n.substr(a,r-a);break;case`<`:switch(n[r+3]){case`=`:case`!`:a=r,r+=4,i(),e+=n.substr(a,r-a);break;default:o(n.indexOf(`>`,r)-r+1),e+=i()+`|$)`;break}break}else o(1),e+=i()+`|$)`;break;case`)`:return++r,e;default:s(1);break}return e}return new RegExp(i(),e.flags)}function er(e){return e.rules.find(e=>Tt(e)&&e.entry)}function tr(e){return e.rules.filter(e=>Nt(e)&&e.hidden)}function nr(e,t){let n=new Set,r=er(e);if(!r)return new Set(e.rules);let i=[r].concat(tr(e));for(let e of i)rr(e,n,t);let a=new Set;for(let t of e.rules)(n.has(t.name)||Nt(t)&&t.hidden)&&a.add(t);return a}function rr(e,t,n){t.add(e.name),Tn(e).forEach(e=>{if(on(e)||n&&fn(e)){let r=e.rule.ref;r&&!t.has(r.name)&&rr(r,t,n)}})}function ir(e){if(e.terminal)return e.terminal;if(e.type.ref)return fr(e.type.ref)?.terminal}function ar(e){return e.hidden&&!Yn(br(e))}function or(e,t){return!e||!t?[]:cr(e,t,e.astNode,!0)}function sr(e,t,n){if(!e||!t)return;let r=cr(e,t,e.astNode,!0);if(r.length!==0)return n=n===void 0?0:Math.max(0,Math.min(n,r.length-1)),r[n]}function cr(e,t,n,r){if(!r){let n=xn(e.grammarSource,Ut);if(n&&n.feature===t)return[e]}return De(e)&&e.astNode===n?e.content.flatMap(e=>cr(e,t,n,!1)):[]}function lr(e,t,n){if(!e)return;let r=ur(e,t,e?.astNode);if(r.length!==0)return n=n===void 0?0:Math.max(0,Math.min(n,r.length-1)),r[n]}function ur(e,t,n){if(e.astNode!==n)return[];if($t(e.grammarSource)&&e.grammarSource.value===t)return[e];let r=Le(e).iterator(),i,a=[];do if(i=r.next(),!i.done){let e=i.value;e.astNode===n?$t(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):r.prune()}while(!i.done);return a}function dr(e){let t=e.astNode;for(;t===e.container?.astNode;){let t=xn(e.grammarSource,Ut);if(t)return t;e=e.container}}function fr(e){let t=e;return mt(t)&&(zt(t.$container)?t=t.$container.$container:Tt(t.$container)?t=t.$container:Ye(t.$container)),pr(e,t,new Map)}function pr(e,t,n){function r(t,r){let i;return xn(t,Ut)||(i=pr(r,r,n)),n.set(e,i),i}if(n.has(e))return n.get(e);n.set(e,void 0);for(let i of Tn(t))if(Ut(i)&&i.feature.toLowerCase()===`name`)return n.set(e,i),i;else if(on(i)&&Tt(i.rule.ref))return r(i,i.rule.ref);else if(At(i)&&i.typeRef?.ref)return r(i,i.typeRef.ref)}function mr(e){return hr(e,new Set)}function hr(e,t){if(t.has(e))return!0;t.add(e);for(let n of Tn(e))if(on(n)){if(!n.rule.ref||Tt(n.rule.ref)&&!hr(n.rule.ref,t))return!1}else if(Ut(n))return!1;else if(zt(n))return!1;return!!e.definition}function gr(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t&&(Tt(t)||gt(t)||Ft(t)))return t.name}}function _r(e){if(Tt(e))return mr(e)?e.name:gr(e)??e.name;if(gt(e)||Ft(e)||Ot(e))return e.name;if(zt(e)){let t=vr(e);if(t)return t}else if(mt(e))return e.name;throw Error(`Cannot get name of Unknown Type`)}function vr(e){if(e.inferredType)return e.inferredType.name;if(e.type?.ref)return _r(e.type.ref)}function yr(e){return Nt(e)?e.type?.name??`string`:gr(e)??e.name}function br(e){let t={s:!1,i:!1,u:!1},n=Sr(e.definition,t),r=Object.entries(t).filter(([,e])=>e).map(([e])=>e).join(``);return new RegExp(n,r)}const xr=`[\\s\\S]`;function Sr(e,t){if(cn(e))return Cr(e);if(un(e))return wr(e);if(Gt(e))return Dr(e);if(fn(e)){let t=e.rule.ref;if(!t)throw Error(`Missing rule reference.`);return kr(Sr(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}else if(tn(e))return Er(e);else if(gn(e))return Tr(e);else if(rn(e)){let n=e.regex.lastIndexOf(`/`),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes(`i`),t.s=i.includes(`s`),t.u=i.includes(`u`)),kr(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}else if(vn(e))return kr(xr,{cardinality:e.cardinality,lookahead:e.lookahead});else throw Error(`Invalid terminal element: ${e?.$type}`)}function Cr(e){return kr(e.elements.map(e=>Sr(e)).join(`|`),{cardinality:e.cardinality,lookahead:e.lookahead})}function wr(e){return kr(e.elements.map(e=>Sr(e)).join(``),{cardinality:e.cardinality,lookahead:e.lookahead})}function Tr(e){return kr(`${xr}*?${Sr(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}function Er(e){return kr(`(?!${Sr(e.terminal)})${xr}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}function Dr(e){return e.right?kr(`[${Or(e.left)}-${Or(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):kr(Or(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}function Or(e){return Xn(e.value)}function kr(e,t){return(t.wrap!==!1||t.lookahead)&&(e=`(${t.lookahead??``}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function Ar(e){let t=[],n=e.Grammar;for(let e of n.rules)Nt(e)&&ar(e)&&qn(br(e))&&t.push(e.name);return{multilineCommentRules:t,nameRegexp:We}}var jr=Object.prototype.hasOwnProperty,Mr=l(function(e,t){if(ee(t)||_(t)){s(t,y(t),e);return}for(var n in t)jr.call(t,n)&&m(e,n,t[n])});function Nr(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}var Pr=Nr;function Fr(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}var Ir=Fr;function Lr(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}var Rr=Lr;function zr(e,t,n,r){return pe(e,function(e,i,a){t(r,e,n(e),a)}),r}var Br=zr;function Vr(e,t){return function(n,r){var i=d(n)?Rr:Br,a=t?t():{};return i(n,e,oe(r,2),a)}}var Hr=Vr,Ur=200;function Wr(e,t,n,r){var i=-1,a=ne,o=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=te(t,g(n))),r?(a=le,o=!1):t.length>=Ur&&(a=se,o=!1,t=new me(t));outer:for(;++i<s;){var u=e[i],d=n==null?u:n(u);if(u=r||u!==0?u:0,o&&d===d){for(var f=l;f--;)if(t[f]===d)continue outer;c.push(u)}else a(t,d,r)||c.push(u)}return c}var Gr=Wr,Kr=a(function(e,t){return h(e)?Gr(e,re(t,1,h,!0)):[]});function qr(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:be(t),Pr(e,t<0?0:t,r)):[]}var P=qr;function Jr(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:be(t),t=r-t,Pr(e,0,t<0?0:t)):[]}var Yr=Jr;function Xr(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}var Zr=Xr;function Qr(e,t){var n=!0;return pe(e,function(e,r,i){return n=!!t(e,r,i),n}),n}var $r=Qr;function ei(e,t,n){var r=d(e)?Zr:$r;return n&&i(e,t,n)&&(t=void 0),r(e,oe(t,3))}var ti=ei;function ni(e){return e&&e.length?e[0]:void 0}var ri=ni;function ii(e,t){return re(D(e,t),1)}var ai=ii,oi=Object.prototype.hasOwnProperty,si=Hr(function(e,t,n){oi.call(e,n)?e[n].push(t):p(e,n,[t])}),ci=Math.max;function li(e,t,n,r){e=_(e)?e:x(e),n=n&&!r?be(n):0;var i=e.length;return n<0&&(n=ci(i+n,0)),T(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&ce(e,t,n)>-1}var F=li,ui=Math.max;function di(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:be(n);return i<0&&(i=ui(r+i,0)),ce(e,t,i)}var fi=di,pi=`[object RegExp]`;function mi(e){return o(e)&&u(e)==pi}var hi=mi,gi=f&&f.isRegExp,_i=gi?g(gi):hi,vi=`Expected a function`;function yi(e){if(typeof e!=`function`)throw TypeError(vi);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var bi=yi;function xi(e,t){if(e==null)return{};var n=te(ae(e),function(e){return[e]});return t=oe(t),xe(e,n,function(e,n){return t(e,n[0])})}var Si=xi;function Ci(e,t){return(d(e)?he:ue)(e,bi(oe(t,3)))}var wi=Ci;function Ti(e,t){var n;return pe(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}var Ei=Ti;function Di(e,t,n){var r=d(e)?ie:Ei;return n&&i(e,t,n)&&(t=void 0),r(e,oe(t,3))}var Oi=Di;function ki(e){return e&&e.length?fe(e):[]}var Ai=ki;function ji(e,t){return e&&e.length?fe(e,oe(t,2)):[]}var Mi=ji;function Ni(e){console&&console.error&&console.error(`Error: ${e}`)}function Pi(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function Fi(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function Ii(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e}function Li(e){return Ri(e)?e.LABEL:e.name}function Ri(e){return T(e.LABEL)&&e.LABEL!==``}var zi=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),w(this.definition,t=>{t.accept(e)})}},I=class extends zi{constructor(e){super([]),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}set definition(e){}get definition(){return this.referencedRule===void 0?[]:this.referencedRule.definition}accept(e){e.visit(this)}},Bi=class extends zi{constructor(e){super(e.definition),this.orgText=``,Mr(this,Si(e,e=>e!==void 0))}},L=class extends zi{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Mr(this,Si(e,e=>e!==void 0))}},R=class extends zi{constructor(e){super(e.definition),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}},Vi=class extends zi{constructor(e){super(e.definition),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}},Hi=class extends zi{constructor(e){super(e.definition),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}},z=class extends zi{constructor(e){super(e.definition),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}},B=class extends zi{constructor(e){super(e.definition),this.idx=1,Mr(this,Si(e,e=>e!==void 0))}},Ui=class extends zi{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,Mr(this,Si(e,e=>e!==void 0))}},V=class{constructor(e){this.idx=1,Mr(this,Si(e,e=>e!==void 0))}accept(e){e.visit(this)}};function Wi(e){return D(e,Gi)}function Gi(e){function t(e){return D(e,Gi)}if(e instanceof I){let t={type:`NonTerminal`,name:e.nonTerminalName,idx:e.idx};return T(e.label)&&(t.label=e.label),t}else if(e instanceof L)return{type:`Alternative`,definition:t(e.definition)};else if(e instanceof R)return{type:`Option`,idx:e.idx,definition:t(e.definition)};else if(e instanceof Vi)return{type:`RepetitionMandatory`,idx:e.idx,definition:t(e.definition)};else if(e instanceof Hi)return{type:`RepetitionMandatoryWithSeparator`,idx:e.idx,separator:Gi(new V({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof B)return{type:`RepetitionWithSeparator`,idx:e.idx,separator:Gi(new V({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof z)return{type:`Repetition`,idx:e.idx,definition:t(e.definition)};else if(e instanceof Ui)return{type:`Alternation`,idx:e.idx,definition:t(e.definition)};else if(e instanceof V){let t={type:`Terminal`,name:e.terminalType.name,label:Li(e.terminalType),idx:e.idx};T(e.label)&&(t.terminalLabel=e.label);let n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=_i(n)?n.source:n),t}else if(e instanceof Bi)return{type:`Rule`,name:e.name,orgText:e.orgText,definition:t(e.definition)};else throw Error(`non exhaustive match`)}var Ki=class{visit(e){let t=e;switch(t.constructor){case I:return this.visitNonTerminal(t);case L:return this.visitAlternative(t);case R:return this.visitOption(t);case Vi:return this.visitRepetitionMandatory(t);case Hi:return this.visitRepetitionMandatoryWithSeparator(t);case B:return this.visitRepetitionWithSeparator(t);case z:return this.visitRepetition(t);case Ui:return this.visitAlternation(t);case V:return this.visitTerminal(t);case Bi:return this.visitRule(t);default:throw Error(`non exhaustive match`)}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function qi(e){return e instanceof L||e instanceof R||e instanceof z||e instanceof Vi||e instanceof Hi||e instanceof B||e instanceof V||e instanceof Bi}function Ji(e,t=[]){return e instanceof R||e instanceof z||e instanceof B?!0:e instanceof Ui?Oi(e.definition,e=>Ji(e,t)):e instanceof I&&F(t,e)?!1:e instanceof zi?(e instanceof I&&t.push(e),ti(e.definition,e=>Ji(e,t))):!1}function Yi(e){return e instanceof Ui}function Xi(e){if(e instanceof I)return`SUBRULE`;if(e instanceof R)return`OPTION`;if(e instanceof Ui)return`OR`;if(e instanceof Vi)return`AT_LEAST_ONE`;if(e instanceof Hi)return`AT_LEAST_ONE_SEP`;if(e instanceof B)return`MANY_SEP`;if(e instanceof z)return`MANY`;if(e instanceof V)return`CONSUME`;throw Error(`non exhaustive match`)}var Zi=class{walk(e,t=[]){w(e.definition,(n,r)=>{let i=P(e.definition,r+1);if(n instanceof I)this.walkProdRef(n,i,t);else if(n instanceof V)this.walkTerminal(n,i,t);else if(n instanceof L)this.walkFlat(n,i,t);else if(n instanceof R)this.walkOption(n,i,t);else if(n instanceof Vi)this.walkAtLeastOne(n,i,t);else if(n instanceof Hi)this.walkAtLeastOneSep(n,i,t);else if(n instanceof B)this.walkManySep(n,i,t);else if(n instanceof z)this.walkMany(n,i,t);else if(n instanceof Ui)this.walkOr(n,i,t);else throw Error(`non exhaustive match`)})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new R({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=Qi(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new R({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=Qi(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);w(e.definition,e=>{let t=new L({definition:[e]});this.walk(t,r)})}};function Qi(e,t,n){return[new R({definition:[new V({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function $i(e){if(e instanceof I)return $i(e.referencedRule);if(e instanceof V)return na(e);if(qi(e))return ea(e);if(Yi(e))return ta(e);throw Error(`non exhaustive match`)}function ea(e){let t=[],n=e.definition,r=0,i=n.length>r,a,o=!0;for(;i&&o;)a=n[r],o=Ji(a),t=t.concat($i(a)),r+=1,i=n.length>r;return Ai(t)}function ta(e){return Ai(_e(D(e.definition,e=>$i(e))))}function na(e){return[e.terminalType]}const ra=`_~IN~_`;var ia=class extends Zi{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=oa(e.referencedRule,e.idx)+this.topProd.name,i=$i(new L({definition:t.concat(n)}));this.follows[r]=i}};function aa(e){let t={};return w(e,e=>{Mr(t,new ia(e).startWalking())}),t}function oa(e,t){return e.name+t+ra}let sa={};const ca=new Hn;function la(e){let t=e.toString();if(sa.hasOwnProperty(t))return sa[t];{let e=ca.pattern(t);return sa[t]=e,e}}function ua(){sa={}}const da=`Complement Sets are not supported for first char optimization`,fa=`Unable to use "first char" lexer optimizations:
|
|
13
|
+
`;function pa(e,t=!1){try{let t=la(e);return ma(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===da)t&&Pi(`${fa}\tUnable to optimize: < ${e.toString()} >\n Complement Sets cannot be automatically optimized.
|
|
14
|
+
This will disable the lexer's first char optimizations.
|
|
15
|
+
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n=``;t&&(n=`
|
|
16
|
+
This will disable the lexer's first char optimizations.
|
|
17
|
+
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Ni(`${fa}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function ma(e,t,n){switch(e.type){case`Disjunction`:for(let r=0;r<e.value.length;r++)ma(e.value[r],t,n);break;case`Alternative`:let r=e.value;for(let e=0;e<r.length;e++){let i=r[e];switch(i.type){case`EndAnchor`:case`GroupBackReference`:case`Lookahead`:case`NegativeLookahead`:case`StartAnchor`:case`WordBoundary`:case`NonWordBoundary`:continue}let a=i;switch(a.type){case`Character`:ha(a.value,t,n);break;case`Set`:if(a.complement===!0)throw Error(da);w(a.value,e=>{if(typeof e==`number`)ha(e,t,n);else{let r=e;if(n===!0)for(let e=r.from;e<=r.to;e++)ha(e,t,n);else{for(let e=r.from;e<=r.to&&e<eo;e++)ha(e,t,n);if(r.to>=eo){let e=r.from>=eo?r.from:eo,n=r.to,i=no(e),a=no(n);for(let e=i;e<=a;e++)t[e]=e}}}});break;case`Group`:ma(a.value,t,n);break;default:throw Error(`Non Exhaustive Match`)}let o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type===`Group`&&va(a)===!1||a.type!==`Group`&&o===!1)break}break;default:throw Error(`non exhaustive match!`)}return x(t)}function ha(e,t,n){let r=no(e);t[r]=r,n===!0&&ga(e,t)}function ga(e,t){let n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){let e=no(r.charCodeAt(0));t[e]=e}else{let e=n.toLowerCase();if(e!==n){let n=no(e.charCodeAt(0));t[n]=n}}}function _a(e,t){return ve(e.value,e=>{if(typeof e==`number`)return F(t,e);{let n=e;return ve(t,e=>n.from<=e&&e<=n.to)!==void 0}})}function va(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?d(e.value)?ti(e.value,va):va(e.value):!1}var ya=class extends Un{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){F(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?_a(e,this.targetCharCodes)===void 0&&(this.found=!0):_a(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function ba(e,t){if(t instanceof RegExp){let n=la(t),r=new ya(e);return r.visit(n),r.found}else return ve(t,t=>F(e,t.charCodeAt(0)))!==void 0}const xa=`PATTERN`,Sa=`defaultMode`,Ca=`modes`;let wa=typeof RegExp(`(?:)`).sticky==`boolean`;function Ta(e,t){t=ge(t,{useSticky:wa,debug:!1,safeMode:!1,positionTracking:`full`,lineTerminatorCharacters:[`\r`,`
|
|
18
|
+
`],tracer:(e,t)=>t()});let n=t.tracer;n(`initCharCodeToOptimizedIndexMap`,()=>{ro()});let r;n(`Reject Lexer.NA`,()=>{r=wi(e,e=>e[xa]===U.NA)});let i=!1,a;n(`Transform Patterns`,()=>{i=!1,a=D(r,e=>{let n=e[xa];if(_i(n)){let e=n.source;return e.length===1&&e!==`^`&&e!==`$`&&e!==`.`&&!n.ignoreCase?e:e.length===2&&e[0]===`\\`&&!F([`d`,`D`,`s`,`S`,`t`,`r`,`n`,`t`,`0`,`c`,`b`,`B`,`f`,`v`,`w`,`W`],e[1])?e[1]:t.useSticky?Ua(n):Ha(n)}else if(c(n))return i=!0,{exec:n};else if(typeof n==`object`)return i=!0,n;else if(typeof n==`string`){if(n.length===1)return n;{let e=n.replace(/[\\^$.*+?()[\]{}|]/g,`\\$&`),r=new RegExp(e);return t.useSticky?Ua(r):Ha(r)}}else throw Error(`non exhaustive match`)})});let o,s,l,u,f;n(`misc mapping`,()=>{o=D(r,e=>e.tokenTypeIdx),s=D(r,e=>{let t=e.GROUP;if(t!==U.SKIPPED){if(T(t))return t;if(de(t))return!1;throw Error(`non exhaustive match`)}}),l=D(r,e=>{let t=e.LONGER_ALT;if(t)return d(t)?D(t,e=>fi(r,e)):[fi(r,t)]}),u=D(r,e=>e.PUSH_MODE),f=D(r,e=>E(e,`POP_MODE`))});let p;n(`Line Terminator Handling`,()=>{let e=Qa(t.lineTerminatorCharacters);p=D(r,e=>!1),t.positionTracking!==`onlyOffset`&&(p=D(r,t=>E(t,`LINE_BREAKS`)?!!t.LINE_BREAKS:Xa(t,e)===!1&&ba(e,t.PATTERN)))});let m,h,g,_;n(`Misc Mapping #2`,()=>{m=D(r,qa),h=D(a,Ja),g=C(r,(e,t)=>{let n=t.GROUP;return T(n)&&n!==U.SKIPPED&&(e[n]=[]),e},{}),_=D(a,(e,t)=>({pattern:a[t],longerAlt:l[t],canLineTerminator:p[t],isCustom:m[t],short:h[t],group:s[t],push:u[t],pop:f[t],tokenTypeIdx:o[t],tokenType:r[t]}))});let ee=!0,v=[];return t.safeMode||n(`First Char Optimization`,()=>{v=C(r,(e,n,r)=>{if(typeof n.PATTERN==`string`)$a(e,no(n.PATTERN.charCodeAt(0)),_[r]);else if(d(n.START_CHARS_HINT)){let t;w(n.START_CHARS_HINT,n=>{let i=no(typeof n==`string`?n.charCodeAt(0):n);t!==i&&(t=i,$a(e,i,_[r]))})}else if(_i(n.PATTERN))if(n.PATTERN.unicode)ee=!1,t.ensureOptimizations&&Ni(`${fa}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n The regexp unicode flag is not currently supported by the regexp-to-ast library.
|
|
19
|
+
This will disable the lexer's first char optimizations.
|
|
20
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=pa(n.PATTERN,t.ensureOptimizations);O(i)&&(ee=!1),w(i,t=>{$a(e,t,_[r])})}else t.ensureOptimizations&&Ni(`${fa}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n This will disable the lexer's first char optimizations.
|
|
21
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),ee=!1;return e},[])}),{emptyGroups:g,patternIdxToConfig:_,charCodeToPatternIdxToConfig:v,hasCustom:i,canBeOptimized:ee}}function Ea(e,t){let n=[],r=Oa(e);n=n.concat(r.errors);let i=ka(r.valid),a=i.valid;return n=n.concat(i.errors),n=n.concat(Da(a)),n=n.concat(La(a)),n=n.concat(Ra(a,t)),n=n.concat(za(a)),n}function Da(e){let t=[],n=b(e,e=>_i(e[xa]));return t=t.concat(ja(n)),t=t.concat(Pa(n)),t=t.concat(Fa(n)),t=t.concat(Ia(n)),t=t.concat(Ma(n)),t}function Oa(e){let t=b(e,e=>!E(e,xa));return{errors:D(t,e=>({message:`Token Type: ->`+e.name+`<- missing static 'PATTERN' property`,type:H.MISSING_PATTERN,tokenTypes:[e]})),valid:Kr(e,t)}}function ka(e){let t=b(e,e=>{let t=e[xa];return!_i(t)&&!c(t)&&!E(t,`exec`)&&!T(t)});return{errors:D(t,e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.`,type:H.INVALID_PATTERN,tokenTypes:[e]})),valid:Kr(e,t)}}const Aa=/[^\\][$]/;function ja(e){class t extends Un{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}return D(b(e,e=>{let n=e.PATTERN;try{let e=la(n),r=new t;return r.visit(e),r.found}catch{return Aa.test(n.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
|
|
22
|
+
Token Type: ->`+e.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
|
|
23
|
+
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:H.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function Ma(e){return D(b(e,e=>e.PATTERN.test(``)),e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' must not match an empty string`,type:H.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}const Na=/[^\\[][\^]|^\^/;function Pa(e){class t extends Un{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}return D(b(e,e=>{let n=e.PATTERN;try{let e=la(n),r=new t;return r.visit(e),r.found}catch{return Na.test(n.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
|
|
24
|
+
Token Type: ->`+e.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
|
|
25
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:H.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}function Fa(e){return D(b(e,e=>{let t=e[xa];return t instanceof RegExp&&(t.multiline||t.global)}),e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' may NOT contain global('g') or multiline('m')`,type:H.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}function Ia(e){let t=[],n=D(e,n=>C(e,(e,r)=>n.PATTERN.source===r.PATTERN.source&&!F(t,r)&&r.PATTERN!==U.NA?(t.push(r),e.push(r),e):e,[]));return n=Ir(n),D(b(n,e=>e.length>1),e=>{let t=D(e,e=>e.name);return{message:`The same RegExp pattern ->${ri(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(`, `)} <-`,type:H.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}function La(e){return D(b(e,e=>{if(!E(e,`GROUP`))return!1;let t=e.GROUP;return t!==U.SKIPPED&&t!==U.NA&&!T(t)}),e=>({message:`Token Type: ->`+e.name+`<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String`,type:H.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}function Ra(e,t){return D(b(e,e=>e.PUSH_MODE!==void 0&&!F(t,e.PUSH_MODE)),e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:H.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}function za(e){let t=[],n=C(e,(e,t,n)=>{let r=t.PATTERN;return r===U.NA||(T(r)?e.push({str:r,idx:n,tokenType:t}):_i(r)&&Va(r)&&e.push({str:r.source,idx:n,tokenType:t})),e},[]);return w(e,(e,r)=>{w(n,({str:n,idx:i,tokenType:a})=>{if(r<i&&Ba(n,e.PATTERN)){let n=`Token: ->${a.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:H.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}function Ba(e,t){if(_i(t)){let n=t.exec(e);return n!==null&&n.index===0}else if(c(t))return t(e,0,[],{});else if(E(t,`exec`))return t.exec(e,0,[],{});else if(typeof t==`string`)return t===e;else throw Error(`non exhaustive match`)}function Va(e){return ve([`.`,`\\`,`[`,`]`,`|`,`^`,`$`,`(`,`)`,`?`,`*`,`+`,`{`],t=>e.source.indexOf(t)!==-1)===void 0}function Ha(e){let t=e.ignoreCase?`i`:``;return RegExp(`^(?:${e.source})`,t)}function Ua(e){let t=e.ignoreCase?`iy`:`y`;return RegExp(`${e.source}`,t)}function Wa(e,t,n){let r=[];return E(e,Sa)||r.push({message:`A MultiMode Lexer cannot be initialized without a <`+Sa+`> property in its definition
|
|
26
|
+
`,type:H.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),E(e,Ca)||r.push({message:`A MultiMode Lexer cannot be initialized without a <`+Ca+`> property in its definition
|
|
27
|
+
`,type:H.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),E(e,Ca)&&E(e,Sa)&&!E(e.modes,e.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Sa}: <${e.defaultMode}>which does not exist\n`,type:H.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),E(e,Ca)&&w(e.modes,(e,t)=>{w(e,(n,i)=>{de(n)?r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}>\n`,type:H.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):E(n,`LONGER_ALT`)&&w(d(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT],i=>{!de(i)&&!F(e,i)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${n.name}> outside of mode <${t}>\n`,type:H.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),r}function Ga(e,t,n){let r=[],i=!1,a=wi(Ir(_e(x(e.modes))),e=>e[xa]===U.NA),o=Qa(n);return t&&w(a,e=>{let t=Xa(e,o);if(t!==!1){let n={message:Za(e,t),type:t.issue,tokenType:e};r.push(n)}else E(e,`LINE_BREAKS`)?e.LINE_BREAKS===!0&&(i=!0):ba(o,e.PATTERN)&&(i=!0)}),t&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
|
|
28
|
+
This Lexer has been defined to track line and column information,
|
|
29
|
+
But none of the Token Types can be identified as matching a line terminator.
|
|
30
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
|
|
31
|
+
for details.`,type:H.NO_LINE_BREAKS_FLAGS}),r}function Ka(e){let t={};return w(y(e),n=>{let r=e[n];if(d(r))t[n]=[];else throw Error(`non exhaustive match`)}),t}function qa(e){let t=e.PATTERN;if(_i(t))return!1;if(c(t)||E(t,`exec`))return!0;if(T(t))return!1;throw Error(`non exhaustive match`)}function Ja(e){return T(e)&&e.length===1?e.charCodeAt(0):!1}const Ya={test:function(e){let t=e.length;for(let n=this.lastIndex;n<t;n++){let t=e.charCodeAt(n);if(t===10)return this.lastIndex=n+1,!0;if(t===13)return e.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function Xa(e,t){if(E(e,`LINE_BREAKS`))return!1;if(_i(e.PATTERN)){try{ba(t,e.PATTERN)}catch(e){return{issue:H.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}else if(T(e.PATTERN))return!1;else if(qa(e))return{issue:H.CUSTOM_LINE_BREAK};else throw Error(`non exhaustive match`)}function Za(e,t){if(t.issue===H.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
|
|
32
|
+
\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===H.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
|
|
33
|
+
\tThe problem is in the <${e.name}> Token Type\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error(`non exhaustive match`)}function Qa(e){return D(e,e=>T(e)?e.charCodeAt(0):e)}function $a(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}const eo=256;let to=[];function no(e){return e<256?e:to[e]}function ro(){if(O(to)){to=Array(65536);for(let e=0;e<65536;e++)to[e]=e>255?255+~~(e/255):e}}function io(e,t){let n=e.tokenTypeIdx;return n===t.tokenTypeIdx?!0:t.isParent===!0&&t.categoryMatchesMap[n]===!0}function ao(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let oo=1;const so={};function co(e){let t=lo(e);uo(t),po(t),fo(t),w(t,e=>{e.isParent=e.categoryMatches.length>0})}function lo(e){let t=k(e),n=e,r=!0;for(;r;){n=Ir(_e(D(n,e=>e.CATEGORIES)));let e=Kr(n,t);t=t.concat(e),O(e)?r=!1:n=e}return t}function uo(e){w(e,e=>{ho(e)||(so[oo]=e,e.tokenTypeIdx=oo++),go(e)&&!d(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),go(e)||(e.CATEGORIES=[]),_o(e)||(e.categoryMatches=[]),vo(e)||(e.categoryMatchesMap={})})}function fo(e){w(e,e=>{e.categoryMatches=[],w(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(so[n].tokenTypeIdx)})})}function po(e){w(e,e=>{mo([],e)})}function mo(e,t){w(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),w(t.CATEGORIES,n=>{let r=e.concat(t);F(r,n)||mo(r,n)})}function ho(e){return E(e,`tokenTypeIdx`)}function go(e){return E(e,`CATEGORIES`)}function _o(e){return E(e,`categoryMatches`)}function vo(e){return E(e,`categoryMatchesMap`)}function yo(e){return E(e,`tokenTypeIdx`)}const bo={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,n,r,i){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`}};var H;(function(e){e[e.MISSING_PATTERN=0]=`MISSING_PATTERN`,e[e.INVALID_PATTERN=1]=`INVALID_PATTERN`,e[e.EOI_ANCHOR_FOUND=2]=`EOI_ANCHOR_FOUND`,e[e.UNSUPPORTED_FLAGS_FOUND=3]=`UNSUPPORTED_FLAGS_FOUND`,e[e.DUPLICATE_PATTERNS_FOUND=4]=`DUPLICATE_PATTERNS_FOUND`,e[e.INVALID_GROUP_TYPE_FOUND=5]=`INVALID_GROUP_TYPE_FOUND`,e[e.PUSH_MODE_DOES_NOT_EXIST=6]=`PUSH_MODE_DOES_NOT_EXIST`,e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]=`MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE`,e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]=`MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY`,e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]=`MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST`,e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]=`LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED`,e[e.SOI_ANCHOR_FOUND=11]=`SOI_ANCHOR_FOUND`,e[e.EMPTY_MATCH_PATTERN=12]=`EMPTY_MATCH_PATTERN`,e[e.NO_LINE_BREAKS_FLAGS=13]=`NO_LINE_BREAKS_FLAGS`,e[e.UNREACHABLE_PATTERN=14]=`UNREACHABLE_PATTERN`,e[e.IDENTIFY_TERMINATOR=15]=`IDENTIFY_TERMINATOR`,e[e.CUSTOM_LINE_BREAK=16]=`CUSTOM_LINE_BREAK`,e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]=`MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE`})(H||={});const xo={deferDefinitionErrorsHandling:!1,positionTracking:`full`,lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
|
|
34
|
+
`,`\r`],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:bo,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(xo);var U=class{constructor(e,t=xo){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=(e,t)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=Fi(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()},typeof t==`boolean`)throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
|
|
35
|
+
a boolean 2nd argument is no longer supported`);this.config=Mr({},xo,t);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n==`number`&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT(`Lexer Constructor`,()=>{let n,r=!0;this.TRACE_INIT(`Lexer Config handling`,()=>{if(this.config.lineTerminatorsPattern===xo.lineTerminatorsPattern)this.config.lineTerminatorsPattern=Ya;else if(this.config.lineTerminatorCharacters===xo.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
|
|
36
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.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),d(e)?n={modes:{defaultMode:k(e)},defaultMode:Sa}:(r=!1,n=k(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT(`performRuntimeChecks`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Wa(n,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT(`performWarningRuntimeChecks`,()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Ga(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),n.modes=n.modes?n.modes:{},w(n.modes,(e,t)=>{n.modes[t]=wi(e,e=>de(e))});let i=y(n.modes);if(w(n.modes,(e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,()=>{if(this.modes.push(n),this.config.skipValidations===!1&&this.TRACE_INIT(`validatePatterns`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Ea(e,i))}),O(this.lexerDefinitionErrors)){co(e);let r;this.TRACE_INIT(`analyzeTokenTypes`,()=>{r=Ta(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[n]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig,this.emptyGroups=Mr({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=r.canBeOptimized}})}),this.defaultMode=n.defaultMode,!O(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let e=D(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
|
|
37
|
+
`);throw Error(`Errors detected in definition of Lexer:
|
|
38
|
+
`+e)}w(this.lexerDefinitionWarning,e=>{Pi(e.message)}),this.TRACE_INIT(`Choosing sub-methods implementations`,()=>{if(wa?(this.chopInput=v,this.match=this.matchWithTest):(this.updateLastIndex=S,this.match=this.matchWithExec),r&&(this.handleModes=S),this.trackStartLines===!1&&(this.computeNewColumn=v),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=S),/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`,()=>{let e=C(this.canModeBeOptimized,(e,t,n)=>(t===!1&&e.push(n),e),[]);if(t.ensureOptimizations&&!O(e))throw Error(`Lexer Modes: < ${e.join(`, `)} > cannot be optimized.\n Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
|
|
39
|
+
Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT(`clearRegExpParserCache`,()=>{ua()}),this.TRACE_INIT(`toFastProperties`,()=>{Ii(this)})})}tokenize(e,t=this.defaultMode){if(!O(this.lexerDefinitionErrors)){let e=D(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
|
|
40
|
+
`);throw Error(`Unable to Tokenize because Errors detected in definition of Lexer:
|
|
41
|
+
`+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_=e,ee=_.length,v=0,y=0,te=this.hasCustom?0:Math.floor(e.length/10),ne=Array(te),re=[],ie=this.trackStartLines?1:void 0,b=this.trackStartLines?1:void 0,ae=Ka(this.emptyGroups),oe=this.trackStartLines,se=this.config.lineTerminatorsPattern,x=0,S=[],ce=[],le=[],C=[];Object.freeze(C);let ue;function de(){return S}function w(e){let t=no(e),n=ce[t];return n===void 0?C:n}let fe=e=>{if(le.length===1&&e.tokenType.PUSH_MODE===void 0){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);re.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{le.pop();let e=Se(le);S=this.patternIdxToConfig[e],ce=this.charCodeToPatternIdxToConfig[e],x=S.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;ue=ce&&t?w:de}};function pe(e){le.push(e),ce=this.charCodeToPatternIdxToConfig[e],S=this.patternIdxToConfig[e],x=S.length,x=S.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;ue=ce&&t?w:de}pe.call(this,t);let me,he=this.config.recoveryEnabled;for(;v<ee;){s=null;let t=_.charCodeAt(v),te=ue(t),ce=te.length;for(n=0;n<ce;n++){me=te[n];let r=me.pattern;c=null;let u=me.short;if(u===!1?me.isCustom===!0?(g=r.exec(_,v,ne,ae),g===null?s=null:(s=g[0],g.payload!==void 0&&(c=g.payload))):(this.updateLastIndex(r,v),s=this.match(r,e,v)):t===u&&(s=r),s!==null){if(o=me.longerAlt,o!==void 0){let t=o.length;for(i=0;i<t;i++){let t=S[o[i]],n=t.pattern;if(l=null,t.isCustom===!0?(g=n.exec(_,v,ne,ae),g===null?a=null:(a=g[0],g.payload!==void 0&&(l=g.payload))):(this.updateLastIndex(n,v),a=this.match(n,e,v)),a&&a.length>s.length){s=a,c=l,me=t;break}}}break}}if(s!==null){if(u=s.length,d=me.group,d!==void 0&&(f=me.tokenTypeIdx,p=this.createTokenInstance(s,v,f,me.tokenType,ie,b,u),this.handlePayload(p,c),d===!1?y=this.addToken(ne,y,p):ae[d].push(p)),e=this.chopInput(e,u),v+=u,b=this.computeNewColumn(b,u),oe===!0&&me.canLineTerminator===!0){let e=0,t,n;se.lastIndex=0;do t=se.test(s),t===!0&&(n=se.lastIndex-1,e++);while(t===!0);e!==0&&(ie+=e,b=u-n,this.updateTokenEndLineColumnLocation(p,d,n,e,ie,b,u))}this.handleModes(me,fe,pe,p)}else{let t=v,n=ie,i=b,a=he===!1;for(;a===!1&&v<ee;)for(e=this.chopInput(e,1),v++,r=0;r<x;r++){let t=S[r],n=t.pattern,i=t.short;if(i===!1?t.isCustom===!0?a=n.exec(_,v,ne,ae)!==null:(this.updateLastIndex(n,v),a=n.exec(e)!==null):_.charCodeAt(v)===i&&(a=!0),a===!0)break}if(m=v-t,b=this.computeNewColumn(b,m),h=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(_,t,m,n,i),re.push({offset:t,line:n,column:i,length:m,message:h}),he===!1)break}}return this.hasCustom||(ne.length=y),{tokens:ne,groups:ae,errors:re}}handleModes(e,t,n,r){if(e.pop===!0){let i=e.push;t(r),i!==void 0&&n.call(this,i)}else e.push!==void 0&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,a,o){let s,c;t!==void 0&&(s=n===o-1,c=s?-1:0,r===1&&s===!0||(e.endLine=i+c,e.endColumn=a-1+-c))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:i,endLine:i,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,n){return e.test(t)===!0?t.substring(n,e.lastIndex):null}matchWithExec(e,t){let n=e.exec(t);return n===null?null:n[0]}};U.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.`,U.NA=/NOT_APPLICABLE/;function So(e){return Co(e)?e.LABEL:e.name}function Co(e){return T(e.LABEL)&&e.LABEL!==``}const wo=`categories`,To=`label`,Eo=`group`,Do=`push_mode`,Oo=`pop_mode`,ko=`longer_alt`,Ao=`line_breaks`,jo=`start_chars_hint`;function Mo(e){return No(e)}function No(e){let t=e.pattern,n={};if(n.name=e.name,de(t)||(n.PATTERN=t),E(e,`parent`))throw`The parent property is no longer supported.
|
|
42
|
+
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return E(e,wo)&&(n.CATEGORIES=e[wo]),co([n]),E(e,To)&&(n.LABEL=e[To]),E(e,Eo)&&(n.GROUP=e[Eo]),E(e,Oo)&&(n.POP_MODE=e[Oo]),E(e,Do)&&(n.PUSH_MODE=e[Do]),E(e,ko)&&(n.LONGER_ALT=e[ko]),E(e,Ao)&&(n.LINE_BREAKS=e[Ao]),E(e,jo)&&(n.START_CHARS_HINT=e[jo]),n}const Po=Mo({name:`EOF`,pattern:U.NA});co([Po]);function Fo(e,t,n,r,i,a,o,s){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:a,startColumn:o,endColumn:s,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function Io(e,t){return io(e,t)}const Lo={buildMismatchTokenMessage({expected:e,actual:t,previous:n,ruleName:r}){return`Expecting ${Co(e)?`--> ${So(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return`Redundant input, expecting EOF but found: `+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){let a=`
|
|
43
|
+
but found: '`+ri(t).image+`'`;return r?`Expecting: `+r+a:`Expecting: one of these possible Token sequences:\n${D(D(C(e,(e,t)=>e.concat(t),[]),e=>`[${D(e,e=>So(e)).join(`, `)}]`),(e,t)=>` ${t+1}. ${e}`).join(`
|
|
44
|
+
`)}`+a},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){let i=`
|
|
45
|
+
but found: '`+ri(t).image+`'`;return n?`Expecting: `+n+i:`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::\n <${D(e,e=>`[${D(e,e=>So(e)).join(`,`)}]`).join(` ,`)}>`+i}};Object.freeze(Lo);const Ro={buildRuleNotFoundError(e,t){return`Invalid grammar, reference to a rule which is not defined: ->`+t.nonTerminalName+`<-
|
|
46
|
+
inside top level rule: ->`+e.name+`<-`}},zo={buildDuplicateFoundError(e,t){function n(e){return e instanceof V?e.terminalType.name:e instanceof I?e.nonTerminalName:``}let r=e.name,i=ri(t),a=i.idx,o=Xi(i),s=n(i),c=`->${o}${a>0?a:``}<- ${s?`with argument: ->${s}<-`:``}
|
|
47
|
+
appears more than once (${t.length} times) in the top level rule: ->${r}<-.
|
|
48
|
+
For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
|
|
49
|
+
`;return c=c.replace(/[ \t]+/g,` `),c=c.replace(/\s\s+/g,`
|
|
50
|
+
`),c},buildNamespaceConflictError(e){return`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(e){let t=D(e.prefixPath,e=>So(e)).join(`, `),n=e.alternation.idx===0?``:e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(` ,`)}> due to common lookahead prefix\nin <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){let t=D(e.prefixPath,e=>So(e)).join(`, `),n=e.alternation.idx===0?``:e.alternation.idx,r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(` ,`)}> in <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+=`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
51
|
+
For Further details.`,r},buildEmptyRepetitionError(e){let t=Xi(e.repetition);return e.repetition.idx!==0&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError(e){return`deprecated`},buildEmptyAlternationError(e){return`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`},buildTooManyAlternativesError(e){return`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(e){let t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --> ${D(e.leftRecursionPath,e=>e.name).concat([t]).join(` --> `)}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return`deprecated`},buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof Bi?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function Bo(e,t){let n=new Vo(e,t);return n.resolveRefs(),n.errors}var Vo=class extends Ki{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){w(x(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:G.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},Ho=class extends Zi{constructor(e,t){super(),this.topProd=e,this.path=t,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=k(this.path.ruleStack).reverse(),this.occurrenceStack=k(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){O(this.ruleStack)?(this.nextProductionName=``,this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Uo=class extends Ho{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName=``,this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found&&(this.possibleTokTypes=$i(new L({definition:t.concat(n)})),this.found=!0)}},Wo=class extends Zi{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Go=class extends Wo{walkMany(e,t,n){if(e.idx===this.occurrence){let e=ri(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof V&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}},Ko=class extends Wo{walkManySep(e,t,n){if(e.idx===this.occurrence){let e=ri(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof V&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}},qo=class extends Wo{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){let e=ri(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof V&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}},Jo=class extends Wo{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){let e=ri(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof V&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}};function Yo(e,t,n=[]){n=k(n);let r=[],i=0;function a(t){return t.concat(P(e,i+1))}function o(e){let i=Yo(a(e),t,n);return r.concat(i)}for(;n.length<t&&i<e.length;){let t=e[i];if(t instanceof L||t instanceof I)return o(t.definition);if(t instanceof R)r=o(t.definition);else if(t instanceof Vi)return o(t.definition.concat([new z({definition:t.definition})]));else if(t instanceof Hi)return o([new L({definition:t.definition}),new z({definition:[new V({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof B)r=o(t.definition.concat([new z({definition:[new V({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof z)r=o(t.definition.concat([new z({definition:t.definition})]));else if(t instanceof Ui)return w(t.definition,e=>{O(e.definition)===!1&&(r=o(e.definition))}),r;else if(t instanceof V)n.push(t.terminalType);else throw Error(`non exhaustive match`);i++}return r.push({partialPath:n,suffixDef:P(e,i)}),r}function Xo(e,t,n,r){let i=`EXIT_NONE_TERMINAL`,a=[i],o=`EXIT_ALTERNATIVE`,s=!1,c=t.length,l=c-r-1,u=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!O(d);){let e=d.pop();if(e===o){s&&Se(d).idx<=l&&d.pop();continue}let r=e.def,f=e.idx,p=e.ruleStack,m=e.occurrenceStack;if(O(r))continue;let h=r[0];if(h===i){let e={idx:f,def:P(r),ruleStack:Yr(p),occurrenceStack:Yr(m)};d.push(e)}else if(h instanceof V)if(f<c-1){let e=f+1,i=t[e];if(n(i,h.terminalType)){let t={idx:e,def:P(r),ruleStack:p,occurrenceStack:m};d.push(t)}}else if(f===c-1)u.push({nextTokenType:h.terminalType,nextTokenOccurrence:h.idx,ruleStack:p,occurrenceStack:m}),s=!0;else throw Error(`non exhaustive match`);else if(h instanceof I){let e=k(p);e.push(h.nonTerminalName);let t=k(m);t.push(h.idx);let n={idx:f,def:h.definition.concat(a,P(r)),ruleStack:e,occurrenceStack:t};d.push(n)}else if(h instanceof R){let e={idx:f,def:P(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t={idx:f,def:h.definition.concat(P(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof Vi){let e=new z({definition:h.definition,idx:h.idx}),t={idx:f,def:h.definition.concat([e],P(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof Hi){let e=new z({definition:[new V({terminalType:h.separator})].concat(h.definition),idx:h.idx}),t={idx:f,def:h.definition.concat([e],P(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof B){let e={idx:f,def:P(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new z({definition:[new V({terminalType:h.separator})].concat(h.definition),idx:h.idx}),n={idx:f,def:h.definition.concat([t],P(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof z){let e={idx:f,def:P(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new z({definition:h.definition,idx:h.idx}),n={idx:f,def:h.definition.concat([t],P(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof Ui)for(let e=h.definition.length-1;e>=0;e--){let t={idx:f,def:h.definition[e].definition.concat(P(r)),ruleStack:p,occurrenceStack:m};d.push(t),d.push(o)}else if(h instanceof L)d.push({idx:f,def:h.definition.concat(P(r)),ruleStack:p,occurrenceStack:m});else if(h instanceof Bi)d.push(Zo(h,f,p,m));else throw Error(`non exhaustive match`)}return u}function Zo(e,t,n,r){let i=k(n);i.push(e.name);let a=k(r);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}var W;(function(e){e[e.OPTION=0]=`OPTION`,e[e.REPETITION=1]=`REPETITION`,e[e.REPETITION_MANDATORY=2]=`REPETITION_MANDATORY`,e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]=`REPETITION_MANDATORY_WITH_SEPARATOR`,e[e.REPETITION_WITH_SEPARATOR=4]=`REPETITION_WITH_SEPARATOR`,e[e.ALTERNATION=5]=`ALTERNATION`})(W||={});function Qo(e){if(e instanceof R||e===`Option`)return W.OPTION;if(e instanceof z||e===`Repetition`)return W.REPETITION;if(e instanceof Vi||e===`RepetitionMandatory`)return W.REPETITION_MANDATORY;if(e instanceof Hi||e===`RepetitionMandatoryWithSeparator`)return W.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof B||e===`RepetitionWithSeparator`)return W.REPETITION_WITH_SEPARATOR;if(e instanceof Ui||e===`Alternation`)return W.ALTERNATION;throw Error(`non exhaustive match`)}function $o(e){let{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,a=Qo(r);return a===W.ALTERNATION?us(t,n,i):ds(t,n,a,i)}function es(e,t,n,r,i,a){let o=us(e,t,n);return a(o,r,ms(o)?ao:io,i)}function ts(e,t,n,r,i,a){let o=ds(e,t,i,n),s=ms(o)?ao:io;return a(o[0],s,r)}function ns(e,t,n,r){let i=e.length,a=ti(e,e=>ti(e,e=>e.length===1));if(t)return function(t){let r=D(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,o=r[t];if(!(o!==void 0&&o.call(this)===!1))nextPath:for(let e=0;e<a;e++){let r=i[e],a=r.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),r[e])===!1)continue nextPath;return t}}};if(a&&!r){let t=C(D(e,e=>_e(e)),(e,t,n)=>(w(t,t=>{E(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),w(t.categoryMatches,t=>{E(e,t)||(e[t]=n)})}),e),{});return function(){return t[this.LA(1).tokenTypeIdx]}}else return function(){for(let t=0;t<i;t++){let r=e[t],i=r.length;nextPath:for(let e=0;e<i;e++){let i=r[e],a=i.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),i[e])===!1)continue nextPath;return t}}}}function rs(e,t,n){let r=ti(e,e=>e.length===1),i=e.length;if(r&&!n){let t=_e(e);if(t.length===1&&O(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}else{let e=C(t,(e,t,n)=>(e[t.tokenTypeIdx]=!0,w(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return e[this.LA(1).tokenTypeIdx]===!0}}}else return function(){nextPath:for(let n=0;n<i;n++){let r=e[n],i=r.length;for(let e=0;e<i;e++)if(t(this.LA(e+1),r[e])===!1)continue nextPath;return!0}return!1}}var is=class extends Zi{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(r),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,W.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,W.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,W.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,W.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,W.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}},as=class extends Ki{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,W.OPTION)}visitRepetition(e){this.checkIsTarget(e,W.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,W.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,W.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,W.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,W.ALTERNATION)}};function os(e){let t=Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function ss(e){let t=[``];for(let n=0;n<e.length;n++){let r=e[n],i=[];for(let e=0;e<t.length;e++){let n=t[e];i.push(n+`_`+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){let t=`_`+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function cs(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;let i=e[r];for(let e=0;e<t.length;e++)if(i[t[e]]===!0)return!1}return!0}function ls(e,t){let n=D(e,e=>Yo([e],1)),r=os(n.length),i=D(n,e=>{let t={};return w(e,e=>{w(ss(e.partialPath),e=>{t[e]=!0})}),t}),a=n;for(let e=1;e<=t;e++){let n=a;a=os(n.length);for(let o=0;o<n.length;o++){let s=n[o];for(let n=0;n<s.length;n++){let c=s[n].partialPath,l=s[n].suffixDef,u=ss(c);if(cs(i,u,o)||O(l)||c.length===t){let e=r[o];if(fs(e,c)===!1){e.push(c);for(let e=0;e<u.length;e++){let t=u[e];i[o][t]=!0}}}else{let t=Yo(l,e+1,c);a[o]=a[o].concat(t),w(t,e=>{w(ss(e.partialPath),e=>{i[o][e]=!0})})}}}}return r}function us(e,t,n,r){let i=new as(e,W.ALTERNATION,r);return t.accept(i),ls(i.result,n)}function ds(e,t,n,r){let i=new as(e,n);t.accept(i);let a=i.result,o=new is(t,e,n).startWalking();return ls([new L({definition:a}),new L({definition:o})],r)}function fs(e,t){compareOtherPath:for(let n=0;n<e.length;n++){let r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){let n=t[e],i=r[e];if(!(n===i||i.categoryMatchesMap[n.tokenTypeIdx]!==void 0))continue compareOtherPath}return!0}}return!1}function ps(e,t){return e.length<t.length&&ti(e,(e,n)=>{let r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})}function ms(e){return ti(e,e=>ti(e,e=>ti(e,e=>O(e.categoryMatches))))}function hs(e){return D(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),e=>Object.assign({type:G.CUSTOM_LOOKAHEAD_VALIDATION},e))}function gs(e,t,n,r){let i=ai(e,e=>_s(e,n)),a=Ns(e,t,n),o=ai(e,e=>ks(e,n)),s=ai(e,t=>xs(t,e,r,n));return i.concat(a,o,s)}function _s(e,t){let n=new bs;e.accept(n);let r=n.allProductions;return D(x(Si(si(r,vs),e=>e.length>1)),n=>{let r=ri(n),i=t.buildDuplicateFoundError(e,n),a=Xi(r),o={message:i,type:G.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:r.idx},s=ys(r);return s&&(o.parameter=s),o})}function vs(e){return`${Xi(e)}_#_${e.idx}_#_${ys(e)}`}function ys(e){return e instanceof V?e.terminalType.name:e instanceof I?e.nonTerminalName:``}var bs=class extends Ki{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 xs(e,t,n,r){let i=[];if(C(t,(t,n)=>n.name===e.name?t+1:t,0)>1){let t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:G.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function Ss(e,t,n){let r=[],i;return F(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:G.INVALID_RULE_OVERRIDE,ruleName:e})),r}function Cs(e,t,n,r=[]){let i=[],a=ws(t.definition);if(O(a))return[];{let t=e.name;F(a,e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:G.LEFT_RECURSION,ruleName:t});let o=ai(Kr(a,r.concat([e])),t=>{let i=k(r);return i.push(t),Cs(e,t,n,i)});return i.concat(o)}}function ws(e){let t=[];if(O(e))return t;let n=ri(e);if(n instanceof I)t.push(n.referencedRule);else if(n instanceof L||n instanceof R||n instanceof Vi||n instanceof Hi||n instanceof B||n instanceof z)t=t.concat(ws(n.definition));else if(n instanceof Ui)t=_e(D(n.definition,e=>ws(e.definition)));else if(!(n instanceof V))throw Error(`non exhaustive match`);let r=Ji(n),i=e.length>1;if(r&&i){let n=P(e);return t.concat(ws(n))}else return t}var Ts=class extends Ki{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function Es(e,t){let n=new Ts;e.accept(n);let r=n.alternations;return ai(r,n=>ai(Yr(n.definition),(r,i)=>O(Xo([r],[],io,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:G.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]:[]))}function Ds(e,t,n){let r=new Ts;e.accept(r);let i=r.alternations;return i=wi(i,e=>e.ignoreAmbiguities===!0),ai(i,r=>{let i=r.idx,a=us(i,e,r.maxLookahead||t,r),o=js(a,r,e,n),s=Ms(a,r,e,n);return o.concat(s)})}var Os=class extends Ki{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 ks(e,t){let n=new Ts;e.accept(n);let r=n.alternations;return ai(r,n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:G.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[])}function As(e,t,n){let r=[];return w(e,e=>{let i=new Os;e.accept(i);let a=i.allProductions;w(a,i=>{let a=Qo(i),o=i.maxLookahead||t,s=i.idx,c=ds(s,e,a,o)[0];if(O(_e(c))){let t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});r.push({message:t,type:G.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),r}function js(e,t,n,r){let i=[];return D(C(e,(n,r,a)=>(t.definition[a].ignoreAmbiguities===!0||w(r,r=>{let o=[a];w(e,(e,n)=>{a!==n&&fs(e,r)&&t.definition[n].ignoreAmbiguities!==!0&&o.push(n)}),o.length>1&&!fs(i,r)&&(i.push(r),n.push({alts:o,path:r}))}),n),[]),e=>{let i=D(e.alts,e=>e+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:G.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}})}function Ms(e,t,n,r){let i=C(e,(e,t,n)=>{let r=D(t,e=>({idx:n,path:e}));return e.concat(r)},[]);return Ir(ai(i,e=>{if(t.definition[e.idx].ignoreAmbiguities===!0)return[];let a=e.idx,o=e.path;return D(b(i,e=>t.definition[e.idx].ignoreAmbiguities!==!0&&e.idx<a&&ps(e.path,o)),e=>{let i=[e.idx+1,a+1],o=t.idx===0?``:t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:G.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:o,alternatives:i}})}))}function Ns(e,t,n){let r=[],i=D(t,e=>e.name);return w(e,e=>{let t=e.name;if(F(i,t)){let i=n.buildNamespaceConflictError(e);r.push({message:i,type:G.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),r}function Ps(e){let t=ge(e,{errMsgProvider:Ro}),n={};return w(e.rules,e=>{n[e.name]=e}),Bo(n,t.errMsgProvider)}function Fs(e){return e=ge(e,{errMsgProvider:zo}),gs(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}const Is=`MismatchedTokenException`,Ls=`NoViableAltException`,Rs=`EarlyExitException`,zs=`NotAllInputParsedException`,Bs=[Is,Ls,Rs,zs];Object.freeze(Bs);function Vs(e){return F(Bs,e.name)}var Hs=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Us=class extends Hs{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Is}},Ws=class extends Hs{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ls}},Gs=class extends Hs{constructor(e,t){super(e,t),this.name=zs}},Ks=class extends Hs{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Rs}};const qs={},Js=`InRuleRecoveryException`;var Ys=class extends Error{constructor(e){super(e),this.name=Js}},Xs=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=E(e,`recoveryEnabled`)?e.recoveryEnabled:Fc.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Zs)}getTokenToInsert(e){let t=Fo(e,``,NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){let i=this.findReSyncTokenType(),a=this.exportLexerState(),o=[],s=!1,c=this.LA(1),l=this.LA(1),u=()=>{let e=this.LA(0),t=new Us(this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:c,previous:e,ruleName:this.getCurrRuleFullName()}),c,this.LA(0));t.resyncedTokens=Yr(o),this.SAVE_ERROR(t)};for(;!s;)if(this.tokenMatcher(l,r)){u();return}else if(n.call(this)){u(),e.apply(this,t);return}else this.tokenMatcher(l,i)?s=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Ys(`sad sad panda`)}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||O(t))return!1;let n=this.LA(1);return ve(t,e=>this.tokenMatcher(n,e))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return F(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),n=2;for(;;){let r=ve(e,e=>Io(t,e));if(r!==void 0)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return qs;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return D(e,(n,r)=>r===0?qs:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])})}flattenFollowSet(){return _e(D(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e)))}getFollowSetFromFollowKey(e){if(e===qs)return[Po];let t=e.ruleName+e.idxInCallingRule+ra+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Po)||t.push(e),t}reSyncTo(e){let t=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return Yr(t)}attemptInRepetitionRecovery(e,t,n,r,i,a,o){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:k(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return D(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function Zs(e,t,n,r,i,a,o){let s=this.getKeyForAutomaticLookahead(r,i),c=this.firstAfterRepMap[s];if(c===void 0){let e=this.getCurrRuleFullName(),t=this.getGAstProductions()[e];c=new a(t,i).startWalking(),this.firstAfterRepMap[s]=c}let l=c.token,u=c.occurrence,d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&l===void 0&&(l=Po,u=1),!(l===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(l,u,o)&&this.tryInRepetitionRecovery(e,t,n,l)}const Qs=1024,$s=1280,ec=1536;function tc(e,t,n){return n|t|e}var nc=class{constructor(e){this.maxLookahead=e?.maxLookahead??Fc.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(O(t)){let n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return ai(e,e=>Cs(e,e,zo))}validateEmptyOrAlternatives(e){return ai(e,e=>Es(e,zo))}validateAmbiguousAlternationAlternatives(e,t){return ai(e,e=>Ds(e,t,zo))}validateSomeNonEmptyLookaheadPath(e,t){return As(e,t,zo)}buildLookaheadForAlternation(e){return es(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,ns)}buildLookaheadForOptional(e){return ts(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Qo(e.prodType),rs)}},rc=class{initLooksAhead(e){this.dynamicTokensEnabled=E(e,`dynamicTokensEnabled`)?e.dynamicTokensEnabled:Fc.dynamicTokensEnabled,this.maxLookahead=E(e,`maxLookahead`)?e.maxLookahead:Fc.maxLookahead,this.lookaheadStrategy=E(e,`lookaheadStrategy`)?e.lookaheadStrategy:new nc({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){w(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:n,option:r,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=ac(e);w(t,t=>{let n=t.idx===0?``:t.idx;this.TRACE_INIT(`${Xi(t)}${n}`,()=>{let n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=tc(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)})}),w(n,t=>{this.computeLookaheadFunc(e,t.idx,768,`Repetition`,t.maxLookahead,Xi(t))}),w(r,t=>{this.computeLookaheadFunc(e,t.idx,512,`Option`,t.maxLookahead,Xi(t))}),w(i,t=>{this.computeLookaheadFunc(e,t.idx,Qs,`RepetitionMandatory`,t.maxLookahead,Xi(t))}),w(a,t=>{this.computeLookaheadFunc(e,t.idx,ec,`RepetitionMandatoryWithSeparator`,t.maxLookahead,Xi(t))}),w(o,t=>{this.computeLookaheadFunc(e,t.idx,$s,`RepetitionWithSeparator`,t.maxLookahead,Xi(t))})})})}computeLookaheadFunc(e,t,n,r,i,a){this.TRACE_INIT(`${a}${t===0?``:t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),o=tc(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(o,a)})}getKeyForAutomaticLookahead(e,t){return tc(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}};const ic=new class extends Ki{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)}};function ac(e){ic.reset(),e.accept(ic);let t=ic.dslMethods;return ic.reset(),t}function oc(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function sc(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function cc(e,t,n){e.children[n]===void 0?e.children[n]=[t]:e.children[n].push(t)}function lc(e,t,n){e.children[t]===void 0?e.children[t]=[n]:e.children[t].push(n)}function uc(e,t){Object.defineProperty(e,`name`,{enumerable:!1,configurable:!0,writable:!1,value:t})}function dc(e,t){let n=y(e),r=n.length;for(let i=0;i<r;i++){let r=e[n[i]],a=r.length;for(let e=0;e<a;e++){let n=r[e];n.tokenTypeIdx===void 0&&this[n.name](n.children,t)}}}function fc(e,t){let n=function(){};return uc(n,e+`BaseSemantics`),n.prototype={visit:function(e,t){if(d(e)&&(e=e[0]),!de(e))return this[e.name](e.children,t)},validateVisitor:function(){let e=hc(this,t);if(!O(e)){let t=D(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join(`
|
|
52
|
+
|
|
53
|
+
`).replace(/\n/g,`
|
|
54
|
+
`)}`)}}},n.prototype.constructor=n,n._RULE_NAMES=t,n}function pc(e,t,n){let r=function(){};uc(r,e+`BaseSemanticsWithDefaults`);let i=Object.create(n.prototype);return w(t,e=>{i[e]=dc}),r.prototype=i,r.prototype.constructor=r,r}var mc;(function(e){e[e.REDUNDANT_METHOD=0]=`REDUNDANT_METHOD`,e[e.MISSING_METHOD=1]=`MISSING_METHOD`})(mc||={});function hc(e,t){return gc(e,t)}function gc(e,t){return Ir(D(b(t,t=>c(e[t])===!1),t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:mc.MISSING_METHOD,methodName:t})))}var _c=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=E(e,`nodeLocationTracking`)?e.nodeLocationTracking:Fc.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=S,this.cstFinallyStateUpdate=S,this.cstPostTerminal=S,this.cstPostNonTerminal=S,this.cstPostRule=S;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sc,this.setNodeLocationFromNode=sc,this.cstPostRule=S,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=S,this.setNodeLocationFromNode=S,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=oc,this.setNodeLocationFromNode=oc,this.cstPostRule=S,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=S,this.setNodeLocationFromNode=S,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=S,this.setNodeLocationFromNode=S,this.cstPostRule=S,this.setInitialNodeLocation=S;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){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];cc(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];lc(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(de(this.baseCstVisitorConstructor)){let e=fc(this.className,y(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(de(this.baseCstVisitorWithDefaultsConstructor)){let e=pc(this.className,y(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},vc=class{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)):Pc}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Pc:this.tokVector[t]}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()}},yc=class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}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,t,n=Ic){if(F(this.definedRulesNames,e)){let t={message:zo.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:G.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=Ic){let r=Ss(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);let i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(Vs(e))return!1;throw e}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Wi(x(this.gastProductionsCache))}},bc=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ao,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},E(t,`serializedGrammar`))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
|
|
55
|
+
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
|
|
56
|
+
For Further details.`);if(d(e)){if(O(e))throw Error(`A Token Vocabulary cannot be empty.
|
|
57
|
+
Note that the first argument for the parser constructor
|
|
58
|
+
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.
|
|
59
|
+
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
|
|
60
|
+
For Further details.`)}if(d(e))this.tokensMap=C(e,(e,t)=>(e[t.name]=t,e),{});else if(E(e,`modes`)&&ti(_e(x(e.modes)),yo))this.tokensMap=C(Ai(_e(x(e.modes))),(e,t)=>(e[t.name]=t,e),{});else if(r(e))this.tokensMap=k(e);else throw Error(`<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition`);this.tokensMap.EOF=Po,this.tokenMatcher=ti(E(e,`modes`)?_e(x(e.modes)):x(e),e=>O(e.categoryMatches))?ao:io,co(x(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let r=E(n,`resyncEnabled`)?n.resyncEnabled:Ic.resyncEnabled,i=E(n,`recoveryValueFunc`)?n.recoveryValueFunc:Ic.recoveryValueFunc,a=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return o=this.outputCst===!0?function(...n){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n);let r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...n){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n)}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){let r=this.RULE_STACK.length===1,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Vs(e)){let t=e;if(i){let r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r))if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}else return n(e);else{if(this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}}else if(r)return this.moveToTerminatedState(),n(e);else throw t}else throw e}optionInternal(e,t){let n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let r=this.getLaFuncFromCache(n),i;if(typeof e!=`function`){i=e.DEF;let t=e.GATE;if(t!==void 0){let e=r;r=()=>t.call(this)&&e.call(this)}}else i=e;if(r.call(this)===!0)return i.call(this)}atLeastOneInternal(e,t){let n=this.getKeyForAutomaticLookahead(Qs,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r=this.getLaFuncFromCache(n),i;if(typeof t!=`function`){i=t.DEF;let e=t.GATE;if(e!==void 0){let t=r;r=()=>e.call(this)&&t.call(this)}}else i=t;if(r.call(this)===!0){let e=this.doSingleRepetition(i);for(;r.call(this)===!0&&e===!0;)e=this.doSingleRepetition(i)}else throw this.raiseEarlyExitException(e,W.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],r,Qs,e,qo)}atLeastOneSepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(ec,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Jo],t,ec,e,Jo)}else throw this.raiseEarlyExitException(e,W.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r=this.getLaFuncFromCache(n),i;if(typeof t!=`function`){i=t.DEF;let e=t.GATE;if(e!==void 0){let t=r;r=()=>e.call(this)&&t.call(this)}}else i=t;let a=!0;for(;r.call(this)===!0&&a===!0;)a=this.doSingleRepetition(i);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],r,768,e,Go,a)}manySepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead($s,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Ko],t,$s,e,Ko)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,ec,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let n=this.getKeyForAutomaticLookahead(256,t),r=d(e)?e:e.DEF,i=this.getLaFuncFromCache(n).call(this,r);if(i!==void 0)return r[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Gs(t,e))}}subruleInternal(e,t,n){let r;try{let i=n===void 0?void 0:n.ARGS;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),r}catch(t){throw this.subruleInternalError(t,n,e.ruleName)}}subruleInternalError(e,t,n){throw Vs(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{let t=this.LA(1);this.tokenMatcher(t,e)===!0?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(n){r=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r,i=this.LA(0);throw r=n!==void 0&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Us(r,t,i))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name===`MismatchedTokenException`&&!this.isBackTracking()){let r=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,r)}catch(e){throw e.name===Js?n:e}}else throw n}saveRecogState(){let e=this.errors,t=k(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Po)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},xc=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=E(e,`errorMessageProvider`)?e.errorMessageProvider:Fc.errorMessageProvider}SAVE_ERROR(e){if(Vs(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:k(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error(`Trying to save an Error which is not a RecognitionException`)}get errors(){return k(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){let r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],a=ds(e,i,t,this.maxLookahead)[0],o=[];for(let e=1;e<=this.maxLookahead;e++)o.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new Ks(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let n=this.getCurrRuleFullName(),r=this.getGAstProductions()[n],i=us(e,r,this.maxLookahead),a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let o=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:i,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ws(s,this.LA(1),o))}},Sc=class{initContentAssist(){}computeContentAssist(e,t){let n=this.gastProductionsCache[e];if(de(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Xo([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=ri(e.ruleStack),n=this.getGAstProductions()[t];return new Uo(n,e).startWalking()}};const Cc={description:`This Object indicates the Parser is during Recording Phase`};Object.freeze(Cc);const wc=Mo({name:`RECORDING_PHASE_TOKEN`,pattern:U.NA});co([wc]);const Tc=Fo(wc,`This IToken indicates the Parser is in Recording Phase
|
|
61
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Tc);const Ec={name:`This CSTNode indicates the Parser is in Recording Phase
|
|
62
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};var Dc=class{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++){let t=e>0?e:``;this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},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`,()=>{let e=this;for(let t=0;t<10;t++){let n=t>0?t:``;delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}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,t){return()=>!0}LA_RECORD(e){return Pc}topLevelRuleRecord(e,t){try{let n=new Bi({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(e){if(e.KNOWN_RECORDER_ERROR!==!0)try{e.message+=`
|
|
63
|
+
This error was thrown during the "grammar recording phase" For more info see:
|
|
64
|
+
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw e}throw e}}optionInternalRecord(e,t){return Oc.call(this,R,e,t)}atLeastOneInternalRecord(e,t){Oc.call(this,Vi,t,e)}atLeastOneSepFirstInternalRecord(e,t){Oc.call(this,Hi,t,e,!0)}manyInternalRecord(e,t){Oc.call(this,z,t,e)}manySepFirstInternalRecord(e,t){Oc.call(this,B,t,e,!0)}orInternalRecord(e,t){return kc.call(this,e,t)}subruleInternalRecord(e,t,n){if(jc(t),!e||E(e,`ruleName`)===!1){let n=Error(`<SUBRULE${Ac(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=Se(this.recordingProdStack),i=e.ruleName,a=new I({idx:t,nonTerminalName:i,label:n?.LABEL,referencedRule:void 0});return r.definition.push(a),this.outputCst?Ec:Cc}consumeInternalRecord(e,t,n){if(jc(t),!ho(e)){let n=Error(`<CONSUME${Ac(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=Se(this.recordingProdStack),i=new V({idx:t,terminalType:e,label:n?.LABEL});return r.definition.push(i),Tc}};function Oc(e,t,n,r=!1){jc(n);let i=Se(this.recordingProdStack),a=c(t)?t:t.DEF,o=new e({definition:[],idx:n});return r&&(o.separator=t.SEP),E(t,`MAX_LOOKAHEAD`)&&(o.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(o),a.call(this),i.definition.push(o),this.recordingProdStack.pop(),Cc}function kc(e,t){jc(t);let n=Se(this.recordingProdStack),r=d(e)===!1,i=r===!1?e:e.DEF,a=new Ui({definition:[],idx:t,ignoreAmbiguities:r&&e.IGNORE_AMBIGUITIES===!0});return E(e,`MAX_LOOKAHEAD`)&&(a.maxLookahead=e.MAX_LOOKAHEAD),a.hasPredicates=Oi(i,e=>c(e.GATE)),n.definition.push(a),w(i,e=>{let t=new L({definition:[]});a.definition.push(t),E(e,`IGNORE_AMBIGUITIES`)?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:E(e,`GATE`)&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),Cc}function Ac(e){return e===0?``:`${e}`}function jc(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than 256`);throw t.KNOWN_RECORDER_ERROR=!0,t}}var Mc=class{initPerformanceTracer(e){if(E(e,`traceInitPerf`)){let t=e.traceInitPerf,n=typeof t==`number`;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Fc.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=Fi(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()}};function Nc(e,t){t.forEach(t=>{let n=t.prototype;Object.getOwnPropertyNames(n).forEach(r=>{if(r===`constructor`)return;let i=Object.getOwnPropertyDescriptor(n,r);i&&(i.get||i.set)?Object.defineProperty(e.prototype,r,i):e.prototype[r]=t.prototype[r]})})}const Pc=Fo(Po,``,NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Pc);const Fc=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Lo,nodeLocationTracking:`none`,traceInitPerf:!1,skipValidations:!1}),Ic=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});var G;(function(e){e[e.INVALID_RULE_NAME=0]=`INVALID_RULE_NAME`,e[e.DUPLICATE_RULE_NAME=1]=`DUPLICATE_RULE_NAME`,e[e.INVALID_RULE_OVERRIDE=2]=`INVALID_RULE_OVERRIDE`,e[e.DUPLICATE_PRODUCTIONS=3]=`DUPLICATE_PRODUCTIONS`,e[e.UNRESOLVED_SUBRULE_REF=4]=`UNRESOLVED_SUBRULE_REF`,e[e.LEFT_RECURSION=5]=`LEFT_RECURSION`,e[e.NONE_LAST_EMPTY_ALT=6]=`NONE_LAST_EMPTY_ALT`,e[e.AMBIGUOUS_ALTS=7]=`AMBIGUOUS_ALTS`,e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]=`CONFLICT_TOKENS_RULES_NAMESPACE`,e[e.INVALID_TOKEN_NAME=9]=`INVALID_TOKEN_NAME`,e[e.NO_NON_EMPTY_LOOKAHEAD=10]=`NO_NON_EMPTY_LOOKAHEAD`,e[e.AMBIGUOUS_PREFIX_ALTS=11]=`AMBIGUOUS_PREFIX_ALTS`,e[e.TOO_MANY_ALTS=12]=`TOO_MANY_ALTS`,e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]=`CUSTOM_LOOKAHEAD_VALIDATION`})(G||={});function Lc(e=void 0){return function(){return e}}var Rc=class e{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 t;this.selfAnalysisDone=!0;let n=this.className;this.TRACE_INIT(`toFastProps`,()=>{Ii(this)}),this.TRACE_INIT(`Grammar Recording`,()=>{try{this.enableRecording(),w(this.definedRulesNames,e=>{let t=this[e].originalGrammarAction,n;this.TRACE_INIT(`${e} Rule`,()=>{n=this.topLevelRuleRecord(e,t)}),this.gastProductionsCache[e]=n})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT(`Grammar Resolving`,()=>{r=Ps({rules:x(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT(`Grammar Validations`,()=>{if(O(r)&&this.skipValidations===!1){let e=Fs({rules:x(this.gastProductionsCache),tokenTypes:x(this.tokensMap),errMsgProvider:zo,grammarName:n}),t=hs({lookaheadStrategy:this.lookaheadStrategy,rules:x(this.gastProductionsCache),tokenTypes:x(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(e,t)}}),O(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT(`computeAllProdsFollows`,()=>{this.resyncFollows=aa(x(this.gastProductionsCache))}),this.TRACE_INIT(`ComputeLookaheadFunctions`,()=>{var e,t;(t=(e=this.lookaheadStrategy).initialize)==null||t.call(e,{rules:x(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(x(this.gastProductionsCache))})),!e.DEFER_DEFINITION_ERRORS_HANDLING&&!O(this.definitionErrors))throw t=D(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected:\n ${t.join(`
|
|
65
|
+
-------------------------------
|
|
66
|
+
`)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),E(t,`ignoredIssues`))throw Error(`The <ignoredIssues> IParserConfig property has been deprecated.
|
|
67
|
+
Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
|
|
68
|
+
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
|
|
69
|
+
For further details.`);this.skipValidations=E(t,`skipValidations`)?t.skipValidations:Fc.skipValidations}};Rc.DEFER_DEFINITION_ERRORS_HANDLING=!1,Nc(Rc,[Xs,rc,_c,vc,bc,yc,xc,Sc,Dc,Mc]);var zc=class extends Rc{constructor(e,t=Fc){let n=k(t);n.outputCst=!1,super(e,n)}};function Bc(e,t,n){return`${e.name}_${t}_${n}`}var Vc=class{constructor(e){this.target=e}isEpsilon(){return!1}},Hc=class extends Vc{constructor(e,t){super(e),this.tokenType=t}},Uc=class extends Vc{constructor(e){super(e)}isEpsilon(){return!0}},Wc=class extends Vc{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}};function Gc(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Kc(t,e);let n=e.length;for(let r=0;r<n;r++){let n=e[r],i=el(t,n,n);i!==void 0&&ul(t,n,i)}return t}function Kc(e,t){let n=t.length;for(let r=0;r<n;r++){let n=t[r],i=q(e,n,void 0,{type:2}),a=q(e,n,void 0,{type:7});i.stop=a,e.ruleToStartState.set(n,i),e.ruleToStopState.set(n,a)}}function qc(e,t,n){return n instanceof V?cl(e,t,n.terminalType,n):n instanceof I?ll(e,t,n):n instanceof Ui?Qc(e,t,n):n instanceof R?$c(e,t,n):n instanceof z?Jc(e,t,n):n instanceof B?Yc(e,t,n):n instanceof Vi?Xc(e,t,n):n instanceof Hi?Zc(e,t,n):el(e,t,n)}function Jc(e,t,n){let r=q(e,t,n,{type:5});return il(e,r),nl(e,t,n,al(e,t,r,n,el(e,t,n)))}function Yc(e,t,n){let r=q(e,t,n,{type:5});return il(e,r),nl(e,t,n,al(e,t,r,n,el(e,t,n)),cl(e,t,n.separator,n))}function Xc(e,t,n){let r=q(e,t,n,{type:4});return il(e,r),tl(e,t,n,al(e,t,r,n,el(e,t,n)))}function Zc(e,t,n){let r=q(e,t,n,{type:4});return il(e,r),tl(e,t,n,al(e,t,r,n,el(e,t,n)),cl(e,t,n.separator,n))}function Qc(e,t,n){let r=q(e,t,n,{type:1});return il(e,r),al(e,t,r,n,...D(n.definition,n=>qc(e,t,n)))}function $c(e,t,n){let r=q(e,t,n,{type:1});return il(e,r),rl(e,t,n,al(e,t,r,n,el(e,t,n)))}function el(e,t,n){let r=b(D(n.definition,n=>qc(e,t,n)),e=>e!==void 0);return r.length===1?r[0]:r.length===0?void 0:sl(e,r)}function tl(e,t,n,r,i){let a=r.left,o=r.right,s=q(e,t,n,{type:11});il(e,s);let c=q(e,t,n,{type:12});return a.loopback=s,c.loopback=s,e.decisionMap[Bc(t,i?`RepetitionMandatoryWithSeparator`:`RepetitionMandatory`,n.idx)]=s,K(o,s),i===void 0?(K(s,a),K(s,c)):(K(s,c),K(s,i.left),K(i.right,a)),{left:a,right:c}}function nl(e,t,n,r,i){let a=r.left,o=r.right,s=q(e,t,n,{type:10});il(e,s);let c=q(e,t,n,{type:12}),l=q(e,t,n,{type:9});return s.loopback=l,c.loopback=l,K(s,a),K(s,c),K(o,l),i===void 0?K(l,s):(K(l,c),K(l,i.left),K(i.right,a)),e.decisionMap[Bc(t,i?`RepetitionWithSeparator`:`Repetition`,n.idx)]=s,{left:s,right:c}}function rl(e,t,n,r){let i=r.left,a=r.right;return K(i,a),e.decisionMap[Bc(t,`Option`,n.idx)]=i,r}function il(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function al(e,t,n,r,...i){let a=q(e,t,r,{type:8,start:n});n.end=a;for(let e of i)e===void 0?K(n,a):(K(n,e.left),K(e.right,a));let o={left:n,right:a};return e.decisionMap[Bc(t,ol(r),r.idx)]=n,o}function ol(e){if(e instanceof Ui)return`Alternation`;if(e instanceof R)return`Option`;if(e instanceof z)return`Repetition`;if(e instanceof B)return`RepetitionWithSeparator`;if(e instanceof Vi)return`RepetitionMandatory`;if(e instanceof Hi)return`RepetitionMandatoryWithSeparator`;throw Error(`Invalid production type encountered`)}function sl(e,t){let n=t.length;for(let r=0;r<n-1;r++){let n=t[r],i;n.left.transitions.length===1&&(i=n.left.transitions[0]);let a=i instanceof Wc,o=i,s=t[r+1].left;n.left.type===1&&n.right.type===1&&i!==void 0&&(a&&o.followState===n.right||i.target===n.right)?(a?o.followState=s:i.target=s,fl(e,n.right)):K(n.right,s)}let r=t[0],i=t[n-1];return{left:r.left,right:i.right}}function cl(e,t,n,r){let i=q(e,t,r,{type:1}),a=q(e,t,r,{type:1});return dl(i,new Hc(a,n)),{left:i,right:a}}function ll(e,t,n){let r=n.referencedRule,i=e.ruleToStartState.get(r),a=q(e,t,n,{type:1}),o=q(e,t,n,{type:1});return dl(a,new Wc(i,r,o)),{left:a,right:o}}function ul(e,t,n){let r=e.ruleToStartState.get(t);K(r,n.left);let i=e.ruleToStopState.get(t);return K(n.right,i),{left:r,right:i}}function K(e,t){dl(e,new Uc(t))}function q(e,t,n,r){let i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function dl(e,t){e.transitions.length===0&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function fl(e,t){e.states.splice(e.states.indexOf(t),1)}const pl={};var ml=class{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=hl(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return D(this.configs,e=>e.alt)}get key(){let e=``;for(let t in this.map)e+=t+`:`;return e}};function hl(e,t=!0){return`${t?`a${e.alt}`:``}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join(`_`)}`}function gl(e,t){let n={};return r=>{let i=r.toString(),a=n[i];return a===void 0?(a={atnStartState:e,decision:t,states:{}},n[i]=a,a):a}}var _l=class{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e=``,t=this.predicates.length;for(let n=0;n<t;n++)e+=this.predicates[n]===!0?`1`:`0`;return e}};const vl=new _l;var yl=class extends nc{constructor(e){super(),this.logging=e?.logging??(e=>console.log(e))}initialize(e){this.atn=Gc(e.rules),this.dfas=xl(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:n,hasPredicates:r,dynamicTokensEnabled:i}=e,a=this.dfas,o=this.logging,s=Bc(n,`Alternation`,t),c=this.atn.decisionMap[s].decision,l=D($o({maxLookahead:1,occurrence:t,prodType:`Alternation`,rule:n}),e=>D(e,e=>e[0]));if(bl(l,!1)&&!i){let e=C(l,(e,t,n)=>(w(t,t=>{t&&(e[t.tokenTypeIdx]=n,w(t.categoryMatches,t=>{e[t]=n}))}),e),{});return r?function(t){let n=e[this.LA(1).tokenTypeIdx];if(t!==void 0&&n!==void 0){let e=t[n]?.GATE;if(e!==void 0&&e.call(this)===!1)return}return n}:function(){return e[this.LA(1).tokenTypeIdx]}}else if(r)return function(e){let t=new _l,n=e===void 0?0:e.length;for(let r=0;r<n;r++){let n=e?.[r].GATE;t.set(r,n===void 0||n.call(this))}let r=Sl.call(this,a,c,t,o);return typeof r==`number`?r:void 0};else return function(){let e=Sl.call(this,a,c,vl,o);return typeof e==`number`?e:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:n,prodType:r,dynamicTokensEnabled:i}=e,a=this.dfas,o=this.logging,s=Bc(n,r,t),c=this.atn.decisionMap[s].decision,l=D($o({maxLookahead:1,occurrence:t,prodType:r,rule:n}),e=>D(e,e=>e[0]));if(bl(l)&&l[0][0]&&!i){let e=l[0],t=_e(e);if(t.length===1&&O(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}else{let e=C(t,(e,t)=>(t!==void 0&&(e[t.tokenTypeIdx]=!0,w(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){return e[this.LA(1).tokenTypeIdx]===!0}}}return function(){let e=Sl.call(this,a,c,vl,o);return typeof e==`object`?!1:e===0}}};function bl(e,t=!0){let n=new Set;for(let r of e){let e=new Set;for(let i of r){if(i===void 0){if(t)break;return!1}let r=[i.tokenTypeIdx].concat(i.categoryMatches);for(let t of r)if(n.has(t)){if(!e.has(t))return!1}else n.add(t),e.add(t)}}return!0}function xl(e){let t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=gl(e.decisionStates[r],r);return n}function Sl(e,t,n,r){let i=e[t](n),a=i.start;return a===void 0&&(a=Fl(i,Nl(Il(i.atnStartState))),i.start=a),Cl.apply(this,[i,a,n,r])}function Cl(e,t,n,r){let i=t,a=1,o=[],s=this.LA(a++);for(;;){let t=kl(i,s);if(t===void 0&&(t=wl.apply(this,[e,i,s,a,n,r])),t===pl)return Ol(o,i,s);if(t.isAcceptState===!0)return t.prediction;i=t,o.push(s),s=this.LA(a++)}}function wl(e,t,n,r,i,a){let o=Al(t.configs,n,i);if(o.size===0)return Pl(e,t,n,pl),pl;let s=Nl(o),c=Ml(o,i);if(c!==void 0)s.isAcceptState=!0,s.prediction=c,s.configs.uniqueAlt=c;else if(Vl(o)){let t=ye(o.alts);s.isAcceptState=!0,s.prediction=t,s.configs.uniqueAlt=t,Tl.apply(this,[e,r,o.alts,a])}return s=Pl(e,t,n,s),s}function Tl(e,t,n,r){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState,o=a.rule,s=a.production;r(El({topLevelRule:o,ambiguityIndices:n,production:s,prefixPath:i}))}function El(e){let t=D(e.prefixPath,e=>So(e)).join(`, `),n=e.production.idx===0?``:e.production.idx,r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(`, `)}> in <${Dl(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+=`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
70
|
+
For Further details.`,r}function Dl(e){if(e instanceof I)return`SUBRULE`;if(e instanceof R)return`OPTION`;if(e instanceof Ui)return`OR`;if(e instanceof Vi)return`AT_LEAST_ONE`;if(e instanceof Hi)return`AT_LEAST_ONE_SEP`;if(e instanceof B)return`MANY_SEP`;if(e instanceof z)return`MANY`;if(e instanceof V)return`CONSUME`;throw Error(`non exhaustive match`)}function Ol(e,t,n){return{actualToken:n,possibleTokenTypes:Mi(ai(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof Hc).map(e=>e.tokenType),e=>e.tokenTypeIdx),tokenPath:e}}function kl(e,t){return e.edges[t.tokenTypeIdx]}function Al(e,t,n){let r=new ml,i=[];for(let a of e.elements){if(n.is(a.alt)===!1)continue;if(a.state.type===7){i.push(a);continue}let e=a.state.transitions.length;for(let n=0;n<e;n++){let e=a.state.transitions[n],i=jl(e,t);i!==void 0&&r.add({state:i,alt:a.alt,stack:a.stack})}}let a;if(i.length===0&&r.size===1&&(a=r),a===void 0){a=new ml;for(let e of r.elements)Ll(e,a)}if(i.length>0&&!zl(a))for(let e of i)a.add(e);return a}function jl(e,t){if(e instanceof Hc&&Io(t,e.tokenType))return e.target}function Ml(e,t){let n;for(let r of e.elements)if(t.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function Nl(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Pl(e,t,n,r){return r=Fl(e,r),t.edges[n.tokenTypeIdx]=r,r}function Fl(e,t){if(t===pl)return t;let n=t.configs.key,r=e.states[n];return r===void 0?(t.configs.finalize(),e.states[n]=t,t):r}function Il(e){let t=new ml,n=e.transitions.length;for(let r=0;r<n;r++)Ll({state:e.transitions[r].target,alt:r,stack:[]},t);return t}function Ll(e,t){let n=e.state;if(n.type===7){if(e.stack.length>0){let n=[...e.stack];Ll({state:n.pop(),alt:e.alt,stack:n},t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);let r=n.transitions.length;for(let i=0;i<r;i++){let r=n.transitions[i],a=Rl(e,r);a!==void 0&&Ll(a,t)}}function Rl(e,t){if(t instanceof Uc)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof Wc){let n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}function zl(e){for(let t of e.elements)if(t.state.type===7)return!0;return!1}function Bl(e){for(let t of e.elements)if(t.state.type!==7)return!1;return!0}function Vl(e){if(Bl(e))return!0;let t=Hl(e.elements);return Ul(t)&&!Wl(t)}function Hl(e){let t=new Map;for(let n of e){let e=hl(n,!1),r=t.get(e);r===void 0&&(r={},t.set(e,r)),r[n.alt]=!0}return t}function Ul(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function Wl(e){for(let t of Array.from(e.values()))if(Object.keys(t).length===1)return!0;return!1}var Gl;(function(e){function t(e){return typeof e==`string`}e.is=t})(Gl||={});var Kl;(function(e){function t(e){return typeof e==`string`}e.is=t})(Kl||={});var ql;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(ql||={});var Jl;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(Jl||={});var J;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=Jl.MAX_VALUE),t===Number.MAX_VALUE&&(t=Jl.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&X.uinteger(t.line)&&X.uinteger(t.character)}e.is=n})(J||={});var Y;(function(e){function t(e,t,n,r){if(X.uinteger(e)&&X.uinteger(t)&&X.uinteger(n)&&X.uinteger(r))return{start:J.create(e,t),end:J.create(n,r)};if(J.is(e)&&J.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&J.is(t.start)&&J.is(t.end)}e.is=n})(Y||={});var Yl;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&Y.is(t.range)&&(X.string(t.uri)||X.undefined(t.uri))}e.is=n})(Yl||={});var Xl;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&Y.is(t.targetRange)&&X.string(t.targetUri)&&Y.is(t.targetSelectionRange)&&(Y.is(t.originSelectionRange)||X.undefined(t.originSelectionRange))}e.is=n})(Xl||={});var Zl;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&X.numberRange(t.red,0,1)&&X.numberRange(t.green,0,1)&&X.numberRange(t.blue,0,1)&&X.numberRange(t.alpha,0,1)}e.is=n})(Zl||={});var Ql;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&Y.is(t.range)&&Zl.is(t.color)}e.is=n})(Ql||={});var $l;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&X.string(t.label)&&(X.undefined(t.textEdit)||cu.is(t))&&(X.undefined(t.additionalTextEdits)||X.typedArray(t.additionalTextEdits,cu.is))}e.is=n})($l||={});var eu;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(eu||={});var tu;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return X.defined(n)&&(o.startCharacter=n),X.defined(r)&&(o.endCharacter=r),X.defined(i)&&(o.kind=i),X.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&X.uinteger(t.startLine)&&X.uinteger(t.startLine)&&(X.undefined(t.startCharacter)||X.uinteger(t.startCharacter))&&(X.undefined(t.endCharacter)||X.uinteger(t.endCharacter))&&(X.undefined(t.kind)||X.string(t.kind))}e.is=n})(tu||={});var nu;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&Yl.is(t.location)&&X.string(t.message)}e.is=n})(nu||={});var ru;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(ru||={});var iu;(function(e){e.Unnecessary=1,e.Deprecated=2})(iu||={});var au;(function(e){function t(e){let t=e;return X.objectLiteral(t)&&X.string(t.href)}e.is=t})(au||={});var ou;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return X.defined(n)&&(o.severity=n),X.defined(r)&&(o.code=r),X.defined(i)&&(o.source=i),X.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return X.defined(t)&&Y.is(t.range)&&X.string(t.message)&&(X.number(t.severity)||X.undefined(t.severity))&&(X.integer(t.code)||X.string(t.code)||X.undefined(t.code))&&(X.undefined(t.codeDescription)||X.string(t.codeDescription?.href))&&(X.string(t.source)||X.undefined(t.source))&&(X.undefined(t.relatedInformation)||X.typedArray(t.relatedInformation,nu.is))}e.is=n})(ou||={});var su;(function(e){function t(e,t,...n){let r={title:e,command:t};return X.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return X.defined(t)&&X.string(t.title)&&X.string(t.command)}e.is=n})(su||={});var cu;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return X.objectLiteral(t)&&X.string(t.newText)&&Y.is(t.range)}e.is=i})(cu||={});var lu;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&X.string(t.label)&&(X.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(X.string(t.description)||t.description===void 0)}e.is=n})(lu||={});var uu;(function(e){function t(e){let t=e;return X.string(t)}e.is=t})(uu||={});var du;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return cu.is(t)&&(lu.is(t.annotationId)||uu.is(t.annotationId))}e.is=i})(du||={});var fu;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&yu.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(fu||={});var pu;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&X.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||X.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||X.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||uu.is(t.annotationId))}e.is=n})(pu||={});var mu;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&X.string(t.oldUri)&&X.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||X.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||X.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||uu.is(t.annotationId))}e.is=n})(mu||={});var hu;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&X.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||X.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||X.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||uu.is(t.annotationId))}e.is=n})(hu||={});var gu;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>X.string(e.kind)?pu.is(e)||mu.is(e)||hu.is(e):fu.is(e)))}e.is=t})(gu||={});var _u;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return X.defined(t)&&X.string(t.uri)}e.is=n})(_u||={});var vu;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&X.string(t.uri)&&X.integer(t.version)}e.is=n})(vu||={});var yu;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&X.string(t.uri)&&(t.version===null||X.integer(t.version))}e.is=n})(yu||={});var bu;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return X.defined(t)&&X.string(t.uri)&&X.string(t.languageId)&&X.integer(t.version)&&X.string(t.text)}e.is=n})(bu||={});var xu;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(xu||={});var Su;(function(e){function t(e){let t=e;return X.objectLiteral(e)&&xu.is(t.kind)&&X.string(t.value)}e.is=t})(Su||={});var Cu;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(Cu||={});var wu;(function(e){e.PlainText=1,e.Snippet=2})(wu||={});var Tu;(function(e){e.Deprecated=1})(Tu||={});var Eu;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&X.string(t.newText)&&Y.is(t.insert)&&Y.is(t.replace)}e.is=n})(Eu||={});var Du;(function(e){e.asIs=1,e.adjustIndentation=2})(Du||={});var Ou;(function(e){function t(e){let t=e;return t&&(X.string(t.detail)||t.detail===void 0)&&(X.string(t.description)||t.description===void 0)}e.is=t})(Ou||={});var ku;(function(e){function t(e){return{label:e}}e.create=t})(ku||={});var Au;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(Au||={});var ju;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return X.string(t)||X.objectLiteral(t)&&X.string(t.language)&&X.string(t.value)}e.is=n})(ju||={});var Mu;(function(e){function t(e){let t=e;return!!t&&X.objectLiteral(t)&&(Su.is(t.contents)||ju.is(t.contents)||X.typedArray(t.contents,ju.is))&&(e.range===void 0||Y.is(e.range))}e.is=t})(Mu||={});var Nu;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(Nu||={});var Pu;(function(e){function t(e,t,...n){let r={label:e};return X.defined(t)&&(r.documentation=t),X.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(Pu||={});var Fu;(function(e){e.Text=1,e.Read=2,e.Write=3})(Fu||={});var Iu;(function(e){function t(e,t){let n={range:e};return X.number(t)&&(n.kind=t),n}e.create=t})(Iu||={});var Lu;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(Lu||={});var Ru;(function(e){e.Deprecated=1})(Ru||={});var zu;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(zu||={});var Bu;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(Bu||={});var Vu;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&X.string(t.name)&&X.number(t.kind)&&Y.is(t.range)&&Y.is(t.selectionRange)&&(t.detail===void 0||X.string(t.detail))&&(t.deprecated===void 0||X.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(Vu||={});var Hu;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(Hu||={});var Uu;(function(e){e.Invoked=1,e.Automatic=2})(Uu||={});var Wu;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return X.defined(t)&&X.typedArray(t.diagnostics,ou.is)&&(t.only===void 0||X.typedArray(t.only,X.string))&&(t.triggerKind===void 0||t.triggerKind===Uu.Invoked||t.triggerKind===Uu.Automatic)}e.is=n})(Wu||={});var Gu;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):su.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&X.string(t.title)&&(t.diagnostics===void 0||X.typedArray(t.diagnostics,ou.is))&&(t.kind===void 0||X.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||su.is(t.command))&&(t.isPreferred===void 0||X.boolean(t.isPreferred))&&(t.edit===void 0||gu.is(t.edit))}e.is=n})(Gu||={});var Ku;(function(e){function t(e,t){let n={range:e};return X.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return X.defined(t)&&Y.is(t.range)&&(X.undefined(t.command)||su.is(t.command))}e.is=n})(Ku||={});var qu;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&X.uinteger(t.tabSize)&&X.boolean(t.insertSpaces)}e.is=n})(qu||={});var Ju;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return X.defined(t)&&Y.is(t.range)&&(X.undefined(t.target)||X.string(t.target))}e.is=n})(Ju||={});var Yu;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return X.objectLiteral(n)&&Y.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(Yu||={});var Xu;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Xu||={});var Zu;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Zu||={});var Qu;(function(e){function t(e){let t=e;return X.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(Qu||={});var $u;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&Y.is(t.range)&&X.string(t.text)}e.is=n})($u||={});var ed;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&Y.is(t.range)&&X.boolean(t.caseSensitiveLookup)&&(X.string(t.variableName)||t.variableName===void 0)}e.is=n})(ed||={});var td;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&Y.is(t.range)&&(X.string(t.expression)||t.expression===void 0)}e.is=n})(td||={});var nd;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return X.defined(t)&&Y.is(e.stoppedLocation)}e.is=n})(nd||={});var rd;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(rd||={});var id;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&(t.tooltip===void 0||X.string(t.tooltip)||Su.is(t.tooltip))&&(t.location===void 0||Yl.is(t.location))&&(t.command===void 0||su.is(t.command))}e.is=n})(id||={});var ad;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return X.objectLiteral(t)&&J.is(t.position)&&(X.string(t.label)||X.typedArray(t.label,id.is))&&(t.kind===void 0||rd.is(t.kind))&&t.textEdits===void 0||X.typedArray(t.textEdits,cu.is)&&(t.tooltip===void 0||X.string(t.tooltip)||Su.is(t.tooltip))&&(t.paddingLeft===void 0||X.boolean(t.paddingLeft))&&(t.paddingRight===void 0||X.boolean(t.paddingRight))}e.is=n})(ad||={});var od;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(od||={});var sd;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(sd||={});var cd;(function(e){function t(e){return{items:e}}e.create=t})(cd||={});var ld;(function(e){e.Invoked=0,e.Automatic=1})(ld||={});var ud;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(ud||={});var dd;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(dd||={});var fd;(function(e){function t(e){let t=e;return X.objectLiteral(t)&&Kl.is(t.uri)&&X.string(t.name)}e.is=t})(fd||={});var pd;(function(e){function t(e,t,n,r){return new md(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(X.defined(t)&&X.string(t.uri)&&(X.undefined(t.languageId)||X.string(t.languageId))&&X.uinteger(t.lineCount)&&X.func(t.getText)&&X.func(t.positionAt)&&X.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(pd||={});var md=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
|
|
71
|
+
`,i===`\r`&&r+1<t.length&&t.charAt(r+1)===`
|
|
72
|
+
`&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return J.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return J.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}},X;(function(e){let t=Object.prototype.toString;function n(e){return e!==void 0}e.defined=n;function r(e){return e===void 0}e.undefined=r;function i(e){return e===!0||e===!1}e.boolean=i;function a(e){return t.call(e)===`[object String]`}e.string=a;function o(e){return t.call(e)===`[object Number]`}e.number=o;function s(e,n,r){return t.call(e)===`[object Number]`&&n<=e&&e<=r}e.numberRange=s;function c(e){return t.call(e)===`[object Number]`&&-2147483648<=e&&e<=2147483647}e.integer=c;function l(e){return t.call(e)===`[object Number]`&&0<=e&&e<=2147483647}e.uinteger=l;function u(e){return t.call(e)===`[object Function]`}e.func=u;function d(e){return typeof e==`object`&&!!e}e.objectLiteral=d;function f(e,t){return Array.isArray(e)&&e.every(t)}e.typedArray=f})(X||={});var hd=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new bd(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new vd;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let n=new _d(e.startOffset,e.image.length,ze(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let t=e.container;if(t){let n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){let t=[];for(let n of e){let e=new _d(n.startOffset,n.image.length,ze(n),n.tokenType,!0);e.root=this.rootNode,t.push(e)}let n=this.current,r=!1;if(n.content.length>0){n.content.push(...t);return}for(;n.container;){let e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t),r=!0;break}n=n.container}r||this.rootNode.content.unshift(...t)}construct(e){let t=this.current;typeof e.$type==`string`&&(this.current.astNode=e),e.$cstNode=t;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}},gd=class{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){let e=typeof this._astNode?.$type==`string`?this._astNode:this.container?.astNode;if(!e)throw Error(`This node has no associated AST element`);return e}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},_d=class extends gd{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,t,n,r,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=r,this._length=t,this._range=n}},vd=class extends gd{constructor(){super(...arguments),this.content=new yd(this)}get children(){return this.content}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){let{range:n}=e,{range:r}=t;this._rangeCache={start:n.start,end:r.end.line<n.start.line?n.start:r.end}}return this._rangeCache}else return{start:J.create(0,0),end:J.create(0,0)}}get firstNonHiddenNode(){for(let 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--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},yd=class e extends Array{constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,e.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(let t of e)t.container=this.parent}},bd=class extends vd{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text=``,this._text=e??``}};const xd=Symbol(`Datatype`);function Sd(e){return e.$type===xd}const Cd=e=>e.endsWith(``)?e:e+``;var wd=class{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition,n=e.LanguageMetaData.mode===`production`;this.wrapper=new Ad(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}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()}},Td=class extends wd{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new hd,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let n=this.computeRuleType(e),r=this.wrapper.DEFINE_RULE(Cd(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}computeRuleType(e){if(!e.fragment)return mr(e)?xd:gr(e)??e.name}parse(e,t={}){this.nodeBuilder.buildRootNode(e);let n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;let r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r)throw Error(t.rule?`No rule found with name '${t.rule}'`:`No main rule available.`);let i=r.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{let r=!this.isRecording()&&e!==void 0;if(r){let t={$type:e};this.stack.push(t),e===xd&&(t.value=``)}let i;try{i=t(n)}catch{i=void 0}return i===void 0&&r&&(i=this.construct()),i}}extractHiddenTokens(e){let t=this.lexerResult.hidden;if(!t.length)return[];let n=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>n)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,n){let r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){let e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);let t=this.nodeBuilder.buildLeafNode(r,n),{assignment:i,isCrossRef:a}=this.getAssignment(n),o=this.current;if(i){let e=$t(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,a)}else if(Sd(o)){let e=r.image;$t(n)||(e=this.converter.convert(e,t).toString()),o.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset==`number`&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let a;!this.isRecording()&&!n&&(a=this.nodeBuilder.buildCompositeNode(r));let o=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,r,a)}performSubruleAssignment(e,t,n){let{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r)this.assign(r.operator,r.feature,e,n,i);else if(!r){let t=this.current;if(Sd(t))t.value+=e.toString();else if(typeof e==`object`&&e){let n=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(n.$cstNode);let r={$type:e};this.stack.push(r),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;let e=this.current;return bn(e),this.nodeBuilder.construct(e),this.stack.pop(),Sd(e)?this.converter.convert(e.value,e.$cstNode):(kn(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=xn(e,Ut);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?qt(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){let a=this.current,o;switch(o=i&&typeof n==`string`?this.linker.buildReference(a,t,r,n):n,e){case`=`:a[t]=o;break;case`?=`:a[t]=!0;break;case`+=`:Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(let[n,r]of Object.entries(t)){let t=e[n];t===void 0?e[n]=r:Array.isArray(t)&&Array.isArray(r)&&(r.push(...t),e[n]=r)}let n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},Ed=class{buildMismatchTokenMessage(e){return Lo.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Lo.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Lo.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Lo.buildEarlyExitMessage(e)}},Dd=class extends Ed{buildMismatchTokenMessage({expected:e,actual:t}){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 \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},Od=class extends wd{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){return this.resetState(),this.tokens=this.lexer.tokenize(e,{mode:`partial`}).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,t){let n=this.wrapper.DEFINE_RULE(Cd(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}};const kd={recoveryEnabled:!0,nodeLocationTracking:`full`,skipValidations:!0,errorMessageProvider:new Dd};var Ad=class extends zc{constructor(e,t){let n=t&&`maxLookahead`in t;super(e,Object.assign(Object.assign(Object.assign({},kd),{lookaheadStrategy:n?new nc({maxLookahead:t.maxLookahead}):new yl({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}};function jd(e,t,n){return Md({parser:t,tokens:n,ruleNames:new Map},e),t}function Md(e,t){let n=nr(t,!1),r=j(t.rules).filter(Tt).filter(e=>n.has(e));for(let t of r){let n=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(t,Nd(n,t.definition))}}function Nd(e,t,n=!1){let r;if($t(t))r=Ud(e,t);else if(zt(t))r=Pd(e,t);else if(Ut(t))r=Nd(e,t.terminal);else if(qt(t))r=Hd(e,t);else if(on(t))r=Fd(e,t);else if(Vt(t))r=Rd(e,t);else if(mn(t))r=zd(e,t);else if(Zt(t))r=Bd(e,t);else if(Yt(t)){let n=e.consume++;r=()=>e.parser.consume(n,Po,t)}else throw new Je(t.$cstNode,`Unexpected element type: ${t.$type}`);return Wd(e,n?void 0:Vd(t),r,t.cardinality)}function Pd(e,t){let n=_r(t);return()=>e.parser.action(n,t)}function Fd(e,t){let n=t.rule.ref;if(Tt(n)){let r=e.subrule++,i=n.fragment,a=t.arguments.length>0?Id(n,t.arguments):()=>({});return o=>e.parser.subrule(r,Gd(e,n),i,t,a(o))}else if(Nt(n)){let r=e.consume++,i=qd(e,n.name);return()=>e.parser.consume(r,i,t)}else if(n)Ye(n);else throw new Je(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function Id(e,t){let n=t.map(e=>Ld(e.value));return t=>{let r={};for(let i=0;i<n.length;i++){let a=e.parameters[i],o=n[i];r[a.name]=o(t)}return r}}function Ld(e){if(ut(e)){let t=Ld(e.left),n=Ld(e.right);return e=>t(e)||n(e)}else if(ct(e)){let t=Ld(e.left),n=Ld(e.right);return e=>t(e)&&n(e)}else if(yt(e)){let t=Ld(e.value);return e=>!t(e)}else if(Ct(e)){let t=e.parameter.ref.name;return e=>e!==void 0&&e[t]===!0}else if(ot(e)){let t=!!e.true;return()=>t}Ye(e)}function Rd(e,t){if(t.elements.length===1)return Nd(e,t.elements[0]);{let n=[];for(let r of t.elements){let t={ALT:Nd(e,r,!0)},i=Vd(r);i&&(t.GATE=Ld(i)),n.push(t)}let r=e.or++;return t=>e.parser.alternatives(r,n.map(e=>{let n={ALT:()=>e.ALT(t)},r=e.GATE;return r&&(n.GATE=()=>r(t)),n}))}}function zd(e,t){if(t.elements.length===1)return Nd(e,t.elements[0]);let n=[];for(let r of t.elements){let t={ALT:Nd(e,r,!0)},i=Vd(r);i&&(t.GATE=Ld(i)),n.push(t)}let r=e.or++,i=(e,t)=>`uGroup_${e}_${t.getRuleStack().join(`-`)}`,a=Wd(e,Vd(t),t=>e.parser.alternatives(r,n.map((n,a)=>{let o={ALT:()=>!0},s=e.parser;o.ALT=()=>{if(n.ALT(t),!s.isRecording()){let e=i(r,s);s.unorderedGroups.get(e)||s.unorderedGroups.set(e,[]);let t=s.unorderedGroups.get(e);t?.[a]===void 0&&(t[a]=!0)}};let c=n.GATE;return c?o.GATE=()=>c(t):o.GATE=()=>!s.unorderedGroups.get(i(r,s))?.[a],o})),`*`);return t=>{a(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}function Bd(e,t){let n=t.elements.map(t=>Nd(e,t));return e=>n.forEach(t=>t(e))}function Vd(e){if(Zt(e))return e.guardCondition}function Hd(e,t,n=t.terminal){if(n)if(on(n)&&Tt(n.rule.ref)){let r=n.rule.ref,i=e.subrule++;return n=>e.parser.subrule(i,Gd(e,r),!1,t,n)}else if(on(n)&&Nt(n.rule.ref)){let r=e.consume++,i=qd(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}else if($t(n)){let r=e.consume++,i=qd(e,n.value);return()=>e.parser.consume(r,i,t)}else throw Error(`Could not build cross reference parser`);else{if(!t.type.ref)throw Error(`Could not resolve reference to type: `+t.type.$refText);let n=fr(t.type.ref)?.terminal;if(!n)throw Error(`Could not find name assignment for type: `+_r(t.type.ref));return Hd(e,t,n)}}function Ud(e,t){let n=e.consume++,r=e.tokens[t.value];if(!r)throw Error(`Could not find token for keyword: `+t.value);return()=>e.parser.consume(n,r,t)}function Wd(e,t,n,r){let i=t&&Ld(t);if(!r)if(i){let t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:Lc(),GATE:()=>!i(r)}])}else return n;if(r===`*`){let t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}else if(r===`+`){let t=e.many++;if(i){let r=e.or++;return a=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(a)}),GATE:()=>i(a)},{ALT:Lc(),GATE:()=>!i(a)}])}else return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}else if(r===`?`){let t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}else Ye(r)}function Gd(e,t){let n=Kd(e,t),r=e.parser.getRule(n);if(!r)throw Error(`Rule "${n}" not found."`);return r}function Kd(e,t){if(Tt(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!Tt(r);)(Zt(r)||Vt(r)||mn(r))&&(i=r.elements.indexOf(n).toString()+`:`+i),n=r,r=r.$container;return i=r.name+`:`+i,e.ruleNames.set(t,i),i}}function qd(e,t){let n=e.tokens[t];if(!n)throw Error(`Token "${t}" not found."`);return n}function Jd(e){let t=e.Grammar,n=e.parser.Lexer,r=new Od(e);return jd(t,r,n.definition),r.finalize(),r}function Yd(e){let t=Xd(e);return t.finalize(),t}function Xd(e){let t=e.Grammar,n=e.parser.Lexer;return jd(t,new Td(e),n.definition)}var Zd=class{constructor(){this.diagnostics=[]}buildTokens(e,t){let n=j(nr(e,!1)),r=this.buildTerminalTokens(n),i=this.buildKeywordTokens(n,r,t);return r.forEach(e=>{let t=e.PATTERN;typeof t==`object`&&t&&`test`in t&&Yn(t)?i.unshift(e):i.push(e)}),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Nt).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=br(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,r={name:e.name,PATTERN:n};return typeof n==`function`&&(r.LINE_BREAKS=!0),e.hidden&&(r.GROUP=Yn(t)?U.SKIPPED:`hidden`),r}requiresCustomPattern(e){return e.flags.includes(`u`)||e.flags.includes(`s`)?!0:!!(e.source.includes(`?<=`)||e.source.includes(`?<!`))}regexPatternFunction(e){let t=new RegExp(e,e.flags+`y`);return(e,n)=>(t.lastIndex=n,t.exec(e))}buildKeywordTokens(e,t,n){return e.filter(Tt).flatMap(e=>Tn(e).filter($t)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!n?.caseInsensitive))}buildKeywordToken(e,t,n){let r=this.buildKeywordPattern(e,n),i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};return typeof r==`function`&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp(Zn(e.value)):e.value}findLongerAlt(e,t){return t.reduce((t,n)=>{let r=n?.PATTERN;return r?.source&&Qn(`^`+r.source+`$`,e.value)&&t.push(n),t},[])}},Qd=class{convert(e,t){let n=t.grammarSource;if(qt(n)&&(n=ir(n)),on(n)){let r=n.rule.ref;if(!r)throw Error(`This cst node was not parsed by a rule.`);return this.runConverter(r,e,t)}return e}runConverter(e,t,n){switch(e.name.toUpperCase()){case`INT`:return $d.convertInt(t);case`STRING`:return $d.convertString(t);case`ID`:return $d.convertID(t)}switch(yr(e)?.toLowerCase()){case`number`:return $d.convertNumber(t);case`boolean`:return $d.convertBoolean(t);case`bigint`:return $d.convertBigint(t);case`date`:return $d.convertDate(t);default:return t}}},$d;(function(e){function t(e){let t=``;for(let r=1;r<e.length-1;r++){let i=e.charAt(r);if(i===`\\`){let i=e.charAt(++r);t+=n(i)}else t+=i}return t}e.convertString=t;function n(e){switch(e){case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
|
|
73
|
+
`;case`r`:return`\r`;case`t`:return` `;case`v`:return`\v`;case`0`:return`\0`;default:return e}}function r(e){return e.charAt(0)===`^`?e.substring(1):e}e.convertID=r;function i(e){return parseInt(e)}e.convertInt=i;function a(e){return BigInt(e)}e.convertBigint=a;function o(e){return new Date(e)}e.convertDate=o;function s(e){return Number(e)}e.convertNumber=s;function c(e){return e.toLowerCase()===`true`}e.convertBoolean=c})($d||={});var ef=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t;function n(){if(t===void 0)throw Error(`No runtime abstraction layer installed`);return t}(function(e){function n(e){if(e===void 0)throw Error(`No runtime abstraction layer provided`);t=e}e.install=n})(n||={}),e.default=n})),tf=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0;function t(e){return e===!0||e===!1}e.boolean=t;function n(e){return typeof e==`string`||e instanceof String}e.string=n;function r(e){return typeof e==`number`||e instanceof Number}e.number=r;function i(e){return e instanceof Error}e.error=i;function a(e){return typeof e==`function`}e.func=a;function o(e){return Array.isArray(e)}e.array=o;function s(e){return o(e)&&e.every(e=>n(e))}e.stringArray=s})),nf=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Emitter=e.Event=void 0;let t=ef();var n;(function(e){let t={dispose(){}};e.None=function(){return t}})(n||(e.Event=n={}));var r=class{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r<i;r++)if(this._callbacks[r]===e)if(this._contexts[r]===t){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else n=!0;if(n)throw Error(`When adding a listener with a context, you should remove it with the same context`)}invoke(...e){if(!this._callbacks)return[];let n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let a=0,o=r.length;a<o;a++)try{n.push(r[a].apply(i[a],e))}catch(e){(0,t.default)().console.error(e)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},i=class e{constructor(e){this._options=e}get event(){return this._event||=(t,n,i)=>{this._callbacks||=new r,this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let a={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),a.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(a),a},this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&=(this._callbacks.dispose(),void 0)}};e.Emitter=i,i._noop=function(){}})),rf=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;let t=ef(),n=tf(),r=nf();var i;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:r.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r.Event.None});function t(t){let r=t;return r&&(r===e.None||r===e.Cancelled||n.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(i||(e.CancellationToken=i={}));let a=Object.freeze(function(e,n){let r=(0,t.default)().timer.setTimeout(e.bind(n),0);return{dispose(){r.dispose()}}});var o=class{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?a:(this._emitter||=new r.Emitter,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),void 0)}};e.CancellationTokenSource=class{get token(){return this._token||=new o,this._token}cancel(){this._token?this._token.cancel():this._token=i.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}})),Z={};e(Z,t(rf(),1));function af(){return new Promise(e=>{typeof setImmediate>`u`?setTimeout(e,0):setImmediate(e)})}let of=0;function sf(){return of=performance.now(),new Z.CancellationTokenSource}const cf=Symbol(`OperationCancelled`);function lf(e){return e===cf}async function uf(e){if(e===Z.CancellationToken.None)return;let t=performance.now();if(t-of>=10&&(of=t,await af(),of=performance.now()),e.isCancellationRequested)throw cf}var df=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}},ff=class e{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(t,n){for(let n of t)if(e.isIncremental(n)){let e=_f(n.range),t=this.offsetAt(e.start),r=this.offsetAt(e.end);this._content=this._content.substring(0,t)+n.text+this._content.substring(r,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),o=this._lineOffsets,s=hf(n.text,!1,t);if(a-i===s.length)for(let e=0,t=s.length;e<t;e++)o[e+i+1]=s[e];else s.length<1e4?o.splice(i+1,a-i,...s):this._lineOffsets=o=o.slice(0,i+1).concat(s,o.slice(a+1));let c=n.text.length-(r-t);if(c!==0)for(let e=i+1+s.length,t=o.length;e<t;e++)o[e]=o[e]+c}else if(e.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw Error(`Unknown change event received`);this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=hf(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return{line:0,character:e};for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return e=this.ensureBeforeEOL(e,t[i]),{line:i,character:e-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line];if(e.character<=0)return n;let r=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(n+e.character,r);return this.ensureBeforeEOL(i,n)}ensureBeforeEOL(e,t){for(;e>t&&gf(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return t!=null&&typeof t.text==`string`&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength==`number`)}static isFull(e){let t=e;return t!=null&&typeof t.text==`string`&&t.range===void 0&&t.rangeLength===void 0}},pf;(function(e){function t(e,t,n,r){return new ff(e,t,n,r)}e.create=t;function n(e,t,n){if(e instanceof ff)return e.update(t,n),e;throw Error(`TextDocument.update: document must be created by TextDocument.create`)}e.update=n;function r(e,t){let n=e.getText(),r=mf(t.map(vf),(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),i=0,a=[];for(let t of r){let r=e.offsetAt(t.range.start);if(r<i)throw Error(`Overlapping edit`);r>i&&a.push(n.substring(i,r)),t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(n.substr(i)),a.join(``)}e.applyEdits=r})(pf||={});function mf(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);mf(r,t),mf(i,t);let a=0,o=0,s=0;for(;a<r.length&&o<i.length;)t(r[a],i[o])<=0?e[s++]=r[a++]:e[s++]=i[o++];for(;a<r.length;)e[s++]=r[a++];for(;o<i.length;)e[s++]=i[o++];return e}function hf(e,t,n=0){let r=t?[n]:[];for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);gf(i)&&(i===13&&t+1<e.length&&e.charCodeAt(t+1)===10&&t++,r.push(n+t+1))}return r}function gf(e){return e===13||e===10}function _f(e){let t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function vf(e){let t=_f(e.range);return t===e.range?e:{newText:e.newText,range:t}}var yf;(()=>{var e={470:e=>{function t(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}function n(e,t){for(var n,r=``,i=0,a=-1,o=0,s=0;s<=e.length;++s){if(s<e.length)n=e.charCodeAt(s);else{if(n===47)break;n=47}if(n===47){if(!(a===s-1||o===1))if(a!==s-1&&o===2){if(r.length<2||i!==2||r.charCodeAt(r.length-1)!==46||r.charCodeAt(r.length-2)!==46){if(r.length>2){var c=r.lastIndexOf(`/`);if(c!==r.length-1){c===-1?(r=``,i=0):i=(r=r.slice(0,c)).length-1-r.lastIndexOf(`/`),a=s,o=0;continue}}else if(r.length===2||r.length===1){r=``,i=0,a=s,o=0;continue}}t&&(r.length>0?r+=`/..`:r=`..`,i=2)}else r.length>0?r+=`/`+e.slice(a+1,s):r=e.slice(a+1,s),i=s-a-1;a=s,o=0}else n===46&&o!==-1?++o:o=-1}return r}var r={resolve:function(){for(var e,r=``,i=!1,a=arguments.length-1;a>=-1&&!i;a--){var o;a>=0?o=arguments[a]:(e===void 0&&(e=process.cwd()),o=e),t(o),o.length!==0&&(r=o+`/`+r,i=o.charCodeAt(0)===47)}return r=n(r,!i),i?r.length>0?`/`+r:`/`:r.length>0?r:`.`},normalize:function(e){if(t(e),e.length===0)return`.`;var r=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;return(e=n(e,!r)).length!==0||r||(e=`.`),e.length>0&&i&&(e+=`/`),r?`/`+e:e},isAbsolute:function(e){return t(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return`.`;for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(e===void 0?e=i:e+=`/`+i)}return e===void 0?`.`:r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n||(e=r.resolve(e))===(n=r.resolve(n)))return``;for(var i=1;i<e.length&&e.charCodeAt(i)===47;++i);for(var a=e.length,o=a-i,s=1;s<n.length&&n.charCodeAt(s)===47;++s);for(var c=n.length-s,l=o<c?o:c,u=-1,d=0;d<=l;++d){if(d===l){if(c>l){if(n.charCodeAt(s+d)===47)return n.slice(s+d+1);if(d===0)return n.slice(s+d)}else o>l&&(e.charCodeAt(i+d)===47?u=d:d===0&&(u=0));break}var f=e.charCodeAt(i+d);if(f!==n.charCodeAt(s+d))break;f===47&&(u=d)}var p=``;for(d=i+u+1;d<=a;++d)d!==a&&e.charCodeAt(d)!==47||(p.length===0?p+=`..`:p+=`/..`);return p.length>0?p+n.slice(s+u):(s+=u,n.charCodeAt(s)===47&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),e.length===0)return`.`;for(var n=e.charCodeAt(0),r=n===47,i=-1,a=!0,o=e.length-1;o>=1;--o)if((n=e.charCodeAt(o))===47){if(!a){i=o;break}}else a=!1;return i===-1?r?`/`:`.`:r&&i===1?`//`:e.slice(0,i)},basename:function(e,n){if(n!==void 0&&typeof n!=`string`)throw TypeError(`"ext" argument must be a string`);t(e);var r,i=0,a=-1,o=!0;if(n!==void 0&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return``;var s=n.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(l===47){if(!o){i=r+1;break}}else c===-1&&(o=!1,c=r+1),s>=0&&(l===n.charCodeAt(s)?--s==-1&&(a=r):(s=-1,a=c))}return i===a?a=c:a===-1&&(a=e.length),e.slice(i,a)}for(r=e.length-1;r>=0;--r)if(e.charCodeAt(r)===47){if(!o){i=r+1;break}}else a===-1&&(o=!1,a=r+1);return a===-1?``:e.slice(i,a)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,a=!0,o=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(c!==47)i===-1&&(a=!1,i=s+1),c===46?n===-1?n=s:o!==1&&(o=1):n!==-1&&(o=-1);else if(!a){r=s+1;break}}return n===-1||i===-1||o===0||o===1&&n===i-1&&n===r+1?``:e.slice(n,i)},format:function(e){if(typeof e!=`object`||!e)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||``)+(t.ext||``);return n?n===t.root?n+r:n+`/`+r:r}(0,e)},parse:function(e){t(e);var n={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return n;var r,i=e.charCodeAt(0),a=i===47;a?(n.root=`/`,r=1):r=0;for(var o=-1,s=0,c=-1,l=!0,u=e.length-1,d=0;u>=r;--u)if((i=e.charCodeAt(u))!==47)c===-1&&(l=!1,c=u+1),i===46?o===-1?o=u:d!==1&&(d=1):o!==-1&&(d=-1);else if(!l){s=u+1;break}return o===-1||c===-1||d===0||d===1&&o===c-1&&o===s+1?c!==-1&&(n.base=n.name=s===0&&a?e.slice(1,c):e.slice(s,c)):(s===0&&a?(n.name=e.slice(1,o),n.base=e.slice(1,c)):(n.name=e.slice(s,o),n.base=e.slice(s,c)),n.ext=e.slice(o,c)),s>0?n.dir=e.slice(0,s-1):a&&(n.dir=`/`),n},sep:`/`,delimiter:`:`,win32:null,posix:null};r.posix=r,e.exports=r}},t={};function n(r){var i=t[r];if(i!==void 0)return i.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})};var r={};(()=>{let e;n.r(r),n.d(r,{URI:()=>c,Utils:()=>te}),typeof process==`object`?e=process.platform===`win32`:typeof navigator==`object`&&(e=navigator.userAgent.indexOf(`Windows`)>=0);let t=/^\w[\w\d+.-]*$/,i=/^\//,a=/^\/\//;function o(e,n){if(!e.scheme&&n)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!i.test(e.path))throw 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(a.test(e.path))throw Error(`[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")`)}}let s=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class c{static isUri(e){return e instanceof c||!!e&&typeof e.authority==`string`&&typeof e.fragment==`string`&&typeof e.path==`string`&&typeof e.query==`string`&&typeof e.scheme==`string`&&typeof e.fsPath==`string`&&typeof e.with==`function`&&typeof e.toString==`function`}scheme;authority;path;query;fragment;constructor(e,t,n,r,i,a=!1){typeof e==`object`?(this.scheme=e.scheme||``,this.authority=e.authority||``,this.path=e.path||``,this.query=e.query||``,this.fragment=e.fragment||``):(this.scheme=function(e,t){return e||t?e:`file`}(e,a),this.authority=t||``,this.path=function(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==`/`&&(t=`/`+t):t=`/`}return t}(this.scheme,n||``),this.query=r||``,this.fragment=i||``,o(this,a))}get fsPath(){return m(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:a}=e;return t===void 0?t=this.scheme:t===null&&(t=``),n===void 0?n=this.authority:n===null&&(n=``),r===void 0?r=this.path:r===null&&(r=``),i===void 0?i=this.query:i===null&&(i=``),a===void 0?a=this.fragment:a===null&&(a=``),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&a===this.fragment?this:new u(t,n,r,i,a)}static parse(e,t=!1){let n=s.exec(e);return n?new u(n[2]||``,ee(n[4]||``),ee(n[5]||``),ee(n[7]||``),ee(n[9]||``),t):new u(``,``,``,``,``)}static file(t){let n=``;if(e&&(t=t.replace(/\\/g,`/`)),t[0]===`/`&&t[1]===`/`){let e=t.indexOf(`/`,2);e===-1?(n=t.substring(2),t=`/`):(n=t.substring(2,e),t=t.substring(e)||`/`)}return new u(`file`,n,t,``,``)}static from(e){let t=new u(e.scheme,e.authority,e.path,e.query,e.fragment);return o(t,!0),t}toString(e=!1){return h(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof c)return e;{let t=new u(e);return t._formatted=e.external,t._fsPath=e._sep===l?e.fsPath:null,t}}return e}}let l=e?1:void 0;class u extends c{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||=m(this,!1),this._fsPath}toString(e=!1){return e?h(this,!0):(this._formatted||=h(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=l),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let d={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 f(e,t,n){let r,i=-1;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||t&&o===47||n&&o===91||n&&o===93||n&&o===58)i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r!==void 0&&(r+=e.charAt(a));else{r===void 0&&(r=e.substr(0,a));let t=d[o];t===void 0?i===-1&&(i=a):(i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r+=t)}}return i!==-1&&(r+=encodeURIComponent(e.substring(i))),r===void 0?e:r}function p(e){let t;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r===35||r===63?(t===void 0&&(t=e.substr(0,n)),t+=d[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function m(t,n){let r;return r=t.authority&&t.path.length>1&&t.scheme===`file`?`//${t.authority}${t.path}`:t.path.charCodeAt(0)===47&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&t.path.charCodeAt(2)===58?n?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,`\\`)),r}function h(e,t){let n=t?p:f,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=`/`,r+=`/`),a){let e=a.indexOf(`@`);if(e!==-1){let t=a.substr(0,e);a=a.substr(e+1),e=t.lastIndexOf(`:`),e===-1?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=`:`,r+=n(t.substr(e+1),!1,!0)),r+=`@`}a=a.toLowerCase(),e=a.lastIndexOf(`:`),e===-1?r+=n(a,!1,!0):(r+=n(a.substr(0,e),!1,!0),r+=a.substr(e))}if(o){if(o.length>=3&&o.charCodeAt(0)===47&&o.charCodeAt(2)===58){let e=o.charCodeAt(1);e>=65&&e<=90&&(o=`/${String.fromCharCode(e+32)}:${o.substr(3)}`)}else if(o.length>=2&&o.charCodeAt(1)===58){let e=o.charCodeAt(0);e>=65&&e<=90&&(o=`${String.fromCharCode(e+32)}:${o.substr(2)}`)}r+=n(o,!0,!1)}return s&&(r+=`?`,r+=n(s,!1,!1)),c&&(r+=`#`,r+=t?c:f(c,!1,!1)),r}function g(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+g(e.substr(3)):e}}let _=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ee(e){return e.match(_)?e.replace(_,(e=>g(e))):e}var v=n(470);let y=v.posix||v;var te;(function(e){e.joinPath=function(e,...t){return e.with({path:y.join(e.path,...t)})},e.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==`/`&&(n=`/`+n,r=!0);let i=y.resolve(n,...t);return r&&i[0]===`/`&&!e.authority&&(i=i.substring(1)),e.with({path:i})},e.dirname=function(e){if(e.path.length===0||e.path===`/`)return e;let t=y.dirname(e.path);return t.length===1&&t.charCodeAt(0)===46&&(t=``),e.with({path:t})},e.basename=function(e){return y.basename(e.path)},e.extname=function(e){return y.extname(e.path)}})(te||={})})(),yf=r})();const{URI:bf,Utils:xf}=yf;var Sf;(function(e){e.basename=xf.basename,e.dirname=xf.dirname,e.extname=xf.extname,e.joinPath=xf.joinPath,e.resolvePath=xf.resolvePath;function t(e,t){return e?.toString()===t?.toString()}e.equals=t;function n(e,t){let n=typeof e==`string`?e:e.path,r=typeof t==`string`?t:t.path,i=n.split(`/`).filter(e=>e.length>0),a=r.split(`/`).filter(e=>e.length>0),o=0;for(;o<i.length&&i[o]===a[o];o++);return`../`.repeat(i.length-o)+a.slice(o).join(`/`)}e.relative=n;function r(e){return bf.parse(e.toString()).toString()}e.normalize=r})(Sf||={});var Q;(function(e){e[e.Changed=0]=`Changed`,e[e.Parsed=1]=`Parsed`,e[e.IndexedContent=2]=`IndexedContent`,e[e.ComputedScopes=3]=`ComputedScopes`,e[e.Linked=4]=`Linked`,e[e.IndexedReferences=5]=`IndexedReferences`,e[e.Validated=6]=`Validated`})(Q||={});var Cf=class{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=Z.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t??=bf.parse(e.uri),Z.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return Z.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if(typeof t==`string`){let r=this.parse(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}else if(`$model`in t){let n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{let r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if(typeof t==`string`){let r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}else{let r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n)i={parseResult:e,uri:t,state:Q.Parsed,references:[],textDocument:n};else{let n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:Q.Parsed,references:[],get textDocument(){return n()}}}return e.value.$document=i,i}async update(e,t){let n=e.parseResult.value.$cstNode?.root.fullText,r=this.textDocuments?.get(e.uri.toString()),i=r?r.getText():await this.fileSystemProvider.readFile(e.uri);if(r)Object.defineProperty(e,`textDocument`,{value:r});else{let t=this.createTextDocumentGetter(e.uri,i);Object.defineProperty(e,`textDocument`,{get:t})}return n!==i&&(e.parseResult=await this.parseAsync(e.uri,i,t),e.parseResult.value.$document=e),e.state=Q.Parsed,e}parse(e,t,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){let n=this.serviceRegistry,r;return()=>r??=pf.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??``)}},wf=class{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return j(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(e=>(this.addDocument(e),e));{let n=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(n),n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=Q.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=Q.Changed,this.documentMap.delete(t)),n}};const Tf=Symbol(`ref_resolving`);var Ef=class{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,t=Z.CancellationToken.None){for(let n of En(e.parseResult.value))await uf(t),On(n).forEach(t=>this.doLink(t,e))}doLink(e,t){let n=e.reference;if(n._ref===void 0){n._ref=Tf;try{let t=this.getCandidate(e);Te(t)?n._ref=t:(n._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)?n._ref=this.loadAstNode(t)??this.createLinkingError(e,t):n._ref=void 0)}catch(t){console.error(`An error occurred while resolving reference to '${n.$refText}':`,t);let r=t.message??String(t);n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${r}`})}t.references.push(n)}}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}buildReference(e,t,n,r){let i=this,a={$refNode:n,$refText:r,get ref(){if(A(this._ref))return this._ref;if(we(this._nodeDescription))this._ref=i.loadAstNode(this._nodeDescription)??i.createLinkingError({reference:a,container:e,property:t},this._nodeDescription);else if(this._ref===void 0){this._ref=Tf;let n=Cn(e).$document,r=i.getLinkedNode({reference:a,container:e,property:t});if(r.error&&n&&n.state<Q.ComputedScopes){this._ref=void 0;return}this._ref=r.node??r.error,this._nodeDescription=r.descr,n?.references.push(this)}else if(this._ref===Tf)throw Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`);return A(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Te(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){try{let t=this.getCandidate(e);if(Te(t))return{error:t};let n=this.loadAstNode(t);return n?{node:n,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(t){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,t);let n=t.message??String(t);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${n}`})}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let n=Cn(e.container).$document;n&&n.state<Q.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);let r=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${r} named '${e.reference.$refText}'.`,targetDescription:t})}};function Df(e){return typeof e.name==`string`}var Of=class{getName(e){if(Df(e))return e.name}getNameNode(e){return sr(e.$cstNode,`name`)}},kf=class{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let t=dr(e),n=e.astNode;if(t&&n){let r=n[t.feature];if(Ce(r))return r.ref;if(Array.isArray(r)){for(let t of r)if(Ce(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}}if(n){let t=this.nameProvider.getNameNode(n);if(t&&(t===e||Re(e,t)))return n}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(t?.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(e,t){let n=[];if(t.includeDeclaration){let t=this.getReferenceToSelf(e);t&&n.push(t)}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(r=r.filter(e=>Sf.equals(e.sourceUri,t.documentUri))),n.push(...r),j(n)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let n=Sn(e),r=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:r,targetUri:n.uri,targetPath:r,segment:Be(t),local:!0}}}},Af=class{constructor(e){if(this.map=new Map,e)for(let[t,n]of e)this.add(t,n)}get size(){return Ie.sum(j(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let r=n.indexOf(t);if(r>=0)return n.length===1?this.map.delete(e):n.splice(r,1),!0}return!1}}get(e){return this.map.get(e)??[]}has(e,t){if(t===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(t=>e(t,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return j(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return j(this.map.keys())}values(){return j(this.map.values()).flat()}entriesGroupedByKey(){return j(this.map.entries())}},jf=class{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return t===void 0?!1:(this.map.delete(e),this.inverse.delete(t),!0)}},Mf=class{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=Z.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=wn,r=Z.CancellationToken.None){let i=[];this.exportNode(e,i,t);for(let a of n(e))await uf(r),this.exportNode(a,i,t);return i}exportNode(e,t,n){let r=this.nameProvider.getName(e);r&&t.push(this.descriptions.createDescription(e,r,n))}async computeLocalScopes(e,t=Z.CancellationToken.None){let n=e.parseResult.value,r=new Af;for(let i of Tn(n))await uf(t),this.processNode(i,e,r);return r}processNode(e,t,n){let r=e.$container;if(r){let i=this.nameProvider.getName(e);i&&n.add(r,this.descriptions.createDescription(e,i,t))}}},Nf=class{constructor(e,t,n){this.elements=e,this.outerScope=t,this.caseInsensitive=n?.caseInsensitive??!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}},Pf=class{constructor(e,t,n){this.elements=new Map,this.caseInsensitive=n?.caseInsensitive??!1;for(let t of e){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(t);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=j(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},Ff=class{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 Error(`This cache has already been disposed`)}},If=class extends Ff{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let n=t();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Lf=class extends Ff{constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();let r=this.cacheForContext(e);if(r.has(t))return r.get(t);if(n){let e=n();return r.set(t,e),e}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}},Rf=class extends If{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},zf=class{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 Rf(e.shared)}getScope(e){let t=[],n=this.reflection.getReferenceType(e),r=Sn(e.container).precomputedScopes;if(r){let i=e.container;do{let e=r.get(i);e.length>0&&t.push(j(e).filter(e=>this.reflection.isSubtype(e.type,n))),i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,n){return new Nf(j(e),t,n)}createScopeForNodes(e,t,n){return new Nf(j(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable(),t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Pf(this.indexManager.allElements(e)))}};function Bf(e){return typeof e.$comment==`string`}function Vf(e){return typeof e==`object`&&!!e&&(`$ref`in e||`$error`in e)}var Hf=class{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,t){let n=t??{},r=t?.replacer,i=(e,t)=>this.replacer(e,t,n),a=r?(e,t)=>r(e,t,i):i;try{return this.currentDocument=Sn(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){let n=t??{},r=JSON.parse(e);return this.linkNode(r,r,n),r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:a,uriConverter:o}){if(!this.ignoreProperties.has(e))if(Ce(t)){let e=t.ref,r=n?t.$refText:void 0;if(e){let n=Sn(e),i=``;this.currentDocument&&this.currentDocument!==n&&(i=o?o(n.uri,t):n.uri.toString());let a=this.astNodeLocator.getAstNodePath(e);return{$ref:`${i}#${a}`,$refText:r}}else return{$error:t.error?.message??`Could not resolve reference`,$refText:r}}else if(A(t)){let n;if(i&&(n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&n?.$textRegion&&(n.$textRegion.documentURI=this.currentDocument?.uri.toString())),r&&!e&&(n??=Object.assign({},t),n.$sourceText=t.$cstNode?.text),a){n??=Object.assign({},t);let e=this.commentProvider.getComment(t);e&&(n.$comment=e.replace(/\r/g,``))}return n??t}else return t}addAstNodeRegionWithAssignmentsTo(e){let t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){let n=e.$textRegion=t(e.$cstNode),r=n.assignments={};return Object.keys(e).filter(e=>!e.startsWith(`$`)).forEach(n=>{let i=or(e.$cstNode,n).map(t);i.length!==0&&(r[n]=i)}),e}}linkNode(e,t,n,r,i,a){for(let[r,i]of Object.entries(e))if(Array.isArray(i))for(let a=0;a<i.length;a++){let o=i[a];Vf(o)?i[a]=this.reviveReference(e,r,t,o,n):A(o)&&this.linkNode(o,t,n,e,r,a)}else Vf(i)?e[r]=this.reviveReference(e,r,t,i,n):A(i)&&this.linkNode(i,t,n,e,r);let o=e;o.$container=r,o.$containerProperty=i,o.$containerIndex=a}reviveReference(e,t,n,r,i){let a=r.$refText,o=r.$error;if(r.$ref){let e=this.getRefNode(n,r.$ref,i.uriConverter);if(A(e))return a||=this.nameProvider.getName(e),{$refText:a??``,ref:e};o=e}if(o){let n={$refText:a??``};return n.error={container:e,property:t,message:o,reference:n},n}else return}getRefNode(e,t,n){try{let r=t.indexOf(`#`);if(r===0)return this.astNodeLocator.getAstNode(e,t.substring(1))||`Could not resolve path: `+t;if(r<0){let e=n?n(t):bf.parse(t),r=this.langiumDocuments.getDocument(e);return r?r.parseResult.value:`Could not find document for URI: `+t}let i=n?n(t.substring(0,r)):bf.parse(t.substring(0,r)),a=this.langiumDocuments.getDocument(i);return a?r===t.length-1?a.parseResult.value:this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(r+1))||`Could not resolve URI: `+t:`Could not find document for URI: `+t}catch(e){return String(e)}}},Uf=class{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let t=e.LanguageMetaData;for(let n of t.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(t.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw Error("The service registry is empty. Use `register` to register the services of a language.");let t=this.textDocuments?.get(e)?.languageId;if(t!==void 0){let e=this.languageIdMap.get(t);if(e)return e}let n=Sf.extname(e),r=this.fileExtensionMap.get(n);if(!r)throw t?Error(`The service registry contains no services for the extension '${n}' for language '${t}'.`):Error(`The service registry contains no services for the extension '${n}'.`);return r}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function Wf(e){return{code:e}}var Gf;(function(e){e.all=[`fast`,`slow`,`built-in`]})(Gf||={});var Kf=class{constructor(e){this.entries=new Af,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n=`fast`){if(n===`built-in`)throw Error(`The 'built-in' category is reserved for lexer, parser, and linker errors.`);for(let[r,i]of Object.entries(e)){let e=i;if(Array.isArray(e))for(let i of e){let e={check:this.wrapValidationException(i,t),category:n};this.addEntry(r,e)}else if(typeof e==`function`){let i={check:this.wrapValidationException(e,t),category:n};this.addEntry(r,i)}else Ye(e)}}wrapValidationException(e,t){return async(n,r,i)=>{await this.handleException(()=>e.call(t,n,r,i),`An error occurred during validation`,r,n)}}async handleException(e,t,n,r){try{await e()}catch(e){if(lf(e))throw e;console.error(`${t}:`,e),e instanceof Error&&e.stack&&console.error(e.stack),n(`error`,`${t}: ${e instanceof Error?e.message:String(e)}`,{node:r})}}addEntry(e,t){if(e===`AstNode`){this.entries.add(`AstNode`,t);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,t)}getChecks(e,t){let n=j(this.entries.get(e)).concat(this.entries.get(`AstNode`));return t&&(n=n.filter(e=>t.includes(e.category))),n.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,`An error occurred during set-up of the validation`,t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,`An error occurred during tear-down of the validation`,t))}wrapPreparationException(e,t,n){return async(r,i,a,o)=>{await this.handleException(()=>e.call(n,r,i,a,o),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}},qf=class{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=Z.CancellationToken.None){let r=e.parseResult,i=[];if(await uf(n),(!t.categories||t.categories.includes(`built-in`))&&(this.processLexingErrors(r,i,t),t.stopAfterLexingErrors&&i.some(e=>e.data?.code===Zf.LexingError)||(this.processParsingErrors(r,i,t),t.stopAfterParsingErrors&&i.some(e=>e.data?.code===Zf.ParsingError))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>e.data?.code===Zf.LinkingError))))return i;try{i.push(...await this.validateAst(r.value,t,n))}catch(e){if(lf(e))throw e;console.error(`An error occurred during validation:`,e)}return await uf(n),i}processLexingErrors(e,t,n){let r=[...e.lexerErrors,...e.lexerReport?.diagnostics??[]];for(let e of r){let n=e.severity??`error`,r={severity:Yf(n),range:{start:{line:e.line-1,character:e.column-1},end:{line:e.line-1,character:e.column+e.length-1}},message:e.message,data:Xf(n),source:this.getSource()};t.push(r)}}processParsingErrors(e,t,n){for(let n of e.parserErrors){let e;if(isNaN(n.token.startOffset)){if(`previousToken`in n){let t=n.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}}}else e=ze(n.token);if(e){let r={severity:Yf(`error`),range:e,message:n.message,data:Wf(Zf.ParsingError),source:this.getSource()};t.push(r)}}}processLinkingErrors(e,t,n){for(let n of e.references){let e=n.error;if(e){let n={node:e.container,property:e.property,index:e.index,data:{code:Zf.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic(`error`,e.message,n))}}}async validateAst(e,t,n=Z.CancellationToken.None){let r=[],i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};return await this.validateAstBefore(e,t,i,n),await this.validateAstNodes(e,t,i,n),await this.validateAstAfter(e,t,i,n),r}async validateAstBefore(e,t,n,r=Z.CancellationToken.None){let i=this.validationRegistry.checksBefore;for(let a of i)await uf(r),await a(e,n,t.categories??[],r)}async validateAstNodes(e,t,n,r=Z.CancellationToken.None){await Promise.all(En(e).map(async e=>{await uf(r);let i=this.validationRegistry.getChecks(e.$type,t.categories);for(let t of i)await t(e,n,r)}))}async validateAstAfter(e,t,n,r=Z.CancellationToken.None){let i=this.validationRegistry.checksAfter;for(let a of i)await uf(r),await a(e,n,t.categories??[],r)}toDiagnostic(e,t,n){return{message:t,range:Jf(n),severity:Yf(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function Jf(e){if(e.range)return e.range;let t;return typeof e.property==`string`?t=sr(e.node.$cstNode,e.property,e.index):typeof e.keyword==`string`&&(t=lr(e.node.$cstNode,e.keyword,e.index)),t??=e.node.$cstNode,t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Yf(e){switch(e){case`error`:return 1;case`warning`:return 2;case`info`:return 3;case`hint`:return 4;default:throw Error(`Invalid diagnostic severity: `+e)}}function Xf(e){switch(e){case`error`:return Wf(Zf.LexingError);case`warning`:return Wf(Zf.LexingWarning);case`info`:return Wf(Zf.LexingInfo);case`hint`:return Wf(Zf.LexingHint);default:throw Error(`Invalid diagnostic severity: `+e)}}var Zf;(function(e){e.LexingError=`lexing-error`,e.LexingWarning=`lexing-warning`,e.LexingInfo=`lexing-info`,e.LexingHint=`lexing-hint`,e.ParsingError=`parsing-error`,e.LinkingError=`linking-error`})(Zf||={});var Qf=class{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){let r=n??Sn(e);t??=this.nameProvider.getName(e);let i=this.astNodeLocator.getAstNodePath(e);if(!t)throw Error(`Node at path ${i} has no name.`);let a,o=()=>a??=Be(this.nameProvider.getNameNode(e)??e.$cstNode);return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Be(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}},$f=class{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=Z.CancellationToken.None){let n=[],r=e.parseResult.value;for(let e of En(r))await uf(t),On(e).filter(e=>!Te(e)).forEach(e=>{let t=this.createDescription(e);t&&n.push(t)});return n}createDescription(e){let t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;let r=Sn(e.container).uri;return{sourceUri:r,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Be(n),local:Sf.equals(t.documentUri,r)}}},ep=class{constructor(){this.segmentSeparator=`/`,this.indexSeparator=`@`}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return``}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw Error(`Missing '$containerProperty' in AST node.`);return t===void 0?e:e+this.indexSeparator+t}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||t.length===0)return e;let n=t.indexOf(this.indexSeparator);if(n>0){let r=t.substring(0,n),i=parseInt(t.substring(n+1));return e[r]?.[i]}return e[t]},e)}},tp={};e(tp,t(nf(),1));var np=class{constructor(e){this._ready=new df,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new tp.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,n[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{let n=e.settings[t];this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},rp;(function(e){function t(e){return{dispose:async()=>await e()}}e.create=t})(rp||={});var ip=class{constructor(e){this.updateBuildOptions={validation:{categories:[`built-in`,`fast`]}},this.updateListeners=[],this.buildPhaseListeners=new Af,this.documentPhaseListeners=new Af,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Q.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,t={},n=Z.CancellationToken.None){for(let n of e){let e=n.uri.toString();if(n.state===Q.Validated){if(typeof t.validation==`boolean`&&t.validation)n.state=Q.IndexedReferences,n.diagnostics=void 0,this.buildState.delete(e);else if(typeof t.validation==`object`){let r=this.buildState.get(e),i=r?.result?.validationChecks;if(i){let a=(t.validation.categories??Gf.all).filter(e=>!i.includes(e));a.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:a})},result:r.result}),n.state=Q.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=Q.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=Z.CancellationToken.None){this.currentState=Q.Changed;for(let e of t)this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(let t of e){if(!this.langiumDocuments.invalidateDocument(t)){let e=this.langiumDocumentFactory.fromModel({$type:`INVALID`},t);e.state=Q.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}let r=j(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,Q.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await uf(n);let i=this.sortDocuments(this.langiumDocuments.all.filter(e=>e.state<Q.Linked||!this.buildState.get(e.uri.toString())?.completed).toArray());await this.buildDocuments(i,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(n=>n(e,t)))}sortDocuments(e){let t=0,n=e.length-1;for(;t<n;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;n>=0&&!this.hasTextDocument(e[n]);)n--;t<n&&([e[t],e[n]]=[e[n],e[t]])}return e}hasTextDocument(e){return!!this.textDocuments?.get(e.uri)}shouldRelink(e,t){return e.references.some(e=>e.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),rp.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,Q.Parsed,n,e=>this.langiumDocumentFactory.update(e,n)),await this.runCancelable(e,Q.IndexedContent,n,e=>this.indexManager.updateContent(e,n)),await this.runCancelable(e,Q.ComputedScopes,n,async e=>{e.precomputedScopes=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeLocalScopes(e,n)}),await this.runCancelable(e,Q.Linked,n,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,n)),await this.runCancelable(e,Q.IndexedReferences,n,e=>this.indexManager.updateReferences(e,n));let r=e.filter(e=>this.shouldValidate(e));await this.runCancelable(r,Q.Validated,n,e=>this.validate(e,n));for(let t of e){let e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(let n of e){let e=n.uri.toString(),r=this.buildState.get(e);(!r||r.completed)&&this.buildState.set(e,{completed:!1,options:t,result:r?.result})}}async runCancelable(e,t,n,r){let i=e.filter(e=>e.state<t);for(let e of i)await uf(n),await r(e),e.state=t,await this.notifyDocumentPhase(e,t,n);let a=e.filter(e=>e.state===t);await this.notifyBuildPhase(a,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),rp.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),rp.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let r;if(t&&`path`in t?r=t:n=t,n??=Z.CancellationToken.None,r){let t=this.langiumDocuments.getDocument(r);if(t&&t.state>e)return Promise.resolve(r)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(cf):new Promise((t,i)=>{let a=this.onBuildPhase(e,()=>{a.dispose(),o.dispose(),t(r?this.langiumDocuments.getDocument(r)?.uri:void 0)}),o=n.onCancellationRequested(()=>{a.dispose(),o.dispose(),i(cf)})})}async notifyDocumentPhase(e,t,n){let r=this.documentPhaseListeners.get(t).slice();for(let t of r)try{await t(e,n)}catch(e){if(!lf(e))throw e}}async notifyBuildPhase(e,t,n){if(e.length===0)return;let r=this.buildPhaseListeners.get(t).slice();for(let t of r)await uf(n),await t(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){let n=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,r=this.getBuildOptions(e).validation,i=typeof r==`object`?r:void 0,a=await n.validateDocument(e,i,t);e.diagnostics?e.diagnostics.push(...a):e.diagnostics=a;let o=this.buildState.get(e.uri.toString());if(o){o.result??={};let e=i?.categories??Gf.all;o.result.validationChecks?o.result.validationChecks.push(...e):o.result.validationChecks=[...e]}}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}},ap=class{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Lf,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let n=Sn(e).uri,r=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{Sf.equals(e.targetUri,n)&&e.targetPath===t&&r.push(e)})}),j(r)}allElements(e,t){let n=j(this.symbolIndex.keys());return t&&(n=n.filter(e=>!t||t.has(e))),n.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){return t?this.symbolByTypeIndex.get(e,t,()=>(this.symbolIndex.get(e)??[]).filter(e=>this.astReflection.isSubtype(e.type,t))):this.symbolIndex.get(e)??[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=Z.CancellationToken.None){let n=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),r=e.uri.toString();this.symbolIndex.set(r,n),this.symbolByTypeIndex.clear(r)}async updateReferences(e,t=Z.CancellationToken.None){let n=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(e=>!e.local&&t.has(e.targetUri.toString())):!1}},op=class{constructor(e){this.initialBuildOptions={},this._ready=new df,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){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(e=>this.initializeWorkspace(this.folders??[],e))}async initializeWorkspace(e,t=Z.CancellationToken.None){let n=await this.performStartup(e);await uf(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){let t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),n=[],r=e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,r),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,r))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return bf.parse(e.uri)}async traverseFolder(e,t,n,r){let i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{this.includeEntry(e,t,n)&&(t.isDirectory?await this.traverseFolder(e,t.uri,n,r):t.isFile&&r(await this.langiumDocuments.getOrCreateDocument(t.uri)))}))}includeEntry(e,t,n){let r=Sf.basename(t.uri);if(r.startsWith(`.`))return!1;if(t.isDirectory)return r!==`node_modules`&&r!==`out`;if(t.isFile){let e=Sf.extname(t.uri);return n.includes(e)}return!1}},sp=class{buildUnexpectedCharactersMessage(e,t,n,r,i){return bo.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return bo.buildUnableToPopLexerModeMessage(e)}};const cp={mode:`full`};var lp=class{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t),this.chevrotainLexer=new U(fp(t)?Object.values(t):t,{positionTracking:`full`,skipValidations:e.LanguageMetaData.mode===`production`,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=cp){var n;let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:(n=this.tokenBuilder).flushLexingReport?.call(n,e)}}toTokenTypeDictionary(e){if(fp(e))return e;let t=dp(e)?Object.values(e.modes).flat():e,n={};return t.forEach(e=>n[e.name]=e),n}};function up(e){return Array.isArray(e)&&(e.length===0||`name`in e[0])}function dp(e){return e&&`modes`in e&&`defaultMode`in e}function fp(e){return!up(e)&&!dp(e)}function pp(e,t,n){let r,i;typeof e==`string`?(i=t,r=n):(i=e.range.start,r=t),i||=J.create(0,0);let a=hp(e),o=jp(r);return wp({index:0,tokens:vp({lines:a,position:i,options:o}),position:i})}function mp(e,t){let n=jp(t),r=hp(e);if(r.length===0)return!1;let i=r[0],a=r[r.length-1],o=n.start,s=n.end;return!!o?.exec(i)&&!!s?.exec(a)}function hp(e){let t=``;return t=typeof e==`string`?e:e.text,t.split(Wn)}const gp=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,_p=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function vp(e){let t=[],n=e.position.line,r=e.position.character;for(let i=0;i<e.lines.length;i++){let a=i===0,o=i===e.lines.length-1,s=e.lines[i],c=0;if(a&&e.options.start){let t=e.options.start?.exec(s);t&&(c=t.index+t[0].length)}else{let t=e.options.line?.exec(s);t&&(c=t.index+t[0].length)}if(o){let t=e.options.end?.exec(s);t&&(s=s.substring(0,t.index))}if(s=s.substring(0,Cp(s)),Sp(s,c)>=s.length){if(t.length>0){let e=J.create(n,r);t.push({type:`break`,content:``,range:Y.create(e,e)})}}else{gp.lastIndex=c;let e=gp.exec(s);if(e){let i=e[0],a=e[1],o=J.create(n,r+c),l=J.create(n,r+c+i.length);t.push({type:`tag`,content:a,range:Y.create(o,l)}),c+=i.length,c=Sp(s,c)}if(c<s.length){let e=s.substring(c),i=Array.from(e.matchAll(_p));t.push(...yp(i,e,n,r+c))}}n++,r=0}return t.length>0&&t[t.length-1].type===`break`?t.slice(0,-1):t}function yp(e,t,n,r){let i=[];if(e.length===0){let e=J.create(n,r),a=J.create(n,r+t.length);i.push({type:`text`,content:t,range:Y.create(e,a)})}else{let a=0;for(let o of e){let e=o.index,s=t.substring(a,e);s.length>0&&i.push({type:`text`,content:t.substring(a,e),range:Y.create(J.create(n,a+r),J.create(n,e+r))});let c=s.length+1,l=o[1];if(i.push({type:`inline-tag`,content:l,range:Y.create(J.create(n,a+c+r),J.create(n,a+c+l.length+r))}),c+=l.length,o.length===4){c+=o[2].length;let e=o[3];i.push({type:`text`,content:e,range:Y.create(J.create(n,a+c+r),J.create(n,a+c+e.length+r))})}else i.push({type:`text`,content:``,range:Y.create(J.create(n,a+c+r),J.create(n,a+c+r))});a=e+o[0].length}let o=t.substring(a);o.length>0&&i.push({type:`text`,content:o,range:Y.create(J.create(n,a+r),J.create(n,a+r+o.length))})}return i}const bp=/\S/,xp=/\s*$/;function Sp(e,t){let n=e.substring(t).match(bp);return n?t+n.index:e.length}function Cp(e){let t=e.match(xp);if(t&&typeof t.index==`number`)return t.index}function wp(e){let t=J.create(e.position.line,e.position.character);if(e.tokens.length===0)return new Np([],Y.create(t,t));let n=[];for(;e.index<e.tokens.length;){let t=Tp(e,n[n.length-1]);t&&n.push(t)}let r=n[0]?.range.start??t,i=n[n.length-1]?.range.end??t;return new Np(n,Y.create(r,i))}function Tp(e,t){let n=e.tokens[e.index];if(n.type===`tag`)return kp(e,!1);if(n.type===`text`||n.type===`inline-tag`)return Dp(e);Ep(n,t),e.index++}function Ep(e,t){if(t){let n=new Rp(``,e.range);`inlines`in t?t.inlines.push(n):t.content.inlines.push(n)}}function Dp(e){let t=e.tokens[e.index],n=t,r=t,i=[];for(;t&&t.type!==`break`&&t.type!==`tag`;)i.push(Op(e)),r=t,t=e.tokens[e.index];return new Lp(i,Y.create(n.range.start,r.range.end))}function Op(e){return e.tokens[e.index].type===`inline-tag`?kp(e,!0):Ap(e)}function kp(e,t){let n=e.tokens[e.index++],r=n.content.substring(1);if(e.tokens[e.index]?.type===`text`)if(t){let i=Ap(e);return new Pp(r,new Lp([i],i.range),t,Y.create(n.range.start,i.range.end))}else{let i=Dp(e);return new Pp(r,i,t,Y.create(n.range.start,i.range.end))}else{let e=n.range;return new Pp(r,new Lp([],e),t,e)}}function Ap(e){let t=e.tokens[e.index++];return new Rp(t.content,t.range)}function jp(e){if(!e)return jp({start:`/**`,end:`*/`,line:`*`});let{start:t,end:n,line:r}=e;return{start:Mp(t,!0),end:Mp(n,!1),line:Mp(r,!0)}}function Mp(e,t){if(typeof e==`string`||typeof e==`object`){let n=typeof e==`string`?Xn(e):e.source;return t?RegExp(`^\\s*${n}`):RegExp(`\\s*${n}\\s*$`)}else return e}var Np=class{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>`name`in e)}toString(){let e=``;for(let t of this.elements)if(e.length===0)e=t.toString();else{let n=t.toString();e+=zp(e)+n}return e.trim()}toMarkdown(e){let t=``;for(let n of this.elements)if(t.length===0)t=n.toMarkdown(e);else{let r=n.toMarkdown(e);t+=zp(t)+r}return t.trim()}},Pp=class{constructor(e,t,n,r){this.name=e,this.content=t,this.inline=n,this.range=r}toString(){let e=`@${this.name}`,t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){return(e?.renderTag)?.call(e,this)??this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let n=Fp(this.name,t,e??{});if(typeof n==`string`)return n}let n=``;e?.tag===`italic`||e?.tag===void 0?n=`*`:e?.tag===`bold`?n=`**`:e?.tag===`bold-italic`&&(n=`***`);let r=`${n}@${this.name}${n}`;return this.content.inlines.length===1?r=`${r} — ${t}`:this.content.inlines.length>1&&(r=`${r}\n${t}`),this.inline?`{${r}}`:r}};function Fp(e,t,n){if(e===`linkplain`||e===`linkcode`||e===`link`){let r=t.indexOf(` `),i=t;if(r>0){let e=Sp(t,r);i=t.substring(e),t=t.substring(0,r)}return(e===`linkcode`||e===`link`&&n.link===`code`)&&(i=`\`${i}\``),n.renderLink?.call(n,t,i)??Ip(t,i)}}function Ip(e,t){try{return bf.parse(e,!0),`[${t}](${e})`}catch{return e}}var Lp=class{constructor(e,t){this.inlines=e,this.range=t}toString(){let e=``;for(let t=0;t<this.inlines.length;t++){let n=this.inlines[t],r=this.inlines[t+1];e+=n.toString(),r&&r.range.start.line>n.range.start.line&&(e+=`
|
|
74
|
+
`)}return e}toMarkdown(e){let t=``;for(let n=0;n<this.inlines.length;n++){let r=this.inlines[n],i=this.inlines[n+1];t+=r.toMarkdown(e),i&&i.range.start.line>r.range.start.line&&(t+=`
|
|
75
|
+
`)}return t}},Rp=class{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function zp(e){return e.endsWith(`
|
|
76
|
+
`)?`
|
|
77
|
+
`:`
|
|
78
|
+
|
|
79
|
+
`}var Bp=class{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&mp(t))return pp(t).toMarkdown({renderLink:(t,n)=>this.documentationLinkRenderer(e,t,n),renderTag:t=>this.documentationTagRenderer(e,t)})}documentationLinkRenderer(e,t,n){let r=this.findNameInPrecomputedScopes(e,t)??this.findNameInGlobalScope(e,t);if(r&&r.nameSegment){let e=r.nameSegment.range.start.line+1,t=r.nameSegment.range.start.character+1;return`[${n}](${r.documentUri.with({fragment:`L${e},${t}`}).toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let n=Sn(e).precomputedScopes;if(!n)return;let r=e;do{let e=n.get(r).find(e=>e.name===t);if(e)return e;r=r.$container}while(r)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}},Vp=class{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return Bf(e)?e.$comment:Ge(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},Hp=class{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}},Up=class{constructor(){this.previousTokenSource=new Z.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=sf();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=Z.CancellationToken.None){let r=new df,i={action:t,deferred:r,cancellationToken:n};return e.push(i),this.performNextOperation(),r.promise}async performNextOperation(){if(!this.done)return;let 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:e,deferred:t,cancellationToken:n})=>{try{let r=await Promise.resolve().then(()=>e(n));t.resolve(r)}catch(e){lf(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},Wp=class{constructor(e){this.grammarElementIdMap=new jf,this.tokenTypeIdMap=new jf,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(e=>Object.assign(Object.assign({},e),{message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let t=new Map,n=new Map;for(let n of En(e))t.set(n,{});if(e.$cstNode)for(let t of Le(e.$cstNode))n.set(t,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){let n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(let[r,i]of Object.entries(e))if(!r.startsWith(`$`))if(Array.isArray(i)){let e=[];n[r]=e;for(let n of i)A(n)?e.push(this.dehydrateAstNode(n,t)):Ce(n)?e.push(this.dehydrateReference(n,t)):e.push(n)}else A(i)?n[r]=this.dehydrateAstNode(i,t):Ce(i)?n[r]=this.dehydrateReference(i,t):i!==void 0&&(n[r]=i);return n}dehydrateReference(e,t){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){let n=t.cstNodes.get(e);return ke(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),De(e)?n.content=e.content.map(e=>this.dehydrateCstNode(e,t)):Oe(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let t=e.value,n=this.createHydrationContext(t);return`$cstNode`in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){let t=new Map,n=new Map;for(let n of En(e))t.set(n,{});let r;if(e.$cstNode)for(let t of Le(e.$cstNode)){let e;`fullText`in t?(e=new bd(t.fullText),r=e):`content`in t?e=new vd:`tokenType`in t&&(e=this.hydrateCstLeafNode(t)),e&&(n.set(t,e),e.root=r)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){let n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(let[r,i]of Object.entries(e))if(!r.startsWith(`$`))if(Array.isArray(i)){let e=[];n[r]=e;for(let a of i)A(a)?e.push(this.setParent(this.hydrateAstNode(a,t),n)):Ce(a)?e.push(this.hydrateReference(a,n,r,t)):e.push(a)}else A(i)?n[r]=this.setParent(this.hydrateAstNode(i,t),n):Ce(i)?n[r]=this.hydrateReference(i,n,r,t):i!==void 0&&(n[r]=i);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,r){return this.linker.buildReference(t,n,r.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){let r=t.cstNodes.get(e);if(typeof e.grammarSource==`number`&&(r.grammarSource=this.getGrammarElement(e.grammarSource)),r.astNode=t.astNodes.get(e.astNode),De(r))for(let i of e.content){let e=this.hydrateCstNode(i,t,n++);r.content.push(e)}return r}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),n=e.offset,r=e.length,i=e.startLine,a=e.startColumn,o=e.endLine,s=e.endColumn,c=e.hidden;return new _d(n,r,{start:{line:i,character:a},end:{line:o,character:s}},t,c)}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(let t of En(this.grammar))nt(t)&&this.grammarElementIdMap.set(t,e++)}};function Gp(e){return{documentation:{CommentProvider:e=>new Vp(e),DocumentationProvider:e=>new Bp(e)},parser:{AsyncParser:e=>new Hp(e),GrammarConfig:e=>Ar(e),LangiumParser:e=>Yd(e),CompletionParser:e=>Jd(e),ValueConverter:()=>new Qd,TokenBuilder:()=>new Zd,Lexer:e=>new lp(e),ParserErrorMessageProvider:()=>new Dd,LexerErrorMessageProvider:()=>new sp},workspace:{AstNodeLocator:()=>new ep,AstNodeDescriptionProvider:e=>new Qf(e),ReferenceDescriptionProvider:e=>new $f(e)},references:{Linker:e=>new Ef(e),NameProvider:()=>new Of,ScopeProvider:e=>new zf(e),ScopeComputation:e=>new Mf(e),References:e=>new kf(e)},serializer:{Hydrator:e=>new Wp(e),JsonSerializer:e=>new Hf(e)},validation:{DocumentValidator:e=>new qf(e),ValidationRegistry:e=>new Kf(e)},shared:()=>e.shared}}function Kp(e){return{ServiceRegistry:e=>new Uf(e),workspace:{LangiumDocuments:e=>new wf(e),LangiumDocumentFactory:e=>new Cf(e),DocumentBuilder:e=>new ip(e),IndexManager:e=>new ap(e),WorkspaceManager:e=>new op(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new Up,ConfigurationProvider:e=>new np(e)}}}var qp;(function(e){e.merge=(e,t)=>$p($p({},e),t)})(qp||={});function Jp(e,t,n,r,i,a,o,s,c){return Xp([e,t,n,r,i,a,o,s,c].reduce($p,{}))}const Yp=Symbol(`isProxy`);function Xp(e,t){let n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw Error(`Cannot set property on injected service container`)},get:(r,i)=>i===Yp?!0:Qp(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(Qp(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(t,n)=>n in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}const Zp=Symbol();function Qp(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw Error(`Construction failure. Please make sure that your dependencies are constructable.`,{cause:e[t]});if(e[t]===Zp)throw Error(`Cycle detected. Please make "`+String(t)+`" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies`);return e[t]}else if(t in n){let i=n[t];e[t]=Zp;try{e[t]=typeof i==`function`?i(r):Xp(i,r)}catch(n){throw e[t]=n instanceof Error?n:void 0,n}return e[t]}else return}function $p(e,t){if(t){for(let[n,r]of Object.entries(t))if(r!==void 0){let t=e[n];t!==null&&r!==null&&typeof t==`object`&&typeof r==`object`?e[n]=$p(t,r):e[n]=r}}return e}var em=class{readFile(){throw Error(`No file system is available.`)}async readDirectory(){return[]}};const tm={fileSystemProvider:()=>new em},nm={Grammar:()=>void 0,LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[`.langium`],languageId:`langium`})},rm={AstReflection:()=>new yn};function im(){let e=Jp(Kp(tm),rm),t=Jp(Gp({shared:e}),nm);return e.ServiceRegistry.register(t),t}function am(e){let t=im(),n=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,bf.parse(`memory://${n.name??`grammar`}.langium`)),n}var om=Object.defineProperty,$=(e,t)=>om(e,`name`,{value:t,configurable:!0}),sm=`Statement`,cm=`Architecture`;function lm(e){return Jm.isInstance(e,cm)}$(lm,`isArchitecture`);var um=`Axis`,dm=`Branch`;function fm(e){return Jm.isInstance(e,dm)}$(fm,`isBranch`);var pm=`Checkout`,mm=`CherryPicking`,hm=`ClassDefStatement`,gm=`Commit`;function _m(e){return Jm.isInstance(e,gm)}$(_m,`isCommit`);var vm=`Curve`,ym=`Edge`,bm=`Entry`,xm=`GitGraph`;function Sm(e){return Jm.isInstance(e,xm)}$(Sm,`isGitGraph`);var Cm=`Group`,wm=`Info`;function Tm(e){return Jm.isInstance(e,wm)}$(Tm,`isInfo`);var Em=`Item`,Dm=`Junction`,Om=`Merge`;function km(e){return Jm.isInstance(e,Om)}$(km,`isMerge`);var Am=`Option`,jm=`Packet`;function Mm(e){return Jm.isInstance(e,jm)}$(Mm,`isPacket`);var Nm=`PacketBlock`;function Pm(e){return Jm.isInstance(e,Nm)}$(Pm,`isPacketBlock`);var Fm=`Pie`;function Im(e){return Jm.isInstance(e,Fm)}$(Im,`isPie`);var Lm=`PieSection`;function Rm(e){return Jm.isInstance(e,Lm)}$(Rm,`isPieSection`);var zm=`Radar`,Bm=`Service`,Vm=`Treemap`;function Hm(e){return Jm.isInstance(e,Vm)}$(Hm,`isTreemap`);var Um=`TreemapRow`,Wm=`Direction`,Gm=`Leaf`,Km=`Section`,qm=class extends Ee{static{$(this,`MermaidAstReflection`)}getAllTypes(){return[cm,um,dm,pm,mm,hm,gm,vm,Wm,ym,bm,xm,Cm,wm,Em,Dm,Gm,Om,Am,jm,Nm,Fm,Lm,zm,Km,Bm,sm,Vm,Um]}computeIsSubtype(e,t){switch(e){case dm:case pm:case mm:case gm:case Om:return this.isSubtype(sm,t);case Wm:return this.isSubtype(xm,t);case Gm:case Km:return this.isSubtype(Em,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case`Entry:axis`:return um;default:throw Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case cm:return{name:cm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`edges`,defaultValue:[]},{name:`groups`,defaultValue:[]},{name:`junctions`,defaultValue:[]},{name:`services`,defaultValue:[]},{name:`title`}]};case um:return{name:um,properties:[{name:`label`},{name:`name`}]};case dm:return{name:dm,properties:[{name:`name`},{name:`order`}]};case pm:return{name:pm,properties:[{name:`branch`}]};case mm:return{name:mm,properties:[{name:`id`},{name:`parent`},{name:`tags`,defaultValue:[]}]};case hm:return{name:hm,properties:[{name:`className`},{name:`styleText`}]};case gm:return{name:gm,properties:[{name:`id`},{name:`message`},{name:`tags`,defaultValue:[]},{name:`type`}]};case vm:return{name:vm,properties:[{name:`entries`,defaultValue:[]},{name:`label`},{name:`name`}]};case ym:return{name:ym,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 bm:return{name:bm,properties:[{name:`axis`},{name:`value`}]};case xm:return{name:xm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`statements`,defaultValue:[]},{name:`title`}]};case Cm:return{name:Cm,properties:[{name:`icon`},{name:`id`},{name:`in`},{name:`title`}]};case wm:return{name:wm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`title`}]};case Em:return{name:Em,properties:[{name:`classSelector`},{name:`name`}]};case Dm:return{name:Dm,properties:[{name:`id`},{name:`in`}]};case Om:return{name:Om,properties:[{name:`branch`},{name:`id`},{name:`tags`,defaultValue:[]},{name:`type`}]};case Am:return{name:Am,properties:[{name:`name`},{name:`value`,defaultValue:!1}]};case jm:return{name:jm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`blocks`,defaultValue:[]},{name:`title`}]};case Nm:return{name:Nm,properties:[{name:`bits`},{name:`end`},{name:`label`},{name:`start`}]};case Fm:return{name:Fm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`sections`,defaultValue:[]},{name:`showData`,defaultValue:!1},{name:`title`}]};case Lm:return{name:Lm,properties:[{name:`label`},{name:`value`}]};case zm:return{name:zm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`axes`,defaultValue:[]},{name:`curves`,defaultValue:[]},{name:`options`,defaultValue:[]},{name:`title`}]};case Bm:return{name:Bm,properties:[{name:`icon`},{name:`iconText`},{name:`id`},{name:`in`},{name:`title`}]};case Vm:return{name:Vm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`title`},{name:`TreemapRows`,defaultValue:[]}]};case Um:return{name:Um,properties:[{name:`indent`},{name:`item`}]};case Wm:return{name:Wm,properties:[{name:`accDescr`},{name:`accTitle`},{name:`dir`},{name:`statements`,defaultValue:[]},{name:`title`}]};case Gm:return{name:Gm,properties:[{name:`classSelector`},{name:`name`},{name:`value`}]};case Km:return{name:Km,properties:[{name:`classSelector`},{name:`name`}]};default:return{name:e,properties:[]}}}},Jm=new qm,Ym,Xm=$(()=>Ym??=am(`{"$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`),Zm,Qm=$(()=>Zm??=am(`{"$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`),$m,eh=$(()=>$m??=am(`{"$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`),th,nh=$(()=>th??=am(`{"$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`),rh,ih=$(()=>rh??=am(`{"$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`),ah,oh=$(()=>ah??=am(`{"$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`),sh,ch=$(()=>sh??=am(`{"$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`),lh={languageId:`info`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},uh={languageId:`packet`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},dh={languageId:`pie`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},fh={languageId:`architecture`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},ph={languageId:`gitGraph`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},mh={languageId:`radar`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},hh={languageId:`treemap`,fileExtensions:[`.mmd`,`.mermaid`],caseInsensitive:!1,mode:`production`},gh={AstReflection:$(()=>new qm,`AstReflection`)},_h={Grammar:$(()=>Xm(),`Grammar`),LanguageMetaData:$(()=>lh,`LanguageMetaData`),parser:{}},vh={Grammar:$(()=>Qm(),`Grammar`),LanguageMetaData:$(()=>uh,`LanguageMetaData`),parser:{}},yh={Grammar:$(()=>eh(),`Grammar`),LanguageMetaData:$(()=>dh,`LanguageMetaData`),parser:{}},bh={Grammar:$(()=>nh(),`Grammar`),LanguageMetaData:$(()=>fh,`LanguageMetaData`),parser:{}},xh={Grammar:$(()=>ih(),`Grammar`),LanguageMetaData:$(()=>ph,`LanguageMetaData`),parser:{}},Sh={Grammar:$(()=>oh(),`Grammar`),LanguageMetaData:$(()=>mh,`LanguageMetaData`),parser:{}},Ch={Grammar:$(()=>ch(),`Grammar`),LanguageMetaData:$(()=>hh,`LanguageMetaData`),parser:{}},wh={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},Th=class extends Qd{static{$(this,`AbstractMermaidValueConverter`)}runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);return r===void 0&&(r=this.runCustomConverter(e,t,n)),r===void 0?super.runConverter(e,t,n):r}runCommonConverter(e,t,n){let r=wh[e.name];if(r===void 0)return;let i=r.exec(t);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm,` `);if(i[2]!==void 0)return i[2].replace(/^\s*/gm,``).replace(/\s+$/gm,``).replace(/[\t ]{2,}/gm,` `).replace(/[\n\r]{2,}/gm,`
|
|
80
|
+
`)}}},Eh=class extends Th{static{$(this,`CommonValueConverter`)}runCustomConverter(e,t,n){}},Dh=class extends Zd{static{$(this,`AbstractMermaidTokenBuilder`)}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){let r=super.buildKeywordTokens(e,t,n);return r.forEach(e=>{this.keywords.has(e.name)&&e.PATTERN!==void 0&&(e.PATTERN=RegExp(e.PATTERN.toString()+`(?:(?=%%)|(?!\\S))`))}),r}};(class extends Dh{static{$(this,`CommonTokenBuilder`)}});export{xh as a,vh as c,Ch as d,$ as f,Kp as g,Gp as h,Eh as i,yh as l,Jp as m,Th as n,_h as o,tm as p,bh as r,gh as s,Dh as t,Sh as u};
|