orbitchat 2.2.6 → 2.2.8

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.
Files changed (57) hide show
  1. package/bin/orbitchat.js +56 -32
  2. package/dist/assets/{_basePickBy-BjEly54R-XZ-uT-Uj.js → _basePickBy-1MakYQmz-ydNwd1l_.js} +1 -1
  3. package/dist/assets/{_baseUniq-DRc_T5HB-BsnuNSgv.js → _baseUniq-Cd4llU-Q-Cdw60MU4.js} +1 -1
  4. package/dist/assets/{api-RpN2_Bta.js → api-L84wIOvt.js} +1 -1
  5. package/dist/assets/arc-b8oyw-lz-1LLYREoj.js +1 -0
  6. package/dist/assets/{architectureDiagram-VXUJARFQ-Cfm45ePu-CSKO1yu3.js → architectureDiagram-VXUJARFQ-BuSDV2Do-_okKpoAJ.js} +1 -1
  7. package/dist/assets/{blockDiagram-VD42YOAC-BRbgLESd-Bbm-oCAg.js → blockDiagram-VD42YOAC-jQHtez-j-rtzBv-vF.js} +4 -4
  8. package/dist/assets/{c4Diagram-YG6GDRKO-DLei6MnZ-SeObXeAe.js → c4Diagram-YG6GDRKO-_5giM-EA-DjRoFacG.js} +4 -4
  9. package/dist/assets/channel-BLPbvVT2-CnJJPuZ5.js +1 -0
  10. package/dist/assets/{chunk-4BX2VUAB-DeMNg1Xd-CMa4zZ7K.js → chunk-4BX2VUAB-BeuiUsbc-DN2rdYji.js} +1 -1
  11. package/dist/assets/chunk-55IACEB6-C4OH5_NF-DrgL4Tv-.js +1 -0
  12. package/dist/assets/{chunk-B4BG7PRW-CIxgz8SC-Cg2SKJYD.js → chunk-B4BG7PRW-CnUkcto7-DHe7ngzh.js} +1 -1
  13. package/dist/assets/{chunk-DI55MBZ5-i035IDz6-DxyMtoDb.js → chunk-DI55MBZ5-CSd59tsh-DFg8M9sN.js} +4 -4
  14. package/dist/assets/{chunk-FMBD7UC4-Bm0ev8jq-DBEEbKOi.js → chunk-FMBD7UC4-C6VImbBX-ip_5_GPo.js} +1 -1
  15. package/dist/assets/{chunk-QN33PNHL-C8-RyAc3-Bziqpynq.js → chunk-QN33PNHL-DrWWTLTH-tpIkWiz1.js} +1 -1
  16. package/dist/assets/{chunk-QZHKN3VN-DMEEp6GB-NSbjkrZ8.js → chunk-QZHKN3VN-C6_I39By-ZQp0I6tE.js} +1 -1
  17. package/dist/assets/chunk-TZMSLE5B-DGddLgNl-CifiGjd6.js +1 -0
  18. package/dist/assets/classDiagram-2ON5EDUG-BngjTxOv-2Y-76rXt.js +1 -0
  19. package/dist/assets/classDiagram-v2-WZHVMYZB-BngjTxOv-2Y-76rXt.js +1 -0
  20. package/dist/assets/clone-DH1Kq5Y6-DxQT_fR1.js +1 -0
  21. package/dist/assets/{cose-bilkent-S5V4N54A-VxeRCpgs-DsXa8Zq3.js → cose-bilkent-S5V4N54A-DcyCVH6S-zMMT3oqX.js} +1 -1
  22. package/dist/assets/{dagre-6UL2VRFP-B-o0qgxK-DfZm7xId.js → dagre-6UL2VRFP-B799wmhr-DuXOlM7I.js} +1 -1
  23. package/dist/assets/{diagram-PSM6KHXK-CoKmJ9sN-rwg0eDKT.js → diagram-PSM6KHXK-Dxp2wzKk-CmF_yeQm.js} +1 -1
  24. package/dist/assets/{diagram-QEK2KX5R-ETMfkzYL-Bawb4i2Y.js → diagram-QEK2KX5R-Km_liL9n-DiDvLC9k.js} +1 -1
  25. package/dist/assets/{diagram-S2PKOQOG-BgLbl6rv-fjzP4qrY.js → diagram-S2PKOQOG-tSpHqt0k-Dhi7ufxY.js} +1 -1
  26. package/dist/assets/{erDiagram-Q2GNP2WA-Swwdy5pk-TsPzHVEQ.js → erDiagram-Q2GNP2WA-DF6ylQ7o-CjIoFnUJ.js} +2 -2
  27. package/dist/assets/{flowDiagram-NV44I4VS-DXJdBBSZ-DNo_92-L.js → flowDiagram-NV44I4VS-BQUYJeB--D2fTwlvO.js} +1 -1
  28. package/dist/assets/{ganttDiagram-LVOFAZNH-DmRbHwxf-Cwvlwlkm.js → ganttDiagram-LVOFAZNH-BidPm1xz-D_x48jVE.js} +4 -4
  29. package/dist/assets/{gitGraphDiagram-NY62KEGX-D30uHfXn-C_O3r_x5.js → gitGraphDiagram-NY62KEGX-zbMOFVrv-DTVFadEr.js} +2 -2
  30. package/dist/assets/{graph-ClfIprSM-BZwHPDDo.js → graph-aRt77rZZ-Dq9dkNsk.js} +1 -1
  31. package/dist/assets/{index-Dwfg9sR1.js → index-p0knuDQ9.js} +135 -135
  32. package/dist/assets/{index-Bny2bm5_-BBHjCfey.js → index-rW5EEHFR-Cm6Gxbor.js} +1 -1
  33. package/dist/assets/{infoDiagram-ER5ION4S-C0DTNQfZ-DOapqc3o.js → infoDiagram-ER5ION4S-ozjqEnsq-D0PwL9B_.js} +1 -1
  34. package/dist/assets/{journeyDiagram-XKPGCS4Q-53CUbf20-Dh7OAcXv.js → journeyDiagram-XKPGCS4Q-C6JuEafR-BSuib8Wf.js} +4 -4
  35. package/dist/assets/{kanban-definition-3W4ZIXB7-B-HAgUf7-KfKbtZ09.js → kanban-definition-3W4ZIXB7-Ci4U3NR--Bxb6Yi8G.js} +4 -4
  36. package/dist/assets/{layout-DoRwGyA9-CrmvCQM-.js → layout-BKjRgLFe-WihuzEZg.js} +1 -1
  37. package/dist/assets/{mindmap-definition-VGOIOE7T-JxieKS1D-DwQCKBi2.js → mindmap-definition-VGOIOE7T-DveejCtl-DXLxEnp4.js} +1 -1
  38. package/dist/assets/{pieDiagram-ADFJNKIX-vEsBIPBi-BNA3SacN.js → pieDiagram-ADFJNKIX-DAbSGtae-BruonBFZ.js} +2 -2
  39. package/dist/assets/{quadrantDiagram-AYHSOK5B-DuNXQUnS-DiYTe8-4.js → quadrantDiagram-AYHSOK5B-DnnzUQMW-DzWXEz5-.js} +4 -4
  40. package/dist/assets/{requirementDiagram-UZGBJVZJ-Ajt9-U96-CaUedp2k.js → requirementDiagram-UZGBJVZJ-BB9jagBx-q21wBQ9N.js} +1 -1
  41. package/dist/assets/{sankeyDiagram-TZEHDZUN-BNMEPupP-CoW39JHu.js → sankeyDiagram-TZEHDZUN-BttZx2-h-Cr53tHP7.js} +4 -4
  42. package/dist/assets/{sequenceDiagram-WL72ISMW-D2j881gi-CpM-9Ot5.js → sequenceDiagram-WL72ISMW-DA6yVs26-B4W8xwkp.js} +1 -1
  43. package/dist/assets/{stateDiagram-FKZM4ZOC-D9G5SS9f-DyhUPTNH.js → stateDiagram-FKZM4ZOC-BD8xEcbc-BWOiPxZu.js} +1 -1
  44. package/dist/assets/stateDiagram-v2-4FDKWEC3-DINzAoyF-DshiRv7Q.js +1 -0
  45. package/dist/assets/{timeline-definition-IT6M3QCI-B95452nE-BtUwy1tt.js → timeline-definition-IT6M3QCI-XN-D5T3b-l0nKzR1k.js} +1 -1
  46. package/dist/assets/{treemap-KMMF4GRG-Dfxm7cSf-Dp6bDrrM.js → treemap-KMMF4GRG-C4GHjB3F-_nPgBK22.js} +18 -18
  47. package/dist/assets/{xychartDiagram-PRI3JC2R-CZX71UOJ-DZlx6d4_.js → xychartDiagram-PRI3JC2R-BL53__6J-XcAq-Lxf.js} +4 -4
  48. package/dist/index.html +1 -1
  49. package/package.json +2 -2
  50. package/dist/assets/arc-CZCQSTaI-C-VU_J9B.js +0 -1
  51. package/dist/assets/channel-DkFrLL9m-oLu-Ehez.js +0 -1
  52. package/dist/assets/chunk-55IACEB6-_r7qMy9s-Dy635JXO.js +0 -1
  53. package/dist/assets/chunk-TZMSLE5B-CNFsEzOl-DVds0hZJ.js +0 -1
  54. package/dist/assets/classDiagram-2ON5EDUG-DnsiOvOV-O_0UXE1J.js +0 -1
  55. package/dist/assets/classDiagram-v2-WZHVMYZB-DnsiOvOV-O_0UXE1J.js +0 -1
  56. package/dist/assets/clone-DduvFCk3-BjQT37Sj.js +0 -1
  57. package/dist/assets/stateDiagram-v2-4FDKWEC3-D0cjqibA-Db7olDTG.js +0 -1
@@ -1,4 +1,4 @@
1
- import{bS as Lc,aE as bc,bj as ga,bI as ya,_ as ft,bk as D,aJ as te,br as Il,bJ as Sl,bM as Cl,aK as Ta,aL as _c,bi as kt,bT as Oc,bF as Pc,aO as Mc,aM as Dc,bt as Fc}from"./index-Dwfg9sR1.js";import{O as Nl,e as Uc,V as Gc,$ as C,S as qe,E as z,z as wl,b as Kc,f as Bc,L as Kt,d as Ot,J as q,I as le,T as Vc,g as jc,_ as Ae,Y as Gs,P as Ll,h as Hc,j as Wc}from"./_baseUniq-DRc_T5HB-BsnuNSgv.js";import{g as N,f as Ne,b as k,Y as Ks,o as zc,u as Pt,d as Bs,h as Mt,m as Yc}from"./_basePickBy-BjEly54R-XZ-uT-Uj.js";import{a as ne}from"./clone-DduvFCk3-BjQT37Sj.js";var qc=Object.defineProperty,Xc=(r,e,t)=>e in r?qc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ht=(r,e,t)=>Xc(r,typeof e!="symbol"?e+"":e,t),Qc=Object.prototype,Jc=Qc.hasOwnProperty,ke=Lc(function(r,e){if(Oc(e)||Il(e)){Pc(e,Ot(e),r);return}for(var t in e)Jc.call(e,t)&&Mc(r,t,e[t])});function bl(r,e,t){var n=-1,i=r.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++n<i;)s[n]=r[n+e];return s}function Mr(r){for(var e=-1,t=r==null?0:r.length,n=0,i=[];++e<t;){var s=r[e];s&&(i[n++]=s)}return i}function Zc(r,e,t,n){for(var i=-1,s=r==null?0:r.length;++i<s;){var a=r[i];e(n,a,t(a),r)}return n}function ed(r,e,t,n){return Gs(r,function(i,s,a){e(n,i,t(i),a)}),n}function td(r,e){return function(t,n){var i=te(t)?Zc:ed,s={};return i(t,r,Kt(n),s)}}var rd=200;function nd(r,e,t,n){var i=-1,s=Gc,a=!0,o=r.length,l=[],u=e.length;if(!o)return l;e.length>=rd&&(s=Wc,a=!1,e=new Uc(e));e:for(;++i<o;){var c=r[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var f=u;f--;)if(e[f]===d)continue e;l.push(c)}else s(e,d,n)||l.push(c)}return l}var Qn=bc(function(r,e){return ga(r)?nd(r,Nl(e,1,ga,!0)):[]});function J(r,e,t){var n=r==null?0:r.length;return n?(e=e===void 0?1:Ks(e),bl(r,e<0?0:e,n)):[]}function br(r,e,t){var n=r==null?0:r.length;return n?(e=e===void 0?1:Ks(e),e=n-e,bl(r,0,e<0?0:e)):[]}function id(r,e){for(var t=-1,n=r==null?0:r.length;++t<n;)if(!e(r[t],t,r))return!1;return!0}function sd(r,e){var t=!0;return Gs(r,function(n,i,s){return t=!!e(n,i,s),t}),t}function Oe(r,e,t){var n=te(r)?id:sd;return n(r,Kt(e))}function Pe(r){return r&&r.length?r[0]:void 0}function Ee(r,e){return Nl(k(r,e))}var ad=Object.prototype,od=ad.hasOwnProperty,ld=td(function(r,e,t){od.call(r,t)?r[t].push(e):Dc(r,t,[e])}),ud="[object String]";function he(r){return typeof r=="string"||!te(r)&&Sl(r)&&Cl(r)==ud}var cd=Math.max;function de(r,e,t,n){r=Il(r)?r:z(r),t=t?Ks(t):0;var i=r.length;return t<0&&(t=cd(i+t,0)),he(r)?t<=i&&r.indexOf(e,t)>-1:!!i&&wl(r,e,t)>-1}function va(r,e,t){var n=r==null?0:r.length;if(!n)return-1;var i=0;return wl(r,e,i)}var dd="[object RegExp]";function fd(r){return Sl(r)&&Cl(r)==dd}var Ra=ya&&ya.isRegExp,Xe=Ra?_c(Ra):fd,hd="Expected a function";function pd(r){if(typeof r!="function")throw new TypeError(hd);return function(){var e=arguments;switch(e.length){case 0:return!r.call(this);case 1:return!r.call(this,e[0]);case 2:return!r.call(this,e[0],e[1]);case 3:return!r.call(this,e[0],e[1],e[2])}return!r.apply(this,e)}}function Me(r,e){if(r==null)return{};var t=Kc(Bc(r),function(n){return[n]});return e=Kt(e),zc(r,t,function(n,i){return e(n,i[0])})}function Jn(r,e){var t=te(r)?Vc:jc;return t(r,pd(Kt(e)))}function md(r,e){var t;return Gs(r,function(n,i,s){return t=e(n,i,s),!t}),!!t}function _l(r,e,t){var n=te(r)?Hc:md;return n(r,Kt(e))}function Vs(r){return r&&r.length?Ll(r):[]}function gd(r,e){return r&&r.length?Ll(r,Kt(e)):[]}function ae(r){return typeof r=="object"&&r!==null&&typeof r.$type=="string"}function Ge(r){return typeof r=="object"&&r!==null&&typeof r.$refText=="string"}function yd(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}function hn(r){return typeof r=="object"&&r!==null&&ae(r.container)&&Ge(r.reference)&&typeof r.message=="string"}class Ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const i=n[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return n[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const n=this.getAllTypes(),i=[];for(const s of n)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function _r(r){return typeof r=="object"&&r!==null&&Array.isArray(r.content)}function Pl(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}function Ml(r){return _r(r)&&typeof r.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let 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){const n=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let n;if(!t.firstDone){do if(n=this.nextFn(t.first),!n.done)return n;while(!n.done);t.firstDone=!0}do if(n=t.iterator.next(),!n.done)return n;while(!n.done);return Re})}join(e=","){const t=this.iterator();let n="",i,s=!1;do i=t.next(),i.done||(s&&(n+=e),n+=Td(i.value)),s=!0;while(!i.done);return n}indexOf(e,t=0){const n=this.iterator();let i=0,s=n.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=n.next(),i++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,i=t.next();for(;!i.done;)e(i.value,n),i=t.next(),n++}map(e){return new Z(this.startFn,t=>{const{done:n,value:i}=this.nextFn(t);return n?Re:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let n;do if(n=this.nextFn(t),!n.done&&e(n.value))return n;while(!n.done);return Re})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const n=this.iterator();let i=t,s=n.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=n.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const i=e.next();if(i.done)return n;const s=this.recursiveReduce(e,t,n);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,i=t.next();for(;!i.done;){if(e(i.value))return n;i=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:n,value:i}=this.nextFn(t.this);if(!n){const s=e(i);if(Cn(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Re})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),n=>{do{if(n.iterator){const a=n.iterator.next();if(a.done)n.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(n.this);if(!i)if(Cn(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(n.iterator);return Re})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Re:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do if(n=this.nextFn(t.internalState),!n.done){const i=e?e(n.value):n.value;if(!t.set.has(i))return t.set.add(i),n}while(!n.done);return Re})}exclude(e,t){const n=new Set;for(const i of e){const s=t?t(i):i;n.add(s)}return this.filter(i=>{const s=t?t(i):i;return!n.has(s)})}}function Td(r){return typeof r=="string"?r:typeof r>"u"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}function Cn(r){return!!r&&typeof r[Symbol.iterator]=="function"}const vd=new Z(()=>{},()=>Re),Re=Object.freeze({done:!0,value:void 0});function ee(...r){if(r.length===1){const e=r[0];if(e instanceof Z)return e;if(Cn(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Re)}return r.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<r.length){const t=r[e.collIndex++];Cn(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<r.length);return Re}):vd}class js extends Z{constructor(e,t,n){super(()=>({iterators:n!=null&&n.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(t(s.value)[Symbol.iterator]()),s}return Re})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(r){function e(s){return s.reduce((a,o)=>a+o,0)}r.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}r.product=t;function n(s){return s.reduce((a,o)=>Math.min(a,o))}r.min=n;function i(s){return s.reduce((a,o)=>Math.max(a,o))}r.max=i})(is||(is={}));function ss(r){return new js(r,e=>_r(e)?e.content:[],{includeRoot:!0})}function Rd(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}function as(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}function Nn(r){if(!r)return;const{offset:e,end:t,range:n}=r;return{range:n,offset:e,end:t,length:t-e}}var We;(function(r){r[r.Before=0]="Before",r[r.After=1]="After",r[r.OverlapFront=2]="OverlapFront",r[r.OverlapBack=3]="OverlapBack",r[r.Inside=4]="Inside",r[r.Outside=5]="Outside"})(We||(We={}));function $d(r,e){if(r.end.line<e.start.line||r.end.line===e.start.line&&r.end.character<=e.start.character)return We.Before;if(r.start.line>e.end.line||r.start.line===e.end.line&&r.start.character>=e.end.character)return We.After;const t=r.start.line>e.start.line||r.start.line===e.start.line&&r.start.character>=e.start.character,n=r.end.line<e.end.line||r.end.line===e.end.line&&r.end.character<=e.end.character;return t&&n?We.Inside:t?We.OverlapBack:n?We.OverlapFront:We.Outside}function Ed(r,e){return $d(r,e)>We.After}const kd=/^[\w\p{L}]$/u;function Ad(r,e){if(r){const t=xd(r,!0);if(t&&$a(t,e))return t;if(Ml(r)){const n=r.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){const s=r.content[i];if($a(s,e))return s}}}}function $a(r,e){return Pl(r)&&e.includes(r.tokenType.name)}function xd(r,e=!0){for(;r.container;){const t=r.container;let n=t.content.indexOf(r);for(;n>0;){n--;const i=t.content[n];if(e||!i.hidden)return i}r=t}}class Dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Dr(r){throw new Error("Error! The input value was not handled.")}const jr="AbstractRule",Hr="AbstractType",pi="Condition",Ea="TypeDefinition",mi="ValueLiteral",qt="AbstractElement";function Id(r){return M.isInstance(r,qt)}const Wr="ArrayLiteral",zr="ArrayType",Xt="BooleanLiteral";function Sd(r){return M.isInstance(r,Xt)}const Qt="Conjunction";function Cd(r){return M.isInstance(r,Qt)}const Jt="Disjunction";function Nd(r){return M.isInstance(r,Jt)}const Yr="Grammar",gi="GrammarImport",Zt="InferredType";function Fl(r){return M.isInstance(r,Zt)}const er="Interface";function Ul(r){return M.isInstance(r,er)}const yi="NamedArgument",tr="Negation";function wd(r){return M.isInstance(r,tr)}const qr="NumberLiteral",Xr="Parameter",rr="ParameterReference";function Ld(r){return M.isInstance(r,rr)}const nr="ParserRule";function we(r){return M.isInstance(r,nr)}const Qr="ReferenceType",pn="ReturnType";function bd(r){return M.isInstance(r,pn)}const ir="SimpleType";function _d(r){return M.isInstance(r,ir)}const Jr="StringLiteral",wt="TerminalRule";function At(r){return M.isInstance(r,wt)}const sr="Type";function Gl(r){return M.isInstance(r,sr)}const Ti="TypeAttribute",Zr="UnionType",ar="Action";function Zn(r){return M.isInstance(r,ar)}const or="Alternatives";function Kl(r){return M.isInstance(r,or)}const lr="Assignment";function yt(r){return M.isInstance(r,lr)}const ur="CharacterRange";function Od(r){return M.isInstance(r,ur)}const cr="CrossReference";function Hs(r){return M.isInstance(r,cr)}const dr="EndOfFile";function Pd(r){return M.isInstance(r,dr)}const fr="Group";function Ws(r){return M.isInstance(r,fr)}const hr="Keyword";function Tt(r){return M.isInstance(r,hr)}const pr="NegatedToken";function Md(r){return M.isInstance(r,pr)}const mr="RegexToken";function Dd(r){return M.isInstance(r,mr)}const gr="RuleCall";function vt(r){return M.isInstance(r,gr)}const yr="TerminalAlternatives";function Fd(r){return M.isInstance(r,yr)}const Tr="TerminalGroup";function Ud(r){return M.isInstance(r,Tr)}const vr="TerminalRuleCall";function Gd(r){return M.isInstance(r,vr)}const Rr="UnorderedGroup";function Bl(r){return M.isInstance(r,Rr)}const $r="UntilToken";function Kd(r){return M.isInstance(r,$r)}const Er="Wildcard";function Bd(r){return M.isInstance(r,Er)}class Vl extends Ol{getAllTypes(){return[qt,jr,Hr,ar,or,Wr,zr,lr,Xt,ur,pi,Qt,cr,Jt,dr,Yr,gi,fr,Zt,er,hr,yi,pr,tr,qr,Xr,rr,nr,Qr,mr,pn,gr,ir,Jr,yr,Tr,wt,vr,sr,Ti,Ea,Zr,Rr,$r,mi,Er]}computeIsSubtype(e,t){switch(e){case ar:case or:case lr:case ur:case cr:case dr:case fr:case hr:case pr:case mr:case gr:case yr:case Tr:case vr:case Rr:case $r:case Er:return this.isSubtype(qt,t);case Wr:case qr:case Jr:return this.isSubtype(mi,t);case zr:case Qr:case ir:case Zr:return this.isSubtype(Ea,t);case Xt:return this.isSubtype(pi,t)||this.isSubtype(mi,t);case Qt:case Jt:case tr:case rr:return this.isSubtype(pi,t);case Zt:case er:case sr:return this.isSubtype(Hr,t);case nr:return this.isSubtype(jr,t)||this.isSubtype(Hr,t);case wt:return this.isSubtype(jr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Hr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return jr;case"Grammar:usedGrammars":return Yr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Xr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case qt:return{name:qt,properties:[{name:"cardinality"},{name:"lookahead"}]};case Wr:return{name:Wr,properties:[{name:"elements",defaultValue:[]}]};case zr:return{name:zr,properties:[{name:"elementType"}]};case Xt:return{name:Xt,properties:[{name:"true",defaultValue:!1}]};case Qt:return{name:Qt,properties:[{name:"left"},{name:"right"}]};case Jt:return{name:Jt,properties:[{name:"left"},{name:"right"}]};case Yr:return{name:Yr,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 gi:return{name:gi,properties:[{name:"path"}]};case Zt:return{name:Zt,properties:[{name:"name"}]};case er:return{name:er,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case yi:return{name:yi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case tr:return{name:tr,properties:[{name:"value"}]};case qr:return{name:qr,properties:[{name:"value"}]};case Xr:return{name:Xr,properties:[{name:"name"}]};case rr:return{name:rr,properties:[{name:"parameter"}]};case nr:return{name:nr,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 Qr:return{name:Qr,properties:[{name:"referenceType"}]};case pn:return{name:pn,properties:[{name:"name"}]};case ir:return{name:ir,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Jr:return{name:Jr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case sr:return{name:sr,properties:[{name:"name"},{name:"type"}]};case Ti:return{name:Ti,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Zr:return{name:Zr,properties:[{name:"types",defaultValue:[]}]};case ar:return{name:ar,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case or:return{name:or,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case lr:return{name:lr,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case ur:return{name:ur,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case cr:return{name:cr,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case dr:return{name:dr,properties:[{name:"cardinality"},{name:"lookahead"}]};case fr:return{name:fr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case hr:return{name:hr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case pr:return{name:pr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case mr:return{name:mr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case gr:return{name:gr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case yr:return{name:yr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Tr:return{name:Tr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case vr:return{name:vr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Rr:return{name:Rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $r:return{name:$r,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Er:return{name:Er,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Vl;function Vd(r){for(const[e,t]of Object.entries(r))e.startsWith("$")||(Array.isArray(t)?t.forEach((n,i)=>{ae(n)&&(n.$container=r,n.$containerProperty=e,n.$containerIndex=i)}):ae(t)&&(t.$container=r,t.$containerProperty=e))}function ei(r,e){let t=r;for(;t;){if(e(t))return t;t=t.$container}}function Ze(r){const e=os(r).$document;if(!e)throw new Error("AST node has no document.");return e}function os(r){for(;r.$container;)r=r.$container;return r}function zs(r,e){if(!r)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){const i=n.keys[n.keyIndex];if(!i.startsWith("$")){const s=r[i];if(ae(s)){if(n.keyIndex++,ka(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;n.arrayIndex<s.length;){const a=n.arrayIndex++,o=s[a];if(ae(o)&&ka(o,t))return{done:!1,value:o}}n.arrayIndex=0}}n.keyIndex++}return Re})}function Fr(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new js(r,t=>zs(t,e))}function bt(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new js(r,t=>zs(t,e),{includeRoot:!0})}function ka(r,e){var t;if(!e)return!0;const n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?Ed(n,e):!1}function jl(r){return new Z(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const n=r[t];if(Ge(n))return e.keyIndex++,{done:!1,value:{reference:n,container:r,property:t}};if(Array.isArray(n)){for(;e.arrayIndex<n.length;){const i=e.arrayIndex++,s=n[i];if(Ge(s))return{done:!1,value:{reference:s,container:r,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Re})}function jd(r,e){const t=r.getTypeMetaData(e.$type),n=e;for(const i of t.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Hl(i.defaultValue))}function Hl(r){return Array.isArray(r)?[...r.map(Hl)]:r}function w(r){return r.charCodeAt(0)}function vi(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}function Wt(r,e){if(r[e]===!0)throw"duplicate flag "+e;r[e],r[e]=!0}function Nt(r){if(r===void 0)throw Error("Internal Error - Should never get here!");return!0}function Hd(){throw Error("Internal Error - Should never get here!")}function Aa(r){return r.type==="Character"}const wn=[];for(let r=w("0");r<=w("9");r++)wn.push(r);const Ln=[w("_")].concat(wn);for(let r=w("a");r<=w("z");r++)Ln.push(r);for(let r=w("A");r<=w("Z");r++)Ln.push(r);const xa=[w(" "),w("\f"),w(`
1
+ import{bS as Lc,aE as bc,bj as ga,bI as ya,_ as ft,bk as D,aJ as te,br as Il,bJ as Sl,bM as Cl,aK as Ta,aL as _c,bi as kt,bT as Oc,bF as Pc,aO as Mc,aM as Dc,bt as Fc}from"./index-p0knuDQ9.js";import{O as Nl,e as Uc,V as Gc,$ as C,S as qe,E as z,z as wl,b as Bc,f as Kc,L as Bt,d as Ot,J as q,I as le,T as Vc,g as jc,_ as Ae,Y as Gs,P as Ll,h as Hc,j as Wc}from"./_baseUniq-Cd4llU-Q-Cdw60MU4.js";import{g as N,f as Ne,b as k,Y as Bs,o as zc,u as Pt,d as Ks,h as Mt,m as Yc}from"./_basePickBy-1MakYQmz-ydNwd1l_.js";import{a as ne}from"./clone-DH1Kq5Y6-DxQT_fR1.js";var qc=Object.defineProperty,Xc=(r,e,t)=>e in r?qc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ht=(r,e,t)=>Xc(r,typeof e!="symbol"?e+"":e,t),Qc=Object.prototype,Jc=Qc.hasOwnProperty,ke=Lc(function(r,e){if(Oc(e)||Il(e)){Pc(e,Ot(e),r);return}for(var t in e)Jc.call(e,t)&&Mc(r,t,e[t])});function bl(r,e,t){var n=-1,i=r.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++n<i;)s[n]=r[n+e];return s}function Mr(r){for(var e=-1,t=r==null?0:r.length,n=0,i=[];++e<t;){var s=r[e];s&&(i[n++]=s)}return i}function Zc(r,e,t,n){for(var i=-1,s=r==null?0:r.length;++i<s;){var a=r[i];e(n,a,t(a),r)}return n}function ed(r,e,t,n){return Gs(r,function(i,s,a){e(n,i,t(i),a)}),n}function td(r,e){return function(t,n){var i=te(t)?Zc:ed,s={};return i(t,r,Bt(n),s)}}var rd=200;function nd(r,e,t,n){var i=-1,s=Gc,a=!0,o=r.length,l=[],u=e.length;if(!o)return l;e.length>=rd&&(s=Wc,a=!1,e=new Uc(e));e:for(;++i<o;){var c=r[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var f=u;f--;)if(e[f]===d)continue e;l.push(c)}else s(e,d,n)||l.push(c)}return l}var Qn=bc(function(r,e){return ga(r)?nd(r,Nl(e,1,ga,!0)):[]});function J(r,e,t){var n=r==null?0:r.length;return n?(e=e===void 0?1:Bs(e),bl(r,e<0?0:e,n)):[]}function br(r,e,t){var n=r==null?0:r.length;return n?(e=e===void 0?1:Bs(e),e=n-e,bl(r,0,e<0?0:e)):[]}function id(r,e){for(var t=-1,n=r==null?0:r.length;++t<n;)if(!e(r[t],t,r))return!1;return!0}function sd(r,e){var t=!0;return Gs(r,function(n,i,s){return t=!!e(n,i,s),t}),t}function Oe(r,e,t){var n=te(r)?id:sd;return n(r,Bt(e))}function Pe(r){return r&&r.length?r[0]:void 0}function Ee(r,e){return Nl(k(r,e))}var ad=Object.prototype,od=ad.hasOwnProperty,ld=td(function(r,e,t){od.call(r,t)?r[t].push(e):Dc(r,t,[e])}),ud="[object String]";function he(r){return typeof r=="string"||!te(r)&&Sl(r)&&Cl(r)==ud}var cd=Math.max;function de(r,e,t,n){r=Il(r)?r:z(r),t=t?Bs(t):0;var i=r.length;return t<0&&(t=cd(i+t,0)),he(r)?t<=i&&r.indexOf(e,t)>-1:!!i&&wl(r,e,t)>-1}function va(r,e,t){var n=r==null?0:r.length;if(!n)return-1;var i=0;return wl(r,e,i)}var dd="[object RegExp]";function fd(r){return Sl(r)&&Cl(r)==dd}var Ra=ya&&ya.isRegExp,Xe=Ra?_c(Ra):fd,hd="Expected a function";function pd(r){if(typeof r!="function")throw new TypeError(hd);return function(){var e=arguments;switch(e.length){case 0:return!r.call(this);case 1:return!r.call(this,e[0]);case 2:return!r.call(this,e[0],e[1]);case 3:return!r.call(this,e[0],e[1],e[2])}return!r.apply(this,e)}}function Me(r,e){if(r==null)return{};var t=Bc(Kc(r),function(n){return[n]});return e=Bt(e),zc(r,t,function(n,i){return e(n,i[0])})}function Jn(r,e){var t=te(r)?Vc:jc;return t(r,pd(Bt(e)))}function md(r,e){var t;return Gs(r,function(n,i,s){return t=e(n,i,s),!t}),!!t}function _l(r,e,t){var n=te(r)?Hc:md;return n(r,Bt(e))}function Vs(r){return r&&r.length?Ll(r):[]}function gd(r,e){return r&&r.length?Ll(r,Bt(e)):[]}function ae(r){return typeof r=="object"&&r!==null&&typeof r.$type=="string"}function Ge(r){return typeof r=="object"&&r!==null&&typeof r.$refText=="string"}function yd(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}function hn(r){return typeof r=="object"&&r!==null&&ae(r.container)&&Ge(r.reference)&&typeof r.message=="string"}class Ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const i=n[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return n[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const n=this.getAllTypes(),i=[];for(const s of n)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function _r(r){return typeof r=="object"&&r!==null&&Array.isArray(r.content)}function Pl(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}function Ml(r){return _r(r)&&typeof r.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let 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){const n=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let n;if(!t.firstDone){do if(n=this.nextFn(t.first),!n.done)return n;while(!n.done);t.firstDone=!0}do if(n=t.iterator.next(),!n.done)return n;while(!n.done);return Re})}join(e=","){const t=this.iterator();let n="",i,s=!1;do i=t.next(),i.done||(s&&(n+=e),n+=Td(i.value)),s=!0;while(!i.done);return n}indexOf(e,t=0){const n=this.iterator();let i=0,s=n.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=n.next(),i++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,i=t.next();for(;!i.done;)e(i.value,n),i=t.next(),n++}map(e){return new Z(this.startFn,t=>{const{done:n,value:i}=this.nextFn(t);return n?Re:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let n;do if(n=this.nextFn(t),!n.done&&e(n.value))return n;while(!n.done);return Re})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const n=this.iterator();let i=t,s=n.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=n.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const i=e.next();if(i.done)return n;const s=this.recursiveReduce(e,t,n);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,i=t.next();for(;!i.done;){if(e(i.value))return n;i=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:n,value:i}=this.nextFn(t.this);if(!n){const s=e(i);if(Cn(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Re})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),n=>{do{if(n.iterator){const a=n.iterator.next();if(a.done)n.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(n.this);if(!i)if(Cn(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(n.iterator);return Re})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Re:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do if(n=this.nextFn(t.internalState),!n.done){const i=e?e(n.value):n.value;if(!t.set.has(i))return t.set.add(i),n}while(!n.done);return Re})}exclude(e,t){const n=new Set;for(const i of e){const s=t?t(i):i;n.add(s)}return this.filter(i=>{const s=t?t(i):i;return!n.has(s)})}}function Td(r){return typeof r=="string"?r:typeof r>"u"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}function Cn(r){return!!r&&typeof r[Symbol.iterator]=="function"}const vd=new Z(()=>{},()=>Re),Re=Object.freeze({done:!0,value:void 0});function ee(...r){if(r.length===1){const e=r[0];if(e instanceof Z)return e;if(Cn(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Re)}return r.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<r.length){const t=r[e.collIndex++];Cn(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<r.length);return Re}):vd}class js extends Z{constructor(e,t,n){super(()=>({iterators:n!=null&&n.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(t(s.value)[Symbol.iterator]()),s}return Re})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(r){function e(s){return s.reduce((a,o)=>a+o,0)}r.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}r.product=t;function n(s){return s.reduce((a,o)=>Math.min(a,o))}r.min=n;function i(s){return s.reduce((a,o)=>Math.max(a,o))}r.max=i})(is||(is={}));function ss(r){return new js(r,e=>_r(e)?e.content:[],{includeRoot:!0})}function Rd(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}function as(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}function Nn(r){if(!r)return;const{offset:e,end:t,range:n}=r;return{range:n,offset:e,end:t,length:t-e}}var We;(function(r){r[r.Before=0]="Before",r[r.After=1]="After",r[r.OverlapFront=2]="OverlapFront",r[r.OverlapBack=3]="OverlapBack",r[r.Inside=4]="Inside",r[r.Outside=5]="Outside"})(We||(We={}));function $d(r,e){if(r.end.line<e.start.line||r.end.line===e.start.line&&r.end.character<=e.start.character)return We.Before;if(r.start.line>e.end.line||r.start.line===e.end.line&&r.start.character>=e.end.character)return We.After;const t=r.start.line>e.start.line||r.start.line===e.start.line&&r.start.character>=e.start.character,n=r.end.line<e.end.line||r.end.line===e.end.line&&r.end.character<=e.end.character;return t&&n?We.Inside:t?We.OverlapBack:n?We.OverlapFront:We.Outside}function Ed(r,e){return $d(r,e)>We.After}const kd=/^[\w\p{L}]$/u;function Ad(r,e){if(r){const t=xd(r,!0);if(t&&$a(t,e))return t;if(Ml(r)){const n=r.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){const s=r.content[i];if($a(s,e))return s}}}}function $a(r,e){return Pl(r)&&e.includes(r.tokenType.name)}function xd(r,e=!0){for(;r.container;){const t=r.container;let n=t.content.indexOf(r);for(;n>0;){n--;const i=t.content[n];if(e||!i.hidden)return i}r=t}}class Dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Dr(r){throw new Error("Error! The input value was not handled.")}const jr="AbstractRule",Hr="AbstractType",pi="Condition",Ea="TypeDefinition",mi="ValueLiteral",qt="AbstractElement";function Id(r){return M.isInstance(r,qt)}const Wr="ArrayLiteral",zr="ArrayType",Xt="BooleanLiteral";function Sd(r){return M.isInstance(r,Xt)}const Qt="Conjunction";function Cd(r){return M.isInstance(r,Qt)}const Jt="Disjunction";function Nd(r){return M.isInstance(r,Jt)}const Yr="Grammar",gi="GrammarImport",Zt="InferredType";function Fl(r){return M.isInstance(r,Zt)}const er="Interface";function Ul(r){return M.isInstance(r,er)}const yi="NamedArgument",tr="Negation";function wd(r){return M.isInstance(r,tr)}const qr="NumberLiteral",Xr="Parameter",rr="ParameterReference";function Ld(r){return M.isInstance(r,rr)}const nr="ParserRule";function we(r){return M.isInstance(r,nr)}const Qr="ReferenceType",pn="ReturnType";function bd(r){return M.isInstance(r,pn)}const ir="SimpleType";function _d(r){return M.isInstance(r,ir)}const Jr="StringLiteral",wt="TerminalRule";function At(r){return M.isInstance(r,wt)}const sr="Type";function Gl(r){return M.isInstance(r,sr)}const Ti="TypeAttribute",Zr="UnionType",ar="Action";function Zn(r){return M.isInstance(r,ar)}const or="Alternatives";function Bl(r){return M.isInstance(r,or)}const lr="Assignment";function yt(r){return M.isInstance(r,lr)}const ur="CharacterRange";function Od(r){return M.isInstance(r,ur)}const cr="CrossReference";function Hs(r){return M.isInstance(r,cr)}const dr="EndOfFile";function Pd(r){return M.isInstance(r,dr)}const fr="Group";function Ws(r){return M.isInstance(r,fr)}const hr="Keyword";function Tt(r){return M.isInstance(r,hr)}const pr="NegatedToken";function Md(r){return M.isInstance(r,pr)}const mr="RegexToken";function Dd(r){return M.isInstance(r,mr)}const gr="RuleCall";function vt(r){return M.isInstance(r,gr)}const yr="TerminalAlternatives";function Fd(r){return M.isInstance(r,yr)}const Tr="TerminalGroup";function Ud(r){return M.isInstance(r,Tr)}const vr="TerminalRuleCall";function Gd(r){return M.isInstance(r,vr)}const Rr="UnorderedGroup";function Kl(r){return M.isInstance(r,Rr)}const $r="UntilToken";function Bd(r){return M.isInstance(r,$r)}const Er="Wildcard";function Kd(r){return M.isInstance(r,Er)}class Vl extends Ol{getAllTypes(){return[qt,jr,Hr,ar,or,Wr,zr,lr,Xt,ur,pi,Qt,cr,Jt,dr,Yr,gi,fr,Zt,er,hr,yi,pr,tr,qr,Xr,rr,nr,Qr,mr,pn,gr,ir,Jr,yr,Tr,wt,vr,sr,Ti,Ea,Zr,Rr,$r,mi,Er]}computeIsSubtype(e,t){switch(e){case ar:case or:case lr:case ur:case cr:case dr:case fr:case hr:case pr:case mr:case gr:case yr:case Tr:case vr:case Rr:case $r:case Er:return this.isSubtype(qt,t);case Wr:case qr:case Jr:return this.isSubtype(mi,t);case zr:case Qr:case ir:case Zr:return this.isSubtype(Ea,t);case Xt:return this.isSubtype(pi,t)||this.isSubtype(mi,t);case Qt:case Jt:case tr:case rr:return this.isSubtype(pi,t);case Zt:case er:case sr:return this.isSubtype(Hr,t);case nr:return this.isSubtype(jr,t)||this.isSubtype(Hr,t);case wt:return this.isSubtype(jr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Hr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return jr;case"Grammar:usedGrammars":return Yr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Xr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case qt:return{name:qt,properties:[{name:"cardinality"},{name:"lookahead"}]};case Wr:return{name:Wr,properties:[{name:"elements",defaultValue:[]}]};case zr:return{name:zr,properties:[{name:"elementType"}]};case Xt:return{name:Xt,properties:[{name:"true",defaultValue:!1}]};case Qt:return{name:Qt,properties:[{name:"left"},{name:"right"}]};case Jt:return{name:Jt,properties:[{name:"left"},{name:"right"}]};case Yr:return{name:Yr,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 gi:return{name:gi,properties:[{name:"path"}]};case Zt:return{name:Zt,properties:[{name:"name"}]};case er:return{name:er,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case yi:return{name:yi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case tr:return{name:tr,properties:[{name:"value"}]};case qr:return{name:qr,properties:[{name:"value"}]};case Xr:return{name:Xr,properties:[{name:"name"}]};case rr:return{name:rr,properties:[{name:"parameter"}]};case nr:return{name:nr,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 Qr:return{name:Qr,properties:[{name:"referenceType"}]};case pn:return{name:pn,properties:[{name:"name"}]};case ir:return{name:ir,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Jr:return{name:Jr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case sr:return{name:sr,properties:[{name:"name"},{name:"type"}]};case Ti:return{name:Ti,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Zr:return{name:Zr,properties:[{name:"types",defaultValue:[]}]};case ar:return{name:ar,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case or:return{name:or,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case lr:return{name:lr,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case ur:return{name:ur,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case cr:return{name:cr,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case dr:return{name:dr,properties:[{name:"cardinality"},{name:"lookahead"}]};case fr:return{name:fr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case hr:return{name:hr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case pr:return{name:pr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case mr:return{name:mr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case gr:return{name:gr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case yr:return{name:yr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Tr:return{name:Tr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case vr:return{name:vr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Rr:return{name:Rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $r:return{name:$r,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Er:return{name:Er,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Vl;function Vd(r){for(const[e,t]of Object.entries(r))e.startsWith("$")||(Array.isArray(t)?t.forEach((n,i)=>{ae(n)&&(n.$container=r,n.$containerProperty=e,n.$containerIndex=i)}):ae(t)&&(t.$container=r,t.$containerProperty=e))}function ei(r,e){let t=r;for(;t;){if(e(t))return t;t=t.$container}}function Ze(r){const e=os(r).$document;if(!e)throw new Error("AST node has no document.");return e}function os(r){for(;r.$container;)r=r.$container;return r}function zs(r,e){if(!r)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){const i=n.keys[n.keyIndex];if(!i.startsWith("$")){const s=r[i];if(ae(s)){if(n.keyIndex++,ka(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;n.arrayIndex<s.length;){const a=n.arrayIndex++,o=s[a];if(ae(o)&&ka(o,t))return{done:!1,value:o}}n.arrayIndex=0}}n.keyIndex++}return Re})}function Fr(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new js(r,t=>zs(t,e))}function bt(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new js(r,t=>zs(t,e),{includeRoot:!0})}function ka(r,e){var t;if(!e)return!0;const n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?Ed(n,e):!1}function jl(r){return new Z(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const n=r[t];if(Ge(n))return e.keyIndex++,{done:!1,value:{reference:n,container:r,property:t}};if(Array.isArray(n)){for(;e.arrayIndex<n.length;){const i=e.arrayIndex++,s=n[i];if(Ge(s))return{done:!1,value:{reference:s,container:r,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Re})}function jd(r,e){const t=r.getTypeMetaData(e.$type),n=e;for(const i of t.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Hl(i.defaultValue))}function Hl(r){return Array.isArray(r)?[...r.map(Hl)]:r}function w(r){return r.charCodeAt(0)}function vi(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}function Wt(r,e){if(r[e]===!0)throw"duplicate flag "+e;r[e],r[e]=!0}function Nt(r){if(r===void 0)throw Error("Internal Error - Should never get here!");return!0}function Hd(){throw Error("Internal Error - Should never get here!")}function Aa(r){return r.type==="Character"}const wn=[];for(let r=w("0");r<=w("9");r++)wn.push(r);const Ln=[w("_")].concat(wn);for(let r=w("a");r<=w("z");r++)Ln.push(r);for(let r=w("A");r<=w("Z");r++)Ln.push(r);const xa=[w(" "),w("\f"),w(`
2
2
  `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],Wd=/[0-9a-fA-F]/,en=/[0-9]/,zd=/[1-9]/;class Wl{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const 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":Wt(n,"global");break;case"i":Wt(n,"ignoreCase");break;case"m":Wt(n,"multiLine");break;case"u":Wt(n,"unicode");break;case"y":Wt(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(){const 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(){const 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(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Nt(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return Hd()}quantifier(e=!1){let t;const 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"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Nt(t);break}if(!(e===!0&&t===void 0)&&Nt(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;const 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}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Nt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
3
3
  `),w("\r"),w("\u2028"),w("\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=wn;break;case"D":e=wn,t=!0;break;case"s":e=xa;break;case"S":e=xa,t=!0;break;case"w":e=Ln;break;case"W":e=Ln,t=!0;break}if(Nt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
4
4
  `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Nt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
@@ -9,7 +9,7 @@ import{bS as Lc,aE as bc,bj as ga,bI as ya,_ as ft,bk as D,aJ as te,br as Il,bJ
9
9
  `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let n=0;n<e;n++){const i=this.popChar();if(Wd.test(i)===!1)throw Error("Expecting a HexDecimal digits");t+=i}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class ti{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const Yd=/\r?\n/gm,qd=new Wl;class Xd extends ti{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t===`
10
10
  `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const n=ri(t);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!`
11
11
  `.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const 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)}}const Ri=new Xd;function Qd(r){try{return typeof r=="string"&&(r=new RegExp(r)),r=r.toString(),Ri.reset(r),Ri.visit(qd.pattern(r)),Ri.multiline}catch{return!1}}const Jd=`\f
12
- \r \v              \u2028\u2029   \uFEFF`.split("");function ls(r){const e=typeof r=="string"?new RegExp(r):r;return Jd.some(t=>e.test(t))}function ri(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zd(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ri(e)).join("")}function ef(r,e){const t=tf(r),n=e.match(t);return!!n&&n[0].length>0}function tf(r){typeof r=="string"&&(r=new RegExp(r));const e=r,t=r.source;let n=0;function i(){let s="",a;function o(u){s+=t.substr(n,u),n+=u}function l(u){s+="(?:"+t.substr(n,u)+"|$)",n+=u}for(;n<t.length;)switch(t[n]){case"\\":switch(t[n+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[n+2]==="{"?l(t.indexOf("}",n)-n+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",n)-n+1):l(2);break;case"k":l(t.indexOf(">",n)-n+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=n,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=n,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[n+1]==="?")switch(t[n+2]){case":":s+="(?:",n+=3,s+=i()+"|$)";break;case"=":s+="(?=",n+=3,s+=i()+")";break;case"!":a=n,n+=3,i(),s+=t.substr(a,n-a);break;case"<":switch(t[n+3]){case"=":case"!":a=n,n+=4,i(),s+=t.substr(a,n-a);break;default:o(t.indexOf(">",n)-n+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++n,s;default:l(1);break}return s}return new RegExp(i(),r.flags)}function rf(r){return r.rules.find(e=>we(e)&&e.entry)}function nf(r){return r.rules.filter(e=>At(e)&&e.hidden)}function zl(r,e){const t=new Set,n=rf(r);if(!n)return new Set(r.rules);const i=[n].concat(nf(r));for(const a of i)Yl(a,t,e);const s=new Set;for(const a of r.rules)(t.has(a.name)||At(a)&&a.hidden)&&s.add(a);return s}function Yl(r,e,t){e.add(r.name),Fr(r).forEach(n=>{if(vt(n)||t){const i=n.rule.ref;i&&!e.has(i.name)&&Yl(i,e,t)}})}function sf(r){if(r.terminal)return r.terminal;if(r.type.ref){const e=Xl(r.type.ref);return e==null?void 0:e.terminal}}function af(r){return r.hidden&&!ls(Qs(r))}function of(r,e){return!r||!e?[]:Ys(r,e,r.astNode,!0)}function ql(r,e,t){if(!r||!e)return;const n=Ys(r,e,r.astNode,!0);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function Ys(r,e,t,n){if(!n){const i=ei(r.grammarSource,yt);if(i&&i.feature===e)return[r]}return _r(r)&&r.astNode===t?r.content.flatMap(i=>Ys(i,e,t,!1)):[]}function lf(r,e,t){if(!r)return;const n=uf(r,e,r==null?void 0:r.astNode);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function uf(r,e,t){if(r.astNode!==t)return[];if(Tt(r.grammarSource)&&r.grammarSource.value===e)return[r];const n=ss(r).iterator();let i;const s=[];do if(i=n.next(),!i.done){const a=i.value;a.astNode===t?Tt(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):n.prune()}while(!i.done);return s}function cf(r){var e;const t=r.astNode;for(;t===((e=r.container)===null||e===void 0?void 0:e.astNode);){const n=ei(r.grammarSource,yt);if(n)return n;r=r.container}}function Xl(r){let e=r;return Fl(e)&&(Zn(e.$container)?e=e.$container.$container:we(e.$container)?e=e.$container:Dr(e.$container)),Ql(r,e,new Map)}function Ql(r,e,t){var n;function i(s,a){let o;return ei(s,yt)||(o=Ql(a,a,t)),t.set(r,o),o}if(t.has(r))return t.get(r);t.set(r,void 0);for(const s of Fr(e)){if(yt(s)&&s.feature.toLowerCase()==="name")return t.set(r,s),s;if(vt(s)&&we(s.rule.ref))return i(s,s.rule.ref);if(_d(s)&&!((n=s.typeRef)===null||n===void 0)&&n.ref)return i(s,s.typeRef.ref)}}function Jl(r){return Zl(r,new Set)}function Zl(r,e){if(e.has(r))return!0;e.add(r);for(const t of Fr(r))if(vt(t)){if(!t.rule.ref||we(t.rule.ref)&&!Zl(t.rule.ref,e))return!1}else if(yt(t)||Zn(t))return!1;return!!r.definition}function qs(r){if(r.inferredType)return r.inferredType.name;if(r.dataType)return r.dataType;if(r.returnType){const e=r.returnType.ref;if(e&&(we(e)||Ul(e)||Gl(e)))return e.name}}function Xs(r){var e;if(we(r))return Jl(r)?r.name:(e=qs(r))!==null&&e!==void 0?e:r.name;if(Ul(r)||Gl(r)||bd(r))return r.name;if(Zn(r)){const t=df(r);if(t)return t}else if(Fl(r))return r.name;throw new Error("Cannot get name of Unknown Type")}function df(r){var e;if(r.inferredType)return r.inferredType.name;if(!((e=r.type)===null||e===void 0)&&e.ref)return Xs(r.type.ref)}function ff(r){var e,t,n;return At(r)?(t=(e=r.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(n=qs(r))!==null&&n!==void 0?n:r.name}function Qs(r){const e={s:!1,i:!1,u:!1},t=Bt(r.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,n)}const Js=/[\s\S]/.source;function Bt(r,e){if(Fd(r))return hf(r);if(Ud(r))return pf(r);if(Od(r))return yf(r);if(Gd(r)){const t=r.rule.ref;if(!t)throw new Error("Missing rule reference.");return Ye(Bt(t.definition),{cardinality:r.cardinality,lookahead:r.lookahead})}else{if(Md(r))return gf(r);if(Kd(r))return mf(r);if(Dd(r)){const t=r.regex.lastIndexOf("/"),n=r.regex.substring(1,t),i=r.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Ye(n,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}else{if(Bd(r))return Ye(Js,{cardinality:r.cardinality,lookahead:r.lookahead});throw new Error(`Invalid terminal element: ${r==null?void 0:r.$type}`)}}}function hf(r){return Ye(r.elements.map(e=>Bt(e)).join("|"),{cardinality:r.cardinality,lookahead:r.lookahead})}function pf(r){return Ye(r.elements.map(e=>Bt(e)).join(""),{cardinality:r.cardinality,lookahead:r.lookahead})}function mf(r){return Ye(`${Js}*?${Bt(r.terminal)}`,{cardinality:r.cardinality,lookahead:r.lookahead})}function gf(r){return Ye(`(?!${Bt(r.terminal)})${Js}*?`,{cardinality:r.cardinality,lookahead:r.lookahead})}function yf(r){return r.right?Ye(`[${$i(r.left)}-${$i(r.right)}]`,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1}):Ye($i(r.left),{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}function $i(r){return ri(r.value)}function Ye(r,e){var t;return(e.wrap!==!1||e.lookahead)&&(r=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${r})`),e.cardinality?`${r}${e.cardinality}`:r}function Tf(r){const e=[],t=r.Grammar;for(const n of t.rules)At(n)&&af(n)&&Qd(Qs(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:kd}}function us(r){console&&console.error&&console.error(`Error: ${r}`)}function eu(r){console&&console.warn&&console.warn(`Warning: ${r}`)}function tu(r){const e=new Date().getTime(),t=r();return{time:new Date().getTime()-e,value:t}}function ru(r){function e(){}e.prototype=r;const t=new e;function n(){return typeof t.bar}return n(),n(),r}function vf(r){return Rf(r)?r.LABEL:r.name}function Rf(r){return he(r.LABEL)&&r.LABEL!==""}class Ke{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),C(this.definition,t=>{t.accept(e)})}}class ue extends Ke{constructor(e){super([]),this.idx=1,ke(this,Me(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Vt extends Ke{constructor(e){super(e.definition),this.orgText="",ke(this,Me(e,t=>t!==void 0))}}class pe extends Ke{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,Me(e,t=>t!==void 0))}}let re=class extends Ke{constructor(r){super(r.definition),this.idx=1,ke(this,Me(r,e=>e!==void 0))}};class xe extends Ke{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class Ie extends Ke{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class j extends Ke{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class me extends Ke{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class ge extends Ke{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,ke(this,Me(e,t=>t!==void 0))}}class F{constructor(e){this.idx=1,ke(this,Me(e,t=>t!==void 0))}accept(e){e.visit(this)}}function $f(r){return k(r,mn)}function mn(r){function e(t){return k(t,mn)}if(r instanceof ue){const t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return he(r.label)&&(t.label=r.label),t}else{if(r instanceof pe)return{type:"Alternative",definition:e(r.definition)};if(r instanceof re)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xe)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Ie)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:mn(new F({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof me)return{type:"RepetitionWithSeparator",idx:r.idx,separator:mn(new F({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof j)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof ge)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof F){const t={type:"Terminal",name:r.terminalType.name,label:vf(r.terminalType),idx:r.idx};he(r.label)&&(t.terminalLabel=r.label);const n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(t.pattern=Xe(n)?n.source:n),t}else{if(r instanceof Vt)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}class jt{visit(e){const t=e;switch(t.constructor){case ue:return this.visitNonTerminal(t);case pe:return this.visitAlternative(t);case re:return this.visitOption(t);case xe:return this.visitRepetitionMandatory(t);case Ie:return this.visitRepetitionMandatoryWithSeparator(t);case me:return this.visitRepetitionWithSeparator(t);case j:return this.visitRepetition(t);case ge:return this.visitAlternation(t);case F:return this.visitTerminal(t);case Vt: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 Ef(r){return r instanceof pe||r instanceof re||r instanceof j||r instanceof xe||r instanceof Ie||r instanceof me||r instanceof F||r instanceof Vt}function bn(r,e=[]){return r instanceof re||r instanceof j||r instanceof me?!0:r instanceof ge?_l(r.definition,t=>bn(t,e)):r instanceof ue&&de(e,r)?!1:r instanceof Ke?(r instanceof ue&&e.push(r),Oe(r.definition,t=>bn(t,e))):!1}function kf(r){return r instanceof ge}function Ue(r){if(r instanceof ue)return"SUBRULE";if(r instanceof re)return"OPTION";if(r instanceof ge)return"OR";if(r instanceof xe)return"AT_LEAST_ONE";if(r instanceof Ie)return"AT_LEAST_ONE_SEP";if(r instanceof me)return"MANY_SEP";if(r instanceof j)return"MANY";if(r instanceof F)return"CONSUME";throw Error("non exhaustive match")}class ni{walk(e,t=[]){C(e.definition,(n,i)=>{const s=J(e.definition,i+1);if(n instanceof ue)this.walkProdRef(n,s,t);else if(n instanceof F)this.walkTerminal(n,s,t);else if(n instanceof pe)this.walkFlat(n,s,t);else if(n instanceof re)this.walkOption(n,s,t);else if(n instanceof xe)this.walkAtLeastOne(n,s,t);else if(n instanceof Ie)this.walkAtLeastOneSep(n,s,t);else if(n instanceof me)this.walkManySep(n,s,t);else if(n instanceof j)this.walkMany(n,s,t);else if(n instanceof ge)this.walkOr(n,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const i=t.concat(n);this.walk(e,i)}walkOption(e,t,n){const i=t.concat(n);this.walk(e,i)}walkAtLeastOne(e,t,n){const i=[new re({definition:e.definition})].concat(t,n);this.walk(e,i)}walkAtLeastOneSep(e,t,n){const i=Ia(e,t,n);this.walk(e,i)}walkMany(e,t,n){const i=[new re({definition:e.definition})].concat(t,n);this.walk(e,i)}walkManySep(e,t,n){const i=Ia(e,t,n);this.walk(e,i)}walkOr(e,t,n){const i=t.concat(n);C(e.definition,s=>{const a=new pe({definition:[s]});this.walk(a,i)})}}function Ia(r,e,t){return[new re({definition:[new F({terminalType:r.separator})].concat(r.definition)})].concat(e,t)}function Ur(r){if(r instanceof ue)return Ur(r.referencedRule);if(r instanceof F)return If(r);if(Ef(r))return Af(r);if(kf(r))return xf(r);throw Error("non exhaustive match")}function Af(r){let e=[];const t=r.definition;let n=0,i=t.length>n,s,a=!0;for(;i&&a;)s=t[n],a=bn(s),e=e.concat(Ur(s)),n=n+1,i=t.length>n;return Vs(e)}function xf(r){const e=k(r.definition,t=>Ur(t));return Vs(Ne(e))}function If(r){return[r.terminalType]}const nu="_~IN~_";class Sf extends ni{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const i=Nf(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(n),a=new pe({definition:s}),o=Ur(a);this.follows[i]=o}}function Cf(r){const e={};return C(r,t=>{const n=new Sf(t).startWalking();ke(e,n)}),e}function Nf(r,e){return r.name+e+nu}let gn={};const wf=new Wl;function ii(r){const e=r.toString();if(gn.hasOwnProperty(e))return gn[e];{const t=wf.pattern(e);return gn[e]=t,t}}function Lf(){gn={}}const iu="Complement Sets are not supported for first char optimization",_n=`Unable to use "first char" lexer optimizations:
12
+ \r \v              \u2028\u2029   \uFEFF`.split("");function ls(r){const e=typeof r=="string"?new RegExp(r):r;return Jd.some(t=>e.test(t))}function ri(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zd(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ri(e)).join("")}function ef(r,e){const t=tf(r),n=e.match(t);return!!n&&n[0].length>0}function tf(r){typeof r=="string"&&(r=new RegExp(r));const e=r,t=r.source;let n=0;function i(){let s="",a;function o(u){s+=t.substr(n,u),n+=u}function l(u){s+="(?:"+t.substr(n,u)+"|$)",n+=u}for(;n<t.length;)switch(t[n]){case"\\":switch(t[n+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[n+2]==="{"?l(t.indexOf("}",n)-n+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",n)-n+1):l(2);break;case"k":l(t.indexOf(">",n)-n+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=n,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=n,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[n+1]==="?")switch(t[n+2]){case":":s+="(?:",n+=3,s+=i()+"|$)";break;case"=":s+="(?=",n+=3,s+=i()+")";break;case"!":a=n,n+=3,i(),s+=t.substr(a,n-a);break;case"<":switch(t[n+3]){case"=":case"!":a=n,n+=4,i(),s+=t.substr(a,n-a);break;default:o(t.indexOf(">",n)-n+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++n,s;default:l(1);break}return s}return new RegExp(i(),r.flags)}function rf(r){return r.rules.find(e=>we(e)&&e.entry)}function nf(r){return r.rules.filter(e=>At(e)&&e.hidden)}function zl(r,e){const t=new Set,n=rf(r);if(!n)return new Set(r.rules);const i=[n].concat(nf(r));for(const a of i)Yl(a,t,e);const s=new Set;for(const a of r.rules)(t.has(a.name)||At(a)&&a.hidden)&&s.add(a);return s}function Yl(r,e,t){e.add(r.name),Fr(r).forEach(n=>{if(vt(n)||t){const i=n.rule.ref;i&&!e.has(i.name)&&Yl(i,e,t)}})}function sf(r){if(r.terminal)return r.terminal;if(r.type.ref){const e=Xl(r.type.ref);return e==null?void 0:e.terminal}}function af(r){return r.hidden&&!ls(Qs(r))}function of(r,e){return!r||!e?[]:Ys(r,e,r.astNode,!0)}function ql(r,e,t){if(!r||!e)return;const n=Ys(r,e,r.astNode,!0);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function Ys(r,e,t,n){if(!n){const i=ei(r.grammarSource,yt);if(i&&i.feature===e)return[r]}return _r(r)&&r.astNode===t?r.content.flatMap(i=>Ys(i,e,t,!1)):[]}function lf(r,e,t){if(!r)return;const n=uf(r,e,r==null?void 0:r.astNode);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function uf(r,e,t){if(r.astNode!==t)return[];if(Tt(r.grammarSource)&&r.grammarSource.value===e)return[r];const n=ss(r).iterator();let i;const s=[];do if(i=n.next(),!i.done){const a=i.value;a.astNode===t?Tt(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):n.prune()}while(!i.done);return s}function cf(r){var e;const t=r.astNode;for(;t===((e=r.container)===null||e===void 0?void 0:e.astNode);){const n=ei(r.grammarSource,yt);if(n)return n;r=r.container}}function Xl(r){let e=r;return Fl(e)&&(Zn(e.$container)?e=e.$container.$container:we(e.$container)?e=e.$container:Dr(e.$container)),Ql(r,e,new Map)}function Ql(r,e,t){var n;function i(s,a){let o;return ei(s,yt)||(o=Ql(a,a,t)),t.set(r,o),o}if(t.has(r))return t.get(r);t.set(r,void 0);for(const s of Fr(e)){if(yt(s)&&s.feature.toLowerCase()==="name")return t.set(r,s),s;if(vt(s)&&we(s.rule.ref))return i(s,s.rule.ref);if(_d(s)&&!((n=s.typeRef)===null||n===void 0)&&n.ref)return i(s,s.typeRef.ref)}}function Jl(r){return Zl(r,new Set)}function Zl(r,e){if(e.has(r))return!0;e.add(r);for(const t of Fr(r))if(vt(t)){if(!t.rule.ref||we(t.rule.ref)&&!Zl(t.rule.ref,e))return!1}else if(yt(t)||Zn(t))return!1;return!!r.definition}function qs(r){if(r.inferredType)return r.inferredType.name;if(r.dataType)return r.dataType;if(r.returnType){const e=r.returnType.ref;if(e&&(we(e)||Ul(e)||Gl(e)))return e.name}}function Xs(r){var e;if(we(r))return Jl(r)?r.name:(e=qs(r))!==null&&e!==void 0?e:r.name;if(Ul(r)||Gl(r)||bd(r))return r.name;if(Zn(r)){const t=df(r);if(t)return t}else if(Fl(r))return r.name;throw new Error("Cannot get name of Unknown Type")}function df(r){var e;if(r.inferredType)return r.inferredType.name;if(!((e=r.type)===null||e===void 0)&&e.ref)return Xs(r.type.ref)}function ff(r){var e,t,n;return At(r)?(t=(e=r.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(n=qs(r))!==null&&n!==void 0?n:r.name}function Qs(r){const e={s:!1,i:!1,u:!1},t=Kt(r.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,n)}const Js=/[\s\S]/.source;function Kt(r,e){if(Fd(r))return hf(r);if(Ud(r))return pf(r);if(Od(r))return yf(r);if(Gd(r)){const t=r.rule.ref;if(!t)throw new Error("Missing rule reference.");return Ye(Kt(t.definition),{cardinality:r.cardinality,lookahead:r.lookahead})}else{if(Md(r))return gf(r);if(Bd(r))return mf(r);if(Dd(r)){const t=r.regex.lastIndexOf("/"),n=r.regex.substring(1,t),i=r.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Ye(n,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}else{if(Kd(r))return Ye(Js,{cardinality:r.cardinality,lookahead:r.lookahead});throw new Error(`Invalid terminal element: ${r==null?void 0:r.$type}`)}}}function hf(r){return Ye(r.elements.map(e=>Kt(e)).join("|"),{cardinality:r.cardinality,lookahead:r.lookahead})}function pf(r){return Ye(r.elements.map(e=>Kt(e)).join(""),{cardinality:r.cardinality,lookahead:r.lookahead})}function mf(r){return Ye(`${Js}*?${Kt(r.terminal)}`,{cardinality:r.cardinality,lookahead:r.lookahead})}function gf(r){return Ye(`(?!${Kt(r.terminal)})${Js}*?`,{cardinality:r.cardinality,lookahead:r.lookahead})}function yf(r){return r.right?Ye(`[${$i(r.left)}-${$i(r.right)}]`,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1}):Ye($i(r.left),{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}function $i(r){return ri(r.value)}function Ye(r,e){var t;return(e.wrap!==!1||e.lookahead)&&(r=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${r})`),e.cardinality?`${r}${e.cardinality}`:r}function Tf(r){const e=[],t=r.Grammar;for(const n of t.rules)At(n)&&af(n)&&Qd(Qs(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:kd}}function us(r){console&&console.error&&console.error(`Error: ${r}`)}function eu(r){console&&console.warn&&console.warn(`Warning: ${r}`)}function tu(r){const e=new Date().getTime(),t=r();return{time:new Date().getTime()-e,value:t}}function ru(r){function e(){}e.prototype=r;const t=new e;function n(){return typeof t.bar}return n(),n(),r}function vf(r){return Rf(r)?r.LABEL:r.name}function Rf(r){return he(r.LABEL)&&r.LABEL!==""}class Be{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),C(this.definition,t=>{t.accept(e)})}}class ue extends Be{constructor(e){super([]),this.idx=1,ke(this,Me(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Vt extends Be{constructor(e){super(e.definition),this.orgText="",ke(this,Me(e,t=>t!==void 0))}}class pe extends Be{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,Me(e,t=>t!==void 0))}}let re=class extends Be{constructor(r){super(r.definition),this.idx=1,ke(this,Me(r,e=>e!==void 0))}};class xe extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class Ie extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class j extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class me extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class ge extends Be{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,ke(this,Me(e,t=>t!==void 0))}}class F{constructor(e){this.idx=1,ke(this,Me(e,t=>t!==void 0))}accept(e){e.visit(this)}}function $f(r){return k(r,mn)}function mn(r){function e(t){return k(t,mn)}if(r instanceof ue){const t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return he(r.label)&&(t.label=r.label),t}else{if(r instanceof pe)return{type:"Alternative",definition:e(r.definition)};if(r instanceof re)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xe)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Ie)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:mn(new F({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof me)return{type:"RepetitionWithSeparator",idx:r.idx,separator:mn(new F({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof j)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof ge)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof F){const t={type:"Terminal",name:r.terminalType.name,label:vf(r.terminalType),idx:r.idx};he(r.label)&&(t.terminalLabel=r.label);const n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(t.pattern=Xe(n)?n.source:n),t}else{if(r instanceof Vt)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}class jt{visit(e){const t=e;switch(t.constructor){case ue:return this.visitNonTerminal(t);case pe:return this.visitAlternative(t);case re:return this.visitOption(t);case xe:return this.visitRepetitionMandatory(t);case Ie:return this.visitRepetitionMandatoryWithSeparator(t);case me:return this.visitRepetitionWithSeparator(t);case j:return this.visitRepetition(t);case ge:return this.visitAlternation(t);case F:return this.visitTerminal(t);case Vt: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 Ef(r){return r instanceof pe||r instanceof re||r instanceof j||r instanceof xe||r instanceof Ie||r instanceof me||r instanceof F||r instanceof Vt}function bn(r,e=[]){return r instanceof re||r instanceof j||r instanceof me?!0:r instanceof ge?_l(r.definition,t=>bn(t,e)):r instanceof ue&&de(e,r)?!1:r instanceof Be?(r instanceof ue&&e.push(r),Oe(r.definition,t=>bn(t,e))):!1}function kf(r){return r instanceof ge}function Ue(r){if(r instanceof ue)return"SUBRULE";if(r instanceof re)return"OPTION";if(r instanceof ge)return"OR";if(r instanceof xe)return"AT_LEAST_ONE";if(r instanceof Ie)return"AT_LEAST_ONE_SEP";if(r instanceof me)return"MANY_SEP";if(r instanceof j)return"MANY";if(r instanceof F)return"CONSUME";throw Error("non exhaustive match")}class ni{walk(e,t=[]){C(e.definition,(n,i)=>{const s=J(e.definition,i+1);if(n instanceof ue)this.walkProdRef(n,s,t);else if(n instanceof F)this.walkTerminal(n,s,t);else if(n instanceof pe)this.walkFlat(n,s,t);else if(n instanceof re)this.walkOption(n,s,t);else if(n instanceof xe)this.walkAtLeastOne(n,s,t);else if(n instanceof Ie)this.walkAtLeastOneSep(n,s,t);else if(n instanceof me)this.walkManySep(n,s,t);else if(n instanceof j)this.walkMany(n,s,t);else if(n instanceof ge)this.walkOr(n,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const i=t.concat(n);this.walk(e,i)}walkOption(e,t,n){const i=t.concat(n);this.walk(e,i)}walkAtLeastOne(e,t,n){const i=[new re({definition:e.definition})].concat(t,n);this.walk(e,i)}walkAtLeastOneSep(e,t,n){const i=Ia(e,t,n);this.walk(e,i)}walkMany(e,t,n){const i=[new re({definition:e.definition})].concat(t,n);this.walk(e,i)}walkManySep(e,t,n){const i=Ia(e,t,n);this.walk(e,i)}walkOr(e,t,n){const i=t.concat(n);C(e.definition,s=>{const a=new pe({definition:[s]});this.walk(a,i)})}}function Ia(r,e,t){return[new re({definition:[new F({terminalType:r.separator})].concat(r.definition)})].concat(e,t)}function Ur(r){if(r instanceof ue)return Ur(r.referencedRule);if(r instanceof F)return If(r);if(Ef(r))return Af(r);if(kf(r))return xf(r);throw Error("non exhaustive match")}function Af(r){let e=[];const t=r.definition;let n=0,i=t.length>n,s,a=!0;for(;i&&a;)s=t[n],a=bn(s),e=e.concat(Ur(s)),n=n+1,i=t.length>n;return Vs(e)}function xf(r){const e=k(r.definition,t=>Ur(t));return Vs(Ne(e))}function If(r){return[r.terminalType]}const nu="_~IN~_";class Sf extends ni{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const i=Nf(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(n),a=new pe({definition:s}),o=Ur(a);this.follows[i]=o}}function Cf(r){const e={};return C(r,t=>{const n=new Sf(t).startWalking();ke(e,n)}),e}function Nf(r,e){return r.name+e+nu}let gn={};const wf=new Wl;function ii(r){const e=r.toString();if(gn.hasOwnProperty(e))return gn[e];{const t=wf.pattern(e);return gn[e]=t,t}}function Lf(){gn={}}const iu="Complement Sets are not supported for first char optimization",_n=`Unable to use "first char" lexer optimizations:
13
13
  `;function bf(r,e=!1){try{const t=ii(r);return cs(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===iu)e&&eu(`${_n} Unable to optimize: < ${r.toString()} >
14
14
  Complement Sets cannot be automatically optimized.
15
15
  This will disable the lexer's first char optimizations.
@@ -18,15 +18,15 @@ import{bS as Lc,aE as bc,bj as ga,bI as ya,_ as ft,bk as D,aJ as te,br as Il,bJ
18
18
  See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),us(`${_n}
19
19
  Failed parsing: < ${r.toString()} >
20
20
  Using the @chevrotain/regexp-to-ast library
21
- Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function cs(r,e,t){switch(r.type){case"Disjunction":for(let i=0;i<r.value.length;i++)cs(r.value[i],e,t);break;case"Alternative":const n=r.value;for(let i=0;i<n.length;i++){const s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":tn(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(iu);C(a.value,l=>{if(typeof l=="number")tn(l,e,t);else{const u=l;if(t===!0)for(let c=u.from;c<=u.to;c++)tn(c,e,t);else{for(let c=u.from;c<=u.to&&c<Ar;c++)tn(c,e,t);if(u.to>=Ar){const c=u.from>=Ar?u.from:Ar,d=u.to,f=et(c),h=et(d);for(let m=f;m<=h;m++)e[m]=m}}}});break;case"Group":cs(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&ds(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return z(e)}function tn(r,e,t){const n=et(r);e[n]=n,t===!0&&_f(r,e)}function _f(r,e){const t=String.fromCharCode(r),n=t.toUpperCase();if(n!==t){const i=et(n.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=et(i.charCodeAt(0));e[s]=s}}}function Sa(r,e){return Mt(r.value,t=>{if(typeof t=="number")return de(e,t);{const n=t;return Mt(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function ds(r){const e=r.quantifier;return e&&e.atLeast===0?!0:r.value?te(r.value)?Oe(r.value,ds):ds(r.value):!1}class Of extends ti{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){de(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Sa(e,this.targetCharCodes)===void 0&&(this.found=!0):Sa(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Zs(r,e){if(e instanceof RegExp){const t=ii(e),n=new Of(r);return n.visit(t),n.found}else return Mt(e,t=>de(r,t.charCodeAt(0)))!==void 0}const Rt="PATTERN",kr="defaultMode",rn="modes";let su=typeof new RegExp("(?:)").sticky=="boolean";function Pf(r,e){e=Bs(e,{useSticky:su,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
21
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function cs(r,e,t){switch(r.type){case"Disjunction":for(let i=0;i<r.value.length;i++)cs(r.value[i],e,t);break;case"Alternative":const n=r.value;for(let i=0;i<n.length;i++){const s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":tn(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(iu);C(a.value,l=>{if(typeof l=="number")tn(l,e,t);else{const u=l;if(t===!0)for(let c=u.from;c<=u.to;c++)tn(c,e,t);else{for(let c=u.from;c<=u.to&&c<Ar;c++)tn(c,e,t);if(u.to>=Ar){const c=u.from>=Ar?u.from:Ar,d=u.to,f=et(c),h=et(d);for(let m=f;m<=h;m++)e[m]=m}}}});break;case"Group":cs(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&ds(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return z(e)}function tn(r,e,t){const n=et(r);e[n]=n,t===!0&&_f(r,e)}function _f(r,e){const t=String.fromCharCode(r),n=t.toUpperCase();if(n!==t){const i=et(n.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=et(i.charCodeAt(0));e[s]=s}}}function Sa(r,e){return Mt(r.value,t=>{if(typeof t=="number")return de(e,t);{const n=t;return Mt(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function ds(r){const e=r.quantifier;return e&&e.atLeast===0?!0:r.value?te(r.value)?Oe(r.value,ds):ds(r.value):!1}class Of extends ti{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){de(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Sa(e,this.targetCharCodes)===void 0&&(this.found=!0):Sa(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Zs(r,e){if(e instanceof RegExp){const t=ii(e),n=new Of(r);return n.visit(t),n.found}else return Mt(e,t=>de(r,t.charCodeAt(0)))!==void 0}const Rt="PATTERN",kr="defaultMode",rn="modes";let su=typeof new RegExp("(?:)").sticky=="boolean";function Pf(r,e){e=Ks(e,{useSticky:su,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
22
  `],tracer:($,T)=>T()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{ih()});let n;t("Reject Lexer.NA",()=>{n=Jn(r,$=>$[Rt]===fe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=k(n,$=>{const T=$[Rt];if(Xe(T)){const I=T.source;return I.length===1&&I!=="^"&&I!=="$"&&I!=="."&&!T.ignoreCase?I:I.length===2&&I[0]==="\\"&&!de(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],I[1])?I[1]:e.useSticky?Na(T):Ca(T)}else{if(kt(T))return i=!0,{exec:T};if(typeof T=="object")return i=!0,T;if(typeof T=="string"){if(T.length===1)return T;{const I=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),G=new RegExp(I);return e.useSticky?Na(G):Ca(G)}}else throw Error("non exhaustive match")}})});let a,o,l,u,c;t("misc mapping",()=>{a=k(n,$=>$.tokenTypeIdx),o=k(n,$=>{const T=$.GROUP;if(T!==fe.SKIPPED){if(he(T))return T;if(qe(T))return!1;throw Error("non exhaustive match")}}),l=k(n,$=>{const T=$.LONGER_ALT;if(T)return te(T)?k(T,I=>va(n,I)):[va(n,T)]}),u=k(n,$=>$.PUSH_MODE),c=k(n,$=>N($,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const $=lu(e.lineTerminatorCharacters);d=k(n,T=>!1),e.positionTracking!=="onlyOffset"&&(d=k(n,T=>N(T,"LINE_BREAKS")?!!T.LINE_BREAKS:ou(T,$)===!1&&Zs($,T.PATTERN)))});let f,h,m,g;t("Misc Mapping #2",()=>{f=k(n,au),h=k(s,th),m=le(n,($,T)=>{const I=T.GROUP;return he(I)&&I!==fe.SKIPPED&&($[I]=[]),$},{}),g=k(s,($,T)=>({pattern:s[T],longerAlt:l[T],canLineTerminator:d[T],isCustom:f[T],short:h[T],group:o[T],push:u[T],pop:c[T],tokenTypeIdx:a[T],tokenType:n[T]}))});let A=!0,R=[];return e.safeMode||t("First Char Optimization",()=>{R=le(n,($,T,I)=>{if(typeof T.PATTERN=="string"){const G=T.PATTERN.charCodeAt(0),ie=et(G);Ei($,ie,g[I])}else if(te(T.START_CHARS_HINT)){let G;C(T.START_CHARS_HINT,ie=>{const Le=typeof ie=="string"?ie.charCodeAt(0):ie,ye=et(Le);G!==ye&&(G=ye,Ei($,ye,g[I]))})}else if(Xe(T.PATTERN))if(T.PATTERN.unicode)A=!1,e.ensureOptimizations&&us(`${_n} Unable to analyze < ${T.PATTERN.toString()} > pattern.
23
23
  The regexp unicode flag is not currently supported by the regexp-to-ast library.
24
24
  This will disable the lexer's first char optimizations.
25
25
  For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const G=bf(T.PATTERN,e.ensureOptimizations);D(G)&&(A=!1),C(G,ie=>{Ei($,ie,g[I])})}else e.ensureOptimizations&&us(`${_n} TokenType: <${T.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
26
26
  This will disable the lexer's first char optimizations.
27
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),A=!1;return $},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:R,hasCustom:i,canBeOptimized:A}}function Mf(r,e){let t=[];const n=Ff(r);t=t.concat(n.errors);const i=Uf(n.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Df(s)),t=t.concat(zf(s)),t=t.concat(Yf(s,e)),t=t.concat(qf(s)),t}function Df(r){let e=[];const t=Ae(r,n=>Xe(n[Rt]));return e=e.concat(Kf(t)),e=e.concat(jf(t)),e=e.concat(Hf(t)),e=e.concat(Wf(t)),e=e.concat(Bf(t)),e}function Ff(r){const e=Ae(r,i=>!N(i,Rt)),t=k(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:H.MISSING_PATTERN,tokenTypes:[i]})),n=Qn(r,e);return{errors:t,valid:n}}function Uf(r){const e=Ae(r,i=>{const s=i[Rt];return!Xe(s)&&!kt(s)&&!N(s,"exec")&&!he(s)}),t=k(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:H.INVALID_PATTERN,tokenTypes:[i]})),n=Qn(r,e);return{errors:t,valid:n}}const Gf=/[^\\][$]/;function Kf(r){class e extends ti{constructor(){super(...arguments),this.found=!1}visitEndAnchor(i){this.found=!0}}const t=Ae(r,n=>{const i=n.PATTERN;try{const s=ii(i),a=new e;return a.visit(s),a.found}catch{return Gf.test(i.source)}});return k(t,n=>({message:`Unexpected RegExp Anchor Error:
27
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),A=!1;return $},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:R,hasCustom:i,canBeOptimized:A}}function Mf(r,e){let t=[];const n=Ff(r);t=t.concat(n.errors);const i=Uf(n.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Df(s)),t=t.concat(zf(s)),t=t.concat(Yf(s,e)),t=t.concat(qf(s)),t}function Df(r){let e=[];const t=Ae(r,n=>Xe(n[Rt]));return e=e.concat(Bf(t)),e=e.concat(jf(t)),e=e.concat(Hf(t)),e=e.concat(Wf(t)),e=e.concat(Kf(t)),e}function Ff(r){const e=Ae(r,i=>!N(i,Rt)),t=k(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:H.MISSING_PATTERN,tokenTypes:[i]})),n=Qn(r,e);return{errors:t,valid:n}}function Uf(r){const e=Ae(r,i=>{const s=i[Rt];return!Xe(s)&&!kt(s)&&!N(s,"exec")&&!he(s)}),t=k(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:H.INVALID_PATTERN,tokenTypes:[i]})),n=Qn(r,e);return{errors:t,valid:n}}const Gf=/[^\\][$]/;function Bf(r){class e extends ti{constructor(){super(...arguments),this.found=!1}visitEndAnchor(i){this.found=!0}}const t=Ae(r,n=>{const i=n.PATTERN;try{const s=ii(i),a=new e;return a.visit(s),a.found}catch{return Gf.test(i.source)}});return k(t,n=>({message:`Unexpected RegExp Anchor Error:
28
28
  Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
- See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:H.EOI_ANCHOR_FOUND,tokenTypes:[n]}))}function Bf(r){const e=Ae(r,t=>t.PATTERN.test(""));return k(e,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' must not match an empty string",type:H.EMPTY_MATCH_PATTERN,tokenTypes:[t]}))}const Vf=/[^\\[][\^]|^\^/;function jf(r){class e extends ti{constructor(){super(...arguments),this.found=!1}visitStartAnchor(i){this.found=!0}}const t=Ae(r,n=>{const i=n.PATTERN;try{const s=ii(i),a=new e;return a.visit(s),a.found}catch{return Vf.test(i.source)}});return k(t,n=>({message:`Unexpected RegExp Anchor Error:
29
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:H.EOI_ANCHOR_FOUND,tokenTypes:[n]}))}function Kf(r){const e=Ae(r,t=>t.PATTERN.test(""));return k(e,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' must not match an empty string",type:H.EMPTY_MATCH_PATTERN,tokenTypes:[t]}))}const Vf=/[^\\[][\^]|^\^/;function jf(r){class e extends ti{constructor(){super(...arguments),this.found=!1}visitStartAnchor(i){this.found=!0}}const t=Ae(r,n=>{const i=n.PATTERN;try{const s=ii(i),a=new e;return a.visit(s),a.found}catch{return Vf.test(i.source)}});return k(t,n=>({message:`Unexpected RegExp Anchor Error:
30
30
  Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
31
  See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:H.SOI_ANCHOR_FOUND,tokenTypes:[n]}))}function Hf(r){const e=Ae(r,t=>{const n=t[Rt];return n instanceof RegExp&&(n.multiline||n.global)});return k(e,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:H.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[t]}))}function Wf(r){const e=[];let t=k(r,i=>le(r,(s,a)=>(i.PATTERN.source===a.PATTERN.source&&!de(e,a)&&a.PATTERN!==fe.NA&&(e.push(a),s.push(a)),s),[]));t=Mr(t);const n=Ae(t,i=>i.length>1);return k(n,i=>{const s=k(i,a=>a.name);return{message:`The same RegExp pattern ->${Pe(i).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:H.DUPLICATE_PATTERNS_FOUND,tokenTypes:i}})}function zf(r){const e=Ae(r,t=>{if(!N(t,"GROUP"))return!1;const n=t.GROUP;return n!==fe.SKIPPED&&n!==fe.NA&&!he(n)});return k(e,t=>({message:"Token Type: ->"+t.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:H.INVALID_GROUP_TYPE_FOUND,tokenTypes:[t]}))}function Yf(r,e){const t=Ae(r,n=>n.PUSH_MODE!==void 0&&!de(e,n.PUSH_MODE));return k(t,n=>({message:`Token Type: ->${n.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${n.PUSH_MODE}<-which does not exist`,type:H.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}))}function qf(r){const e=[],t=le(r,(n,i,s)=>{const a=i.PATTERN;return a===fe.NA||(he(a)?n.push({str:a,idx:s,tokenType:i}):Xe(a)&&Qf(a)&&n.push({str:a.source,idx:s,tokenType:i})),n},[]);return C(r,(n,i)=>{C(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&Xf(s,n.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
32
32
  Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition.
@@ -44,17 +44,17 @@ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.
44
44
  Root cause: ${e.errMsg}.
45
45
  For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===H.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
46
46
  The problem is in the <${r.name}> Token Type
47
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function lu(r){return k(r,e=>he(e)?e.charCodeAt(0):e)}function Ei(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}const Ar=256;let yn=[];function et(r){return r<Ar?r:yn[r]}function ih(){if(D(yn)){yn=new Array(65536);for(let r=0;r<65536;r++)yn[r]=r>255?255+~~(r/255):r}}function Gr(r,e){const t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function On(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}let wa=1;const uu={};function Kr(r){const e=sh(r);ah(e),lh(e),oh(e),C(e,t=>{t.isParent=t.categoryMatches.length>0})}function sh(r){let e=ne(r),t=r,n=!0;for(;n;){t=Mr(Ne(k(t,s=>s.CATEGORIES)));const i=Qn(t,e);e=e.concat(i),D(i)?n=!1:t=i}return e}function ah(r){C(r,e=>{du(e)||(uu[wa]=e,e.tokenTypeIdx=wa++),La(e)&&!te(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),La(e)||(e.CATEGORIES=[]),uh(e)||(e.categoryMatches=[]),ch(e)||(e.categoryMatchesMap={})})}function oh(r){C(r,e=>{e.categoryMatches=[],C(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(uu[n].tokenTypeIdx)})})}function lh(r){C(r,e=>{cu([],e)})}function cu(r,e){C(r,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),C(e.CATEGORIES,t=>{const n=r.concat(e);de(n,t)||cu(n,t)})}function du(r){return N(r,"tokenTypeIdx")}function La(r){return N(r,"CATEGORIES")}function uh(r){return N(r,"categoryMatches")}function ch(r){return N(r,"categoryMatchesMap")}function dh(r){return N(r,"tokenTypeIdx")}const fs={buildUnableToPopLexerModeMessage(r){return`Unable to pop Lexer Mode after encountering Token ->${r.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(r,e,t,n,i){return`unexpected character: ->${r.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var H;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",r[r.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(H||(H={}));const xr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
47
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function lu(r){return k(r,e=>he(e)?e.charCodeAt(0):e)}function Ei(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}const Ar=256;let yn=[];function et(r){return r<Ar?r:yn[r]}function ih(){if(D(yn)){yn=new Array(65536);for(let r=0;r<65536;r++)yn[r]=r>255?255+~~(r/255):r}}function Gr(r,e){const t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function On(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}let wa=1;const uu={};function Br(r){const e=sh(r);ah(e),lh(e),oh(e),C(e,t=>{t.isParent=t.categoryMatches.length>0})}function sh(r){let e=ne(r),t=r,n=!0;for(;n;){t=Mr(Ne(k(t,s=>s.CATEGORIES)));const i=Qn(t,e);e=e.concat(i),D(i)?n=!1:t=i}return e}function ah(r){C(r,e=>{du(e)||(uu[wa]=e,e.tokenTypeIdx=wa++),La(e)&&!te(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),La(e)||(e.CATEGORIES=[]),uh(e)||(e.categoryMatches=[]),ch(e)||(e.categoryMatchesMap={})})}function oh(r){C(r,e=>{e.categoryMatches=[],C(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(uu[n].tokenTypeIdx)})})}function lh(r){C(r,e=>{cu([],e)})}function cu(r,e){C(r,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),C(e.CATEGORIES,t=>{const n=r.concat(e);de(n,t)||cu(n,t)})}function du(r){return N(r,"tokenTypeIdx")}function La(r){return N(r,"CATEGORIES")}function uh(r){return N(r,"categoryMatches")}function ch(r){return N(r,"categoryMatchesMap")}function dh(r){return N(r,"tokenTypeIdx")}const fs={buildUnableToPopLexerModeMessage(r){return`Unable to pop Lexer Mode after encountering Token ->${r.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(r,e,t,n,i){return`unexpected character: ->${r.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var H;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",r[r.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(H||(H={}));const xr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
48
  `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:fs,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(xr);class fe{constructor(e,t=xr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=tu(s),u=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
49
  a boolean 2nd argument is no longer supported`);this.config=ke({},xr,t);const 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 i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===xr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=rh;else if(this.config.lineTerminatorCharacters===xr.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(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),te(e)?i={modes:{defaultMode:ne(e)},defaultMode:kr}:(s=!1,i=ne(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Jf(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Zf(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},C(i.modes,(o,l)=>{i.modes[l]=Jn(o,u=>qe(u))});const a=Ot(i.modes);if(C(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Mf(o,a))}),D(this.lexerDefinitionErrors)){Kr(o);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=Pf(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!D(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const o=k(this.lexerDefinitionErrors,l=>l.message).join(`-----------------------
50
+ 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),te(e)?i={modes:{defaultMode:ne(e)},defaultMode:kr}:(s=!1,i=ne(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Jf(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Zf(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},C(i.modes,(o,l)=>{i.modes[l]=Jn(o,u=>qe(u))});const a=Ot(i.modes);if(C(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Mf(o,a))}),D(this.lexerDefinitionErrors)){Br(o);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=Pf(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!D(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const o=k(this.lexerDefinitionErrors,l=>l.message).join(`-----------------------
51
51
  `);throw new Error(`Errors detected in definition of Lexer:
52
52
  `+o)}C(this.lexerDefinitionWarning,o=>{eu(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(su?(this.chopInput=Ta,this.match=this.matchWithTest):(this.updateLastIndex=q,this.match=this.matchWithExec),s&&(this.handleModes=q),this.trackStartLines===!1&&(this.computeNewColumn=Ta),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=q),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=le(this.canModeBeOptimized,(l,u,c)=>(u===!1&&l.push(c),l),[]);if(t.ensureOptimizations&&!D(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
53
53
  Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
54
54
  Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Lf()}),this.TRACE_INIT("toFastProperties",()=>{ru(this)})})}tokenize(e,t=this.defaultMode){if(!D(this.lexerDefinitionErrors)){const n=k(this.lexerDefinitionErrors,i=>i.message).join(`-----------------------
55
55
  `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
- `+n)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,i,s,a,o,l,u,c,d,f,h,m,g,A,R;const $=e,T=$.length;let I=0,G=0;const ie=this.hasCustom?0:Math.floor(e.length/10),Le=new Array(ie),ye=[];let Fe=this.trackStartLines?1:void 0,Se=this.trackStartLines?1:void 0;const E=eh(this.emptyGroups),y=this.trackStartLines,S=this.config.lineTerminatorsPattern;let x=0,_=[],b=[];const L=[],Te=[];Object.freeze(Te);let Y;function V(){return _}function ct(se){const Ce=et(se),Ct=b[Ce];return Ct===void 0?Te:Ct}const wc=se=>{if(L.length===1&&se.tokenType.PUSH_MODE===void 0){const Ce=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(se);ye.push({offset:se.startOffset,line:se.startLine,column:se.startColumn,length:se.image.length,message:Ce})}else{L.pop();const Ce=Pt(L);_=this.patternIdxToConfig[Ce],b=this.charCodeToPatternIdxToConfig[Ce],x=_.length;const Ct=this.canModeBeOptimized[Ce]&&this.config.safeMode===!1;b&&Ct?Y=ct:Y=V}};function ha(se){L.push(se),b=this.charCodeToPatternIdxToConfig[se],_=this.patternIdxToConfig[se],x=_.length,x=_.length;const Ce=this.canModeBeOptimized[se]&&this.config.safeMode===!1;b&&Ce?Y=ct:Y=V}ha.call(this,t);let be;const pa=this.config.recoveryEnabled;for(;I<T;){l=null;const se=$.charCodeAt(I),Ce=Y(se),Ct=Ce.length;for(n=0;n<Ct;n++){be=Ce[n];const ve=be.pattern;u=null;const Be=be.short;if(Be!==!1?se===Be&&(l=ve):be.isCustom===!0?(R=ve.exec($,I,Le,E),R!==null?(l=R[0],R.payload!==void 0&&(u=R.payload)):l=null):(this.updateLastIndex(ve,I),l=this.match(ve,e,I)),l!==null){if(o=be.longerAlt,o!==void 0){const Je=o.length;for(s=0;s<Je;s++){const Ve=_[o[s]],dt=Ve.pattern;if(c=null,Ve.isCustom===!0?(R=dt.exec($,I,Le,E),R!==null?(a=R[0],R.payload!==void 0&&(c=R.payload)):a=null):(this.updateLastIndex(dt,I),a=this.match(dt,e,I)),a&&a.length>l.length){l=a,u=c,be=Ve;break}}}break}}if(l!==null){if(d=l.length,f=be.group,f!==void 0&&(h=be.tokenTypeIdx,m=this.createTokenInstance(l,I,h,be.tokenType,Fe,Se,d),this.handlePayload(m,u),f===!1?G=this.addToken(Le,G,m):E[f].push(m)),e=this.chopInput(e,d),I=I+d,Se=this.computeNewColumn(Se,d),y===!0&&be.canLineTerminator===!0){let ve=0,Be,Je;S.lastIndex=0;do Be=S.test(l),Be===!0&&(Je=S.lastIndex-1,ve++);while(Be===!0);ve!==0&&(Fe=Fe+ve,Se=d-Je,this.updateTokenEndLineColumnLocation(m,f,Je,ve,Fe,Se,d))}this.handleModes(be,wc,ha,m)}else{const ve=I,Be=Fe,Je=Se;let Ve=pa===!1;for(;Ve===!1&&I<T;)for(e=this.chopInput(e,1),I++,i=0;i<x;i++){const dt=_[i],hi=dt.pattern,ma=dt.short;if(ma!==!1?$.charCodeAt(I)===ma&&(Ve=!0):dt.isCustom===!0?Ve=hi.exec($,I,Le,E)!==null:(this.updateLastIndex(hi,I),Ve=hi.exec(e)!==null),Ve===!0)break}if(g=I-ve,Se=this.computeNewColumn(Se,g),A=this.config.errorMessageProvider.buildUnexpectedCharactersMessage($,ve,g,Be,Je),ye.push({offset:ve,line:Be,column:Je,length:g,message:A}),pa===!1)break}}return this.hasCustom||(Le.length=G),{tokens:Le,groups:E,errors:ye}}handleModes(e,t,n,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&n.call(this,s)}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,i,s,a,o){let l,u;t!==void 0&&(l=n===o-1,u=l?-1:0,i===1&&l===!0||(e.endLine=s+u,e.endColumn=a-1+-u))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,i){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:i}}createStartOnlyToken(e,t,n,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:n,tokenType:i}}createFullToken(e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:i}}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){const n=e.exec(t);return n!==null?n[0]:null}}fe.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.";fe.NA=/NOT_APPLICABLE/;function _t(r){return fu(r)?r.LABEL:r.name}function fu(r){return he(r.LABEL)&&r.LABEL!==""}const fh="parent",ba="categories",_a="label",Oa="group",Pa="push_mode",Ma="pop_mode",Da="longer_alt",Fa="line_breaks",Ua="start_chars_hint";function hu(r){return hh(r)}function hh(r){const e=r.pattern,t={};if(t.name=r.name,qe(e)||(t.PATTERN=e),N(r,fh))throw`The parent property is no longer supported.
57
- See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return N(r,ba)&&(t.CATEGORIES=r[ba]),Kr([t]),N(r,_a)&&(t.LABEL=r[_a]),N(r,Oa)&&(t.GROUP=r[Oa]),N(r,Ma)&&(t.POP_MODE=r[Ma]),N(r,Pa)&&(t.PUSH_MODE=r[Pa]),N(r,Da)&&(t.LONGER_ALT=r[Da]),N(r,Fa)&&(t.LINE_BREAKS=r[Fa]),N(r,Ua)&&(t.START_CHARS_HINT=r[Ua]),t}const tt=hu({name:"EOF",pattern:fe.NA});Kr([tt]);function ea(r,e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:n,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}function pu(r,e){return Gr(r,e)}const Lt={buildMismatchTokenMessage({expected:r,actual:e,previous:t,ruleName:n}){return`Expecting ${fu(r)?`--> ${_t(r)} <--`:`token of type --> ${r.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:r,ruleName:e}){return"Redundant input, expecting EOF but found: "+r.image},buildNoViableAltMessage({expectedPathsPerAlt:r,actual:e,previous:t,customUserDescription:n,ruleName:i}){const s="Expecting: ",a=`
56
+ `+n)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,i,s,a,o,l,u,c,d,f,h,m,g,A,R;const $=e,T=$.length;let I=0,G=0;const ie=this.hasCustom?0:Math.floor(e.length/10),Le=new Array(ie),ye=[];let Fe=this.trackStartLines?1:void 0,Se=this.trackStartLines?1:void 0;const E=eh(this.emptyGroups),y=this.trackStartLines,S=this.config.lineTerminatorsPattern;let x=0,_=[],b=[];const L=[],Te=[];Object.freeze(Te);let Y;function V(){return _}function ct(se){const Ce=et(se),Ct=b[Ce];return Ct===void 0?Te:Ct}const wc=se=>{if(L.length===1&&se.tokenType.PUSH_MODE===void 0){const Ce=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(se);ye.push({offset:se.startOffset,line:se.startLine,column:se.startColumn,length:se.image.length,message:Ce})}else{L.pop();const Ce=Pt(L);_=this.patternIdxToConfig[Ce],b=this.charCodeToPatternIdxToConfig[Ce],x=_.length;const Ct=this.canModeBeOptimized[Ce]&&this.config.safeMode===!1;b&&Ct?Y=ct:Y=V}};function ha(se){L.push(se),b=this.charCodeToPatternIdxToConfig[se],_=this.patternIdxToConfig[se],x=_.length,x=_.length;const Ce=this.canModeBeOptimized[se]&&this.config.safeMode===!1;b&&Ce?Y=ct:Y=V}ha.call(this,t);let be;const pa=this.config.recoveryEnabled;for(;I<T;){l=null;const se=$.charCodeAt(I),Ce=Y(se),Ct=Ce.length;for(n=0;n<Ct;n++){be=Ce[n];const ve=be.pattern;u=null;const Ke=be.short;if(Ke!==!1?se===Ke&&(l=ve):be.isCustom===!0?(R=ve.exec($,I,Le,E),R!==null?(l=R[0],R.payload!==void 0&&(u=R.payload)):l=null):(this.updateLastIndex(ve,I),l=this.match(ve,e,I)),l!==null){if(o=be.longerAlt,o!==void 0){const Je=o.length;for(s=0;s<Je;s++){const Ve=_[o[s]],dt=Ve.pattern;if(c=null,Ve.isCustom===!0?(R=dt.exec($,I,Le,E),R!==null?(a=R[0],R.payload!==void 0&&(c=R.payload)):a=null):(this.updateLastIndex(dt,I),a=this.match(dt,e,I)),a&&a.length>l.length){l=a,u=c,be=Ve;break}}}break}}if(l!==null){if(d=l.length,f=be.group,f!==void 0&&(h=be.tokenTypeIdx,m=this.createTokenInstance(l,I,h,be.tokenType,Fe,Se,d),this.handlePayload(m,u),f===!1?G=this.addToken(Le,G,m):E[f].push(m)),e=this.chopInput(e,d),I=I+d,Se=this.computeNewColumn(Se,d),y===!0&&be.canLineTerminator===!0){let ve=0,Ke,Je;S.lastIndex=0;do Ke=S.test(l),Ke===!0&&(Je=S.lastIndex-1,ve++);while(Ke===!0);ve!==0&&(Fe=Fe+ve,Se=d-Je,this.updateTokenEndLineColumnLocation(m,f,Je,ve,Fe,Se,d))}this.handleModes(be,wc,ha,m)}else{const ve=I,Ke=Fe,Je=Se;let Ve=pa===!1;for(;Ve===!1&&I<T;)for(e=this.chopInput(e,1),I++,i=0;i<x;i++){const dt=_[i],hi=dt.pattern,ma=dt.short;if(ma!==!1?$.charCodeAt(I)===ma&&(Ve=!0):dt.isCustom===!0?Ve=hi.exec($,I,Le,E)!==null:(this.updateLastIndex(hi,I),Ve=hi.exec(e)!==null),Ve===!0)break}if(g=I-ve,Se=this.computeNewColumn(Se,g),A=this.config.errorMessageProvider.buildUnexpectedCharactersMessage($,ve,g,Ke,Je),ye.push({offset:ve,line:Ke,column:Je,length:g,message:A}),pa===!1)break}}return this.hasCustom||(Le.length=G),{tokens:Le,groups:E,errors:ye}}handleModes(e,t,n,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&n.call(this,s)}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,i,s,a,o){let l,u;t!==void 0&&(l=n===o-1,u=l?-1:0,i===1&&l===!0||(e.endLine=s+u,e.endColumn=a-1+-u))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,i){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:i}}createStartOnlyToken(e,t,n,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:n,tokenType:i}}createFullToken(e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:i}}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){const n=e.exec(t);return n!==null?n[0]:null}}fe.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.";fe.NA=/NOT_APPLICABLE/;function _t(r){return fu(r)?r.LABEL:r.name}function fu(r){return he(r.LABEL)&&r.LABEL!==""}const fh="parent",ba="categories",_a="label",Oa="group",Pa="push_mode",Ma="pop_mode",Da="longer_alt",Fa="line_breaks",Ua="start_chars_hint";function hu(r){return hh(r)}function hh(r){const e=r.pattern,t={};if(t.name=r.name,qe(e)||(t.PATTERN=e),N(r,fh))throw`The parent property is no longer supported.
57
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return N(r,ba)&&(t.CATEGORIES=r[ba]),Br([t]),N(r,_a)&&(t.LABEL=r[_a]),N(r,Oa)&&(t.GROUP=r[Oa]),N(r,Ma)&&(t.POP_MODE=r[Ma]),N(r,Pa)&&(t.PUSH_MODE=r[Pa]),N(r,Da)&&(t.LONGER_ALT=r[Da]),N(r,Fa)&&(t.LINE_BREAKS=r[Fa]),N(r,Ua)&&(t.START_CHARS_HINT=r[Ua]),t}const tt=hu({name:"EOF",pattern:fe.NA});Br([tt]);function ea(r,e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:n,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}function pu(r,e){return Gr(r,e)}const Lt={buildMismatchTokenMessage({expected:r,actual:e,previous:t,ruleName:n}){return`Expecting ${fu(r)?`--> ${_t(r)} <--`:`token of type --> ${r.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:r,ruleName:e}){return"Redundant input, expecting EOF but found: "+r.image},buildNoViableAltMessage({expectedPathsPerAlt:r,actual:e,previous:t,customUserDescription:n,ruleName:i}){const s="Expecting: ",a=`
58
58
  but found: '`+Pe(e).image+"'";if(n)return s+n+a;{const o=le(r,(c,d)=>c.concat(d),[]),l=k(o,c=>`[${k(c,d=>_t(d)).join(", ")}]`),u=`one of these possible Token sequences:
59
59
  ${k(l,(c,d)=>` ${d+1}. ${c}`).join(`
60
60
  `)}`;return s+u+a}},buildEarlyExitMessage({expectedIterationPaths:r,actual:e,customUserDescription:t,ruleName:n}){const i="Expecting: ",s=`
@@ -84,7 +84,7 @@ rule: <${e}> can be invoked from itself (directly or indirectly)
84
84
  without consuming any Tokens. The grammar path that causes this is:
85
85
  ${n}
86
86
  To fix this refactor your grammar to remove the left recursion.
87
- see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(r){return"deprecated"},buildDuplicateRuleNameError(r){let e;return r.topLevelRule instanceof Vt?e=r.topLevelRule.name:e=r.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${r.grammarName}<-`}};function mh(r,e){const t=new gh(r,e);return t.resolveRefs(),t.errors}class gh extends jt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){C(z(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:ce.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class yh extends ni{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=ne(this.path.ruleStack).reverse(),this.occurrenceStack=ne(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){const i=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){D(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Th extends yh{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){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(n),s=new pe({definition:i});this.possibleTokTypes=Ur(s),this.found=!0}}}class si extends ni{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}}class vh extends si{walkMany(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,n)}}class Ga extends si{walkManySep(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,n)}}class Rh extends si{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,n)}}class Ka extends si{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,n)}}function hs(r,e,t=[]){t=ne(t);let n=[],i=0;function s(o){return o.concat(J(r,i+1))}function a(o){const l=hs(s(o),e,t);return n.concat(l)}for(;t.length<e&&i<r.length;){const o=r[i];if(o instanceof pe||o instanceof ue)return a(o.definition);if(o instanceof re)n=a(o.definition);else if(o instanceof xe){const l=o.definition.concat([new j({definition:o.definition})]);return a(l)}else if(o instanceof Ie){const l=[new pe({definition:o.definition}),new j({definition:[new F({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof me){const l=o.definition.concat([new j({definition:[new F({terminalType:o.separator})].concat(o.definition)})]);n=a(l)}else if(o instanceof j){const l=o.definition.concat([new j({definition:o.definition})]);n=a(l)}else{if(o instanceof ge)return C(o.definition,l=>{D(l.definition)===!1&&(n=a(l.definition))}),n;if(o instanceof F)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:t,suffixDef:J(r,i)}),n}function mu(r,e,t,n){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,u=l-n-1,c=[],d=[];for(d.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!D(d);){const f=d.pop();if(f===a){o&&Pt(d).idx<=u&&d.pop();continue}const h=f.def,m=f.idx,g=f.ruleStack,A=f.occurrenceStack;if(D(h))continue;const R=h[0];if(R===i){const $={idx:m,def:J(h),ruleStack:br(g),occurrenceStack:br(A)};d.push($)}else if(R instanceof F)if(m<l-1){const $=m+1,T=e[$];if(t(T,R.terminalType)){const I={idx:$,def:J(h),ruleStack:g,occurrenceStack:A};d.push(I)}}else if(m===l-1)c.push({nextTokenType:R.terminalType,nextTokenOccurrence:R.idx,ruleStack:g,occurrenceStack:A}),o=!0;else throw Error("non exhaustive match");else if(R instanceof ue){const $=ne(g);$.push(R.nonTerminalName);const T=ne(A);T.push(R.idx);const I={idx:m,def:R.definition.concat(s,J(h)),ruleStack:$,occurrenceStack:T};d.push(I)}else if(R instanceof re){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T={idx:m,def:R.definition.concat(J(h)),ruleStack:g,occurrenceStack:A};d.push(T)}else if(R instanceof xe){const $=new j({definition:R.definition,idx:R.idx}),T=R.definition.concat([$],J(h)),I={idx:m,def:T,ruleStack:g,occurrenceStack:A};d.push(I)}else if(R instanceof Ie){const $=new F({terminalType:R.separator}),T=new j({definition:[$].concat(R.definition),idx:R.idx}),I=R.definition.concat([T],J(h)),G={idx:m,def:I,ruleStack:g,occurrenceStack:A};d.push(G)}else if(R instanceof me){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T=new F({terminalType:R.separator}),I=new j({definition:[T].concat(R.definition),idx:R.idx}),G=R.definition.concat([I],J(h)),ie={idx:m,def:G,ruleStack:g,occurrenceStack:A};d.push(ie)}else if(R instanceof j){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T=new j({definition:R.definition,idx:R.idx}),I=R.definition.concat([T],J(h)),G={idx:m,def:I,ruleStack:g,occurrenceStack:A};d.push(G)}else if(R instanceof ge)for(let $=R.definition.length-1;$>=0;$--){const T=R.definition[$],I={idx:m,def:T.definition.concat(J(h)),ruleStack:g,occurrenceStack:A};d.push(I),d.push(a)}else if(R instanceof pe)d.push({idx:m,def:R.definition.concat(J(h)),ruleStack:g,occurrenceStack:A});else if(R instanceof Vt)d.push($h(R,m,g,A));else throw Error("non exhaustive match")}return c}function $h(r,e,t,n){const i=ne(t);i.push(r.name);const s=ne(n);return s.push(1),{idx:e,def:r.definition,ruleStack:i,occurrenceStack:s}}var K;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(K||(K={}));function ta(r){if(r instanceof re||r==="Option")return K.OPTION;if(r instanceof j||r==="Repetition")return K.REPETITION;if(r instanceof xe||r==="RepetitionMandatory")return K.REPETITION_MANDATORY;if(r instanceof Ie||r==="RepetitionMandatoryWithSeparator")return K.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof me||r==="RepetitionWithSeparator")return K.REPETITION_WITH_SEPARATOR;if(r instanceof ge||r==="Alternation")return K.ALTERNATION;throw Error("non exhaustive match")}function Ba(r){const{occurrence:e,rule:t,prodType:n,maxLookahead:i}=r,s=ta(n);return s===K.ALTERNATION?ai(e,t,i):oi(e,t,s,i)}function Eh(r,e,t,n,i,s){const a=ai(r,e,t),o=Tu(a)?On:Gr;return s(a,n,o,i)}function kh(r,e,t,n,i,s){const a=oi(r,e,i,t),o=Tu(a)?On:Gr;return s(a[0],o,n)}function Ah(r,e,t,n){const i=r.length,s=Oe(r,a=>Oe(a,o=>o.length===1));if(e)return function(a){const o=k(a,l=>l.GATE);for(let l=0;l<i;l++){const u=r[l],c=u.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<c;f++){const h=u[f],m=h.length;for(let g=0;g<m;g++){const A=this.LA(g+1);if(t(A,h[g])===!1)continue e}return l}}};if(s&&!n){const a=k(r,l=>Ne(l)),o=le(a,(l,u,c)=>(C(u,d=>{N(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=c),C(d.categoryMatches,f=>{N(l,f)||(l[f]=c)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=r[a],l=o.length;e:for(let u=0;u<l;u++){const c=o[u],d=c.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(t(h,c[f])===!1)continue e}return a}}}}function xh(r,e,t){const n=Oe(r,s=>s.length===1),i=r.length;if(n&&!t){const s=Ne(r);if(s.length===1&&D(s[0].categoryMatches)){const a=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{const a=le(s,(o,l,u)=>(o[l.tokenTypeIdx]=!0,C(l.categoryMatches,c=>{o[c]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=r[s],o=a.length;for(let l=0;l<o;l++){const u=this.LA(l+1);if(e(u,a[l])===!1)continue e}return!0}return!1}}class Ih extends ni{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,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(i),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,K.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,K.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,K.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,K.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,K.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}}class gu extends jt{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,K.OPTION)}visitRepetition(e){this.checkIsTarget(e,K.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,K.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,K.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,K.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,K.ALTERNATION)}}function Va(r){const e=new Array(r);for(let t=0;t<r;t++)e[t]=[];return e}function ki(r){let e=[""];for(let t=0;t<r.length;t++){const n=r[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+n.tokenTypeIdx);for(let o=0;o<n.categoryMatches.length;o++){const l="_"+n.categoryMatches[o];i.push(a+l)}}e=i}return e}function Sh(r,e,t){for(let n=0;n<r.length;n++){if(n===t)continue;const i=r[n];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function yu(r,e){const t=k(r,a=>hs([a],1)),n=Va(t.length),i=k(t,a=>{const o={};return C(a,l=>{const u=ki(l.partialPath);C(u,c=>{o[c]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=Va(o.length);for(let l=0;l<o.length;l++){const u=o[l];for(let c=0;c<u.length;c++){const d=u[c].partialPath,f=u[c].suffixDef,h=ki(d);if(Sh(i,h,l)||D(f)||d.length===e){const m=n[l];if(ps(m,d)===!1){m.push(d);for(let g=0;g<h.length;g++){const A=h[g];i[l][A]=!0}}}else{const m=hs(f,a+1,d);s[l]=s[l].concat(m),C(m,g=>{const A=ki(g.partialPath);C(A,R=>{i[l][R]=!0})})}}}}return n}function ai(r,e,t,n){const i=new gu(r,K.ALTERNATION,n);return e.accept(i),yu(i.result,t)}function oi(r,e,t,n){const i=new gu(r,t);e.accept(i);const s=i.result,a=new Ih(e,r,t).startWalking(),o=new pe({definition:s}),l=new pe({definition:a});return yu([o,l],n)}function ps(r,e){e:for(let t=0;t<r.length;t++){const n=r[t];if(n.length===e.length){for(let i=0;i<n.length;i++){const s=e[i],a=n[i];if(!(s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0))continue e}return!0}}return!1}function Ch(r,e){return r.length<e.length&&Oe(r,(t,n)=>{const i=e[n];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Tu(r){return Oe(r,e=>Oe(e,t=>Oe(t,n=>D(n.categoryMatches))))}function Nh(r){const e=r.lookaheadStrategy.validate({rules:r.rules,tokenTypes:r.tokenTypes,grammarName:r.grammarName});return k(e,t=>Object.assign({type:ce.CUSTOM_LOOKAHEAD_VALIDATION},t))}function wh(r,e,t,n){const i=Ee(r,l=>Lh(l,t)),s=Vh(r,e,t),a=Ee(r,l=>Uh(l,t)),o=Ee(r,l=>Oh(l,r,n,t));return i.concat(s,a,o)}function Lh(r,e){const t=new _h;r.accept(t);const n=t.allProductions,i=ld(n,bh),s=Me(i,a=>a.length>1);return k(z(s),a=>{const o=Pe(a),l=e.buildDuplicateFoundError(r,a),u=Ue(o),c={message:l,type:ce.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:o.idx},d=vu(o);return d&&(c.parameter=d),c})}function bh(r){return`${Ue(r)}_#_${r.idx}_#_${vu(r)}`}function vu(r){return r instanceof F?r.terminalType.name:r instanceof ue?r.nonTerminalName:""}class _h extends jt{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 Oh(r,e,t,n){const i=[];if(le(e,(s,a)=>a.name===r.name?s+1:s,0)>1){const s=n.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});i.push({message:s,type:ce.DUPLICATE_RULE_NAME,ruleName:r.name})}return i}function Ph(r,e,t){const n=[];let i;return de(e,r)||(i=`Invalid rule override, rule: ->${r}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,n.push({message:i,type:ce.INVALID_RULE_OVERRIDE,ruleName:r})),n}function Ru(r,e,t,n=[]){const i=[],s=Tn(e.definition);if(D(s))return[];{const a=r.name;de(s,r)&&i.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:n}),type:ce.LEFT_RECURSION,ruleName:a});const o=Qn(s,n.concat([r])),l=Ee(o,u=>{const c=ne(n);return c.push(u),Ru(r,u,t,c)});return i.concat(l)}}function Tn(r){let e=[];if(D(r))return e;const t=Pe(r);if(t instanceof ue)e.push(t.referencedRule);else if(t instanceof pe||t instanceof re||t instanceof xe||t instanceof Ie||t instanceof me||t instanceof j)e=e.concat(Tn(t.definition));else if(t instanceof ge)e=Ne(k(t.definition,s=>Tn(s.definition)));else if(!(t instanceof F))throw Error("non exhaustive match");const n=bn(t),i=r.length>1;if(n&&i){const s=J(r);return e.concat(Tn(s))}else return e}class ra extends jt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Mh(r,e){const t=new ra;r.accept(t);const n=t.alternations;return Ee(n,i=>{const s=br(i.definition);return Ee(s,(a,o)=>{const l=mu([a],[],Gr,1);return D(l)?[{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:i,emptyChoiceIdx:o}),type:ce.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:i.idx,alternative:o+1}]:[]})})}function Dh(r,e,t){const n=new ra;r.accept(n);let i=n.alternations;return i=Jn(i,s=>s.ignoreAmbiguities===!0),Ee(i,s=>{const a=s.idx,o=s.maxLookahead||e,l=ai(a,r,o,s),u=Kh(l,s,r,t),c=Bh(l,s,r,t);return u.concat(c)})}class Fh extends jt{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 Uh(r,e){const t=new ra;r.accept(t);const n=t.alternations;return Ee(n,i=>i.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:i}),type:ce.TOO_MANY_ALTS,ruleName:r.name,occurrence:i.idx}]:[])}function Gh(r,e,t){const n=[];return C(r,i=>{const s=new Fh;i.accept(s);const a=s.allProductions;C(a,o=>{const l=ta(o),u=o.maxLookahead||e,c=o.idx,d=oi(c,i,l,u)[0];if(D(Ne(d))){const f=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});n.push({message:f,type:ce.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function Kh(r,e,t,n){const i=[],s=le(r,(a,o,l)=>(e.definition[l].ignoreAmbiguities===!0||C(o,u=>{const c=[l];C(r,(d,f)=>{l!==f&&ps(d,u)&&e.definition[f].ignoreAmbiguities!==!0&&c.push(f)}),c.length>1&&!ps(i,u)&&(i.push(u),a.push({alts:c,path:u}))}),a),[]);return k(s,a=>{const o=k(a.alts,l=>l+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:o,prefixPath:a.path}),type:ce.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:a.alts}})}function Bh(r,e,t,n){const i=le(r,(s,a,o)=>{const l=k(a,u=>({idx:o,path:u}));return s.concat(l)},[]);return Mr(Ee(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];const a=s.idx,o=s.path,l=Ae(i,u=>e.definition[u.idx].ignoreAmbiguities!==!0&&u.idx<a&&Ch(u.path,o));return k(l,u=>{const c=[u.idx+1,a+1],d=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:c,prefixPath:u.path}),type:ce.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:c}})}))}function Vh(r,e,t){const n=[],i=k(e,s=>s.name);return C(r,s=>{const a=s.name;if(de(i,a)){const o=t.buildNamespaceConflictError(s);n.push({message:o,type:ce.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),n}function jh(r){const e=Bs(r,{errMsgProvider:ph}),t={};return C(r.rules,n=>{t[n.name]=n}),mh(t,e.errMsgProvider)}function Hh(r){return r=Bs(r,{errMsgProvider:gt}),wh(r.rules,r.tokenTypes,r.errMsgProvider,r.grammarName)}const $u="MismatchedTokenException",Eu="NoViableAltException",ku="EarlyExitException",Au="NotAllInputParsedException",xu=[$u,Eu,ku,Au];Object.freeze(xu);function Pn(r){return de(xu,r.name)}class li 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)}}class Iu extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=$u}}class Wh extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Eu}}class zh extends li{constructor(e,t){super(e,t),this.name=Au}}class Yh extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=ku}}const Ai={},Su="InRuleRecoveryException";class qh extends Error{constructor(e){super(e),this.name=Su}}class Xh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=N(e,"recoveryEnabled")?e.recoveryEnabled:Qe.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Qh)}getTokenToInsert(e){const t=ea(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const u=this.LA(1);let c=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:f,ruleName:this.getCurrRuleFullName()}),m=new Iu(h,u,this.LA(0));m.resyncedTokens=br(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(c,i)){d();return}else if(n.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(c,s)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,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){const 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)){const n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new qh("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||D(t))return!1;const n=this.LA(1);return Mt(t,i=>this.tokenMatcher(n,i))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(t);return de(n,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const i=Mt(e,s=>pu(t,s));if(i!==void 0)return i;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ai;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return k(e,(n,i)=>i===0?Ai:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=k(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return Ne(e)}getFollowSetFromFollowKey(e){if(e===Ai)return[tt];const t=e.ruleName+e.idxInCallingRule+nu+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,tt)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return br(t)}attemptInRepetitionRecovery(e,t,n,i,s,a,o){}getCurrentGrammarPath(e,t){const n=this.getHumanReadableRuleStack(),i=ne(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return k(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function Qh(r,e,t,n,i,s,a){const o=this.getKeyForAutomaticLookahead(n,i);let l=this.firstAfterRepMap[o];if(l===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=tt,c=1),!(u===void 0||c===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,c,a)&&this.tryInRepetitionRecovery(r,e,t,u)}const Jh=4,it=8,Cu=1<<it,Nu=2<<it,ms=3<<it,gs=4<<it,ys=5<<it,vn=6<<it;function xi(r,e,t){return t|e|r}class na{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:Qe.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(D(t)){const n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...i,...s]}return t}validateNoLeftRecursion(e){return Ee(e,t=>Ru(t,t,gt))}validateEmptyOrAlternatives(e){return Ee(e,t=>Mh(t,gt))}validateAmbiguousAlternationAlternatives(e,t){return Ee(e,n=>Dh(n,t,gt))}validateSomeNonEmptyLookaheadPath(e,t){return Gh(e,t,gt)}buildLookaheadForAlternation(e){return Eh(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Ah)}buildLookaheadForOptional(e){return kh(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,ta(e.prodType),xh)}}class Zh{initLooksAhead(e){this.dynamicTokensEnabled=N(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Qe.dynamicTokensEnabled,this.maxLookahead=N(e,"maxLookahead")?e.maxLookahead:Qe.maxLookahead,this.lookaheadStrategy=N(e,"lookaheadStrategy")?e.lookaheadStrategy:new na({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){C(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:n,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=tp(t);C(n,u=>{const c=u.idx===0?"":u.idx;this.TRACE_INIT(`${Ue(u)}${c}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:t,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=xi(this.fullRuleNameToShort[t.name],Cu,u.idx);this.setLaFuncCache(f,d)})}),C(i,u=>{this.computeLookaheadFunc(t,u.idx,ms,"Repetition",u.maxLookahead,Ue(u))}),C(s,u=>{this.computeLookaheadFunc(t,u.idx,Nu,"Option",u.maxLookahead,Ue(u))}),C(a,u=>{this.computeLookaheadFunc(t,u.idx,gs,"RepetitionMandatory",u.maxLookahead,Ue(u))}),C(o,u=>{this.computeLookaheadFunc(t,u.idx,vn,"RepetitionMandatoryWithSeparator",u.maxLookahead,Ue(u))}),C(l,u=>{this.computeLookaheadFunc(t,u.idx,ys,"RepetitionWithSeparator",u.maxLookahead,Ue(u))})})})}computeLookaheadFunc(e,t,n,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=xi(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const n=this.getLastExplicitRuleShortName();return xi(n,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class ep extends jt{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const nn=new ep;function tp(r){nn.reset(),r.accept(nn);const e=nn.dslMethods;return nn.reset(),e}function ja(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}function Ha(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}function rp(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}function np(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}const ip="name";function wu(r,e){Object.defineProperty(r,ip,{enumerable:!1,configurable:!0,writable:!1,value:e})}function sp(r,e){const t=Ot(r),n=t.length;for(let i=0;i<n;i++){const s=t[i],a=r[s],o=a.length;for(let l=0;l<o;l++){const u=a[l];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function ap(r,e){const t=function(){};wu(t,r+"BaseSemantics");const n={visit:function(i,s){if(te(i)&&(i=i[0]),!qe(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=lp(this,e);if(!D(i)){const s=k(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
87
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(r){return"deprecated"},buildDuplicateRuleNameError(r){let e;return r.topLevelRule instanceof Vt?e=r.topLevelRule.name:e=r.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${r.grammarName}<-`}};function mh(r,e){const t=new gh(r,e);return t.resolveRefs(),t.errors}class gh extends jt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){C(z(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:ce.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class yh extends ni{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=ne(this.path.ruleStack).reverse(),this.occurrenceStack=ne(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){const i=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){D(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Th extends yh{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){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(n),s=new pe({definition:i});this.possibleTokTypes=Ur(s),this.found=!0}}}class si extends ni{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}}class vh extends si{walkMany(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,n)}}class Ga extends si{walkManySep(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,n)}}class Rh extends si{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,n)}}class Ba extends si{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const i=Pe(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,n)}}function hs(r,e,t=[]){t=ne(t);let n=[],i=0;function s(o){return o.concat(J(r,i+1))}function a(o){const l=hs(s(o),e,t);return n.concat(l)}for(;t.length<e&&i<r.length;){const o=r[i];if(o instanceof pe||o instanceof ue)return a(o.definition);if(o instanceof re)n=a(o.definition);else if(o instanceof xe){const l=o.definition.concat([new j({definition:o.definition})]);return a(l)}else if(o instanceof Ie){const l=[new pe({definition:o.definition}),new j({definition:[new F({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof me){const l=o.definition.concat([new j({definition:[new F({terminalType:o.separator})].concat(o.definition)})]);n=a(l)}else if(o instanceof j){const l=o.definition.concat([new j({definition:o.definition})]);n=a(l)}else{if(o instanceof ge)return C(o.definition,l=>{D(l.definition)===!1&&(n=a(l.definition))}),n;if(o instanceof F)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:t,suffixDef:J(r,i)}),n}function mu(r,e,t,n){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,u=l-n-1,c=[],d=[];for(d.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!D(d);){const f=d.pop();if(f===a){o&&Pt(d).idx<=u&&d.pop();continue}const h=f.def,m=f.idx,g=f.ruleStack,A=f.occurrenceStack;if(D(h))continue;const R=h[0];if(R===i){const $={idx:m,def:J(h),ruleStack:br(g),occurrenceStack:br(A)};d.push($)}else if(R instanceof F)if(m<l-1){const $=m+1,T=e[$];if(t(T,R.terminalType)){const I={idx:$,def:J(h),ruleStack:g,occurrenceStack:A};d.push(I)}}else if(m===l-1)c.push({nextTokenType:R.terminalType,nextTokenOccurrence:R.idx,ruleStack:g,occurrenceStack:A}),o=!0;else throw Error("non exhaustive match");else if(R instanceof ue){const $=ne(g);$.push(R.nonTerminalName);const T=ne(A);T.push(R.idx);const I={idx:m,def:R.definition.concat(s,J(h)),ruleStack:$,occurrenceStack:T};d.push(I)}else if(R instanceof re){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T={idx:m,def:R.definition.concat(J(h)),ruleStack:g,occurrenceStack:A};d.push(T)}else if(R instanceof xe){const $=new j({definition:R.definition,idx:R.idx}),T=R.definition.concat([$],J(h)),I={idx:m,def:T,ruleStack:g,occurrenceStack:A};d.push(I)}else if(R instanceof Ie){const $=new F({terminalType:R.separator}),T=new j({definition:[$].concat(R.definition),idx:R.idx}),I=R.definition.concat([T],J(h)),G={idx:m,def:I,ruleStack:g,occurrenceStack:A};d.push(G)}else if(R instanceof me){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T=new F({terminalType:R.separator}),I=new j({definition:[T].concat(R.definition),idx:R.idx}),G=R.definition.concat([I],J(h)),ie={idx:m,def:G,ruleStack:g,occurrenceStack:A};d.push(ie)}else if(R instanceof j){const $={idx:m,def:J(h),ruleStack:g,occurrenceStack:A};d.push($),d.push(a);const T=new j({definition:R.definition,idx:R.idx}),I=R.definition.concat([T],J(h)),G={idx:m,def:I,ruleStack:g,occurrenceStack:A};d.push(G)}else if(R instanceof ge)for(let $=R.definition.length-1;$>=0;$--){const T=R.definition[$],I={idx:m,def:T.definition.concat(J(h)),ruleStack:g,occurrenceStack:A};d.push(I),d.push(a)}else if(R instanceof pe)d.push({idx:m,def:R.definition.concat(J(h)),ruleStack:g,occurrenceStack:A});else if(R instanceof Vt)d.push($h(R,m,g,A));else throw Error("non exhaustive match")}return c}function $h(r,e,t,n){const i=ne(t);i.push(r.name);const s=ne(n);return s.push(1),{idx:e,def:r.definition,ruleStack:i,occurrenceStack:s}}var B;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(B||(B={}));function ta(r){if(r instanceof re||r==="Option")return B.OPTION;if(r instanceof j||r==="Repetition")return B.REPETITION;if(r instanceof xe||r==="RepetitionMandatory")return B.REPETITION_MANDATORY;if(r instanceof Ie||r==="RepetitionMandatoryWithSeparator")return B.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof me||r==="RepetitionWithSeparator")return B.REPETITION_WITH_SEPARATOR;if(r instanceof ge||r==="Alternation")return B.ALTERNATION;throw Error("non exhaustive match")}function Ka(r){const{occurrence:e,rule:t,prodType:n,maxLookahead:i}=r,s=ta(n);return s===B.ALTERNATION?ai(e,t,i):oi(e,t,s,i)}function Eh(r,e,t,n,i,s){const a=ai(r,e,t),o=Tu(a)?On:Gr;return s(a,n,o,i)}function kh(r,e,t,n,i,s){const a=oi(r,e,i,t),o=Tu(a)?On:Gr;return s(a[0],o,n)}function Ah(r,e,t,n){const i=r.length,s=Oe(r,a=>Oe(a,o=>o.length===1));if(e)return function(a){const o=k(a,l=>l.GATE);for(let l=0;l<i;l++){const u=r[l],c=u.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<c;f++){const h=u[f],m=h.length;for(let g=0;g<m;g++){const A=this.LA(g+1);if(t(A,h[g])===!1)continue e}return l}}};if(s&&!n){const a=k(r,l=>Ne(l)),o=le(a,(l,u,c)=>(C(u,d=>{N(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=c),C(d.categoryMatches,f=>{N(l,f)||(l[f]=c)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=r[a],l=o.length;e:for(let u=0;u<l;u++){const c=o[u],d=c.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(t(h,c[f])===!1)continue e}return a}}}}function xh(r,e,t){const n=Oe(r,s=>s.length===1),i=r.length;if(n&&!t){const s=Ne(r);if(s.length===1&&D(s[0].categoryMatches)){const a=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{const a=le(s,(o,l,u)=>(o[l.tokenTypeIdx]=!0,C(l.categoryMatches,c=>{o[c]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=r[s],o=a.length;for(let l=0;l<o;l++){const u=this.LA(l+1);if(e(u,a[l])===!1)continue e}return!0}return!1}}class Ih extends ni{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,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(i),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,B.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,B.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,B.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,B.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,B.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}}class gu extends jt{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,B.OPTION)}visitRepetition(e){this.checkIsTarget(e,B.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,B.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,B.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,B.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,B.ALTERNATION)}}function Va(r){const e=new Array(r);for(let t=0;t<r;t++)e[t]=[];return e}function ki(r){let e=[""];for(let t=0;t<r.length;t++){const n=r[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+n.tokenTypeIdx);for(let o=0;o<n.categoryMatches.length;o++){const l="_"+n.categoryMatches[o];i.push(a+l)}}e=i}return e}function Sh(r,e,t){for(let n=0;n<r.length;n++){if(n===t)continue;const i=r[n];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function yu(r,e){const t=k(r,a=>hs([a],1)),n=Va(t.length),i=k(t,a=>{const o={};return C(a,l=>{const u=ki(l.partialPath);C(u,c=>{o[c]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=Va(o.length);for(let l=0;l<o.length;l++){const u=o[l];for(let c=0;c<u.length;c++){const d=u[c].partialPath,f=u[c].suffixDef,h=ki(d);if(Sh(i,h,l)||D(f)||d.length===e){const m=n[l];if(ps(m,d)===!1){m.push(d);for(let g=0;g<h.length;g++){const A=h[g];i[l][A]=!0}}}else{const m=hs(f,a+1,d);s[l]=s[l].concat(m),C(m,g=>{const A=ki(g.partialPath);C(A,R=>{i[l][R]=!0})})}}}}return n}function ai(r,e,t,n){const i=new gu(r,B.ALTERNATION,n);return e.accept(i),yu(i.result,t)}function oi(r,e,t,n){const i=new gu(r,t);e.accept(i);const s=i.result,a=new Ih(e,r,t).startWalking(),o=new pe({definition:s}),l=new pe({definition:a});return yu([o,l],n)}function ps(r,e){e:for(let t=0;t<r.length;t++){const n=r[t];if(n.length===e.length){for(let i=0;i<n.length;i++){const s=e[i],a=n[i];if(!(s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0))continue e}return!0}}return!1}function Ch(r,e){return r.length<e.length&&Oe(r,(t,n)=>{const i=e[n];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Tu(r){return Oe(r,e=>Oe(e,t=>Oe(t,n=>D(n.categoryMatches))))}function Nh(r){const e=r.lookaheadStrategy.validate({rules:r.rules,tokenTypes:r.tokenTypes,grammarName:r.grammarName});return k(e,t=>Object.assign({type:ce.CUSTOM_LOOKAHEAD_VALIDATION},t))}function wh(r,e,t,n){const i=Ee(r,l=>Lh(l,t)),s=Vh(r,e,t),a=Ee(r,l=>Uh(l,t)),o=Ee(r,l=>Oh(l,r,n,t));return i.concat(s,a,o)}function Lh(r,e){const t=new _h;r.accept(t);const n=t.allProductions,i=ld(n,bh),s=Me(i,a=>a.length>1);return k(z(s),a=>{const o=Pe(a),l=e.buildDuplicateFoundError(r,a),u=Ue(o),c={message:l,type:ce.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:o.idx},d=vu(o);return d&&(c.parameter=d),c})}function bh(r){return`${Ue(r)}_#_${r.idx}_#_${vu(r)}`}function vu(r){return r instanceof F?r.terminalType.name:r instanceof ue?r.nonTerminalName:""}class _h extends jt{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 Oh(r,e,t,n){const i=[];if(le(e,(s,a)=>a.name===r.name?s+1:s,0)>1){const s=n.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});i.push({message:s,type:ce.DUPLICATE_RULE_NAME,ruleName:r.name})}return i}function Ph(r,e,t){const n=[];let i;return de(e,r)||(i=`Invalid rule override, rule: ->${r}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,n.push({message:i,type:ce.INVALID_RULE_OVERRIDE,ruleName:r})),n}function Ru(r,e,t,n=[]){const i=[],s=Tn(e.definition);if(D(s))return[];{const a=r.name;de(s,r)&&i.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:n}),type:ce.LEFT_RECURSION,ruleName:a});const o=Qn(s,n.concat([r])),l=Ee(o,u=>{const c=ne(n);return c.push(u),Ru(r,u,t,c)});return i.concat(l)}}function Tn(r){let e=[];if(D(r))return e;const t=Pe(r);if(t instanceof ue)e.push(t.referencedRule);else if(t instanceof pe||t instanceof re||t instanceof xe||t instanceof Ie||t instanceof me||t instanceof j)e=e.concat(Tn(t.definition));else if(t instanceof ge)e=Ne(k(t.definition,s=>Tn(s.definition)));else if(!(t instanceof F))throw Error("non exhaustive match");const n=bn(t),i=r.length>1;if(n&&i){const s=J(r);return e.concat(Tn(s))}else return e}class ra extends jt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Mh(r,e){const t=new ra;r.accept(t);const n=t.alternations;return Ee(n,i=>{const s=br(i.definition);return Ee(s,(a,o)=>{const l=mu([a],[],Gr,1);return D(l)?[{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:i,emptyChoiceIdx:o}),type:ce.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:i.idx,alternative:o+1}]:[]})})}function Dh(r,e,t){const n=new ra;r.accept(n);let i=n.alternations;return i=Jn(i,s=>s.ignoreAmbiguities===!0),Ee(i,s=>{const a=s.idx,o=s.maxLookahead||e,l=ai(a,r,o,s),u=Bh(l,s,r,t),c=Kh(l,s,r,t);return u.concat(c)})}class Fh extends jt{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 Uh(r,e){const t=new ra;r.accept(t);const n=t.alternations;return Ee(n,i=>i.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:i}),type:ce.TOO_MANY_ALTS,ruleName:r.name,occurrence:i.idx}]:[])}function Gh(r,e,t){const n=[];return C(r,i=>{const s=new Fh;i.accept(s);const a=s.allProductions;C(a,o=>{const l=ta(o),u=o.maxLookahead||e,c=o.idx,d=oi(c,i,l,u)[0];if(D(Ne(d))){const f=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});n.push({message:f,type:ce.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function Bh(r,e,t,n){const i=[],s=le(r,(a,o,l)=>(e.definition[l].ignoreAmbiguities===!0||C(o,u=>{const c=[l];C(r,(d,f)=>{l!==f&&ps(d,u)&&e.definition[f].ignoreAmbiguities!==!0&&c.push(f)}),c.length>1&&!ps(i,u)&&(i.push(u),a.push({alts:c,path:u}))}),a),[]);return k(s,a=>{const o=k(a.alts,l=>l+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:o,prefixPath:a.path}),type:ce.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:a.alts}})}function Kh(r,e,t,n){const i=le(r,(s,a,o)=>{const l=k(a,u=>({idx:o,path:u}));return s.concat(l)},[]);return Mr(Ee(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];const a=s.idx,o=s.path,l=Ae(i,u=>e.definition[u.idx].ignoreAmbiguities!==!0&&u.idx<a&&Ch(u.path,o));return k(l,u=>{const c=[u.idx+1,a+1],d=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:c,prefixPath:u.path}),type:ce.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:c}})}))}function Vh(r,e,t){const n=[],i=k(e,s=>s.name);return C(r,s=>{const a=s.name;if(de(i,a)){const o=t.buildNamespaceConflictError(s);n.push({message:o,type:ce.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),n}function jh(r){const e=Ks(r,{errMsgProvider:ph}),t={};return C(r.rules,n=>{t[n.name]=n}),mh(t,e.errMsgProvider)}function Hh(r){return r=Ks(r,{errMsgProvider:gt}),wh(r.rules,r.tokenTypes,r.errMsgProvider,r.grammarName)}const $u="MismatchedTokenException",Eu="NoViableAltException",ku="EarlyExitException",Au="NotAllInputParsedException",xu=[$u,Eu,ku,Au];Object.freeze(xu);function Pn(r){return de(xu,r.name)}class li 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)}}class Iu extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=$u}}class Wh extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Eu}}class zh extends li{constructor(e,t){super(e,t),this.name=Au}}class Yh extends li{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=ku}}const Ai={},Su="InRuleRecoveryException";class qh extends Error{constructor(e){super(e),this.name=Su}}class Xh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=N(e,"recoveryEnabled")?e.recoveryEnabled:Qe.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Qh)}getTokenToInsert(e){const t=ea(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const u=this.LA(1);let c=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:f,ruleName:this.getCurrRuleFullName()}),m=new Iu(h,u,this.LA(0));m.resyncedTokens=br(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(c,i)){d();return}else if(n.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(c,s)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,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){const 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)){const n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new qh("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||D(t))return!1;const n=this.LA(1);return Mt(t,i=>this.tokenMatcher(n,i))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(t);return de(n,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const i=Mt(e,s=>pu(t,s));if(i!==void 0)return i;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ai;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return k(e,(n,i)=>i===0?Ai:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=k(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return Ne(e)}getFollowSetFromFollowKey(e){if(e===Ai)return[tt];const t=e.ruleName+e.idxInCallingRule+nu+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,tt)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return br(t)}attemptInRepetitionRecovery(e,t,n,i,s,a,o){}getCurrentGrammarPath(e,t){const n=this.getHumanReadableRuleStack(),i=ne(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return k(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function Qh(r,e,t,n,i,s,a){const o=this.getKeyForAutomaticLookahead(n,i);let l=this.firstAfterRepMap[o];if(l===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=tt,c=1),!(u===void 0||c===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,c,a)&&this.tryInRepetitionRecovery(r,e,t,u)}const Jh=4,it=8,Cu=1<<it,Nu=2<<it,ms=3<<it,gs=4<<it,ys=5<<it,vn=6<<it;function xi(r,e,t){return t|e|r}class na{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:Qe.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(D(t)){const n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...i,...s]}return t}validateNoLeftRecursion(e){return Ee(e,t=>Ru(t,t,gt))}validateEmptyOrAlternatives(e){return Ee(e,t=>Mh(t,gt))}validateAmbiguousAlternationAlternatives(e,t){return Ee(e,n=>Dh(n,t,gt))}validateSomeNonEmptyLookaheadPath(e,t){return Gh(e,t,gt)}buildLookaheadForAlternation(e){return Eh(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Ah)}buildLookaheadForOptional(e){return kh(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,ta(e.prodType),xh)}}class Zh{initLooksAhead(e){this.dynamicTokensEnabled=N(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Qe.dynamicTokensEnabled,this.maxLookahead=N(e,"maxLookahead")?e.maxLookahead:Qe.maxLookahead,this.lookaheadStrategy=N(e,"lookaheadStrategy")?e.lookaheadStrategy:new na({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){C(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:n,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=tp(t);C(n,u=>{const c=u.idx===0?"":u.idx;this.TRACE_INIT(`${Ue(u)}${c}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:t,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=xi(this.fullRuleNameToShort[t.name],Cu,u.idx);this.setLaFuncCache(f,d)})}),C(i,u=>{this.computeLookaheadFunc(t,u.idx,ms,"Repetition",u.maxLookahead,Ue(u))}),C(s,u=>{this.computeLookaheadFunc(t,u.idx,Nu,"Option",u.maxLookahead,Ue(u))}),C(a,u=>{this.computeLookaheadFunc(t,u.idx,gs,"RepetitionMandatory",u.maxLookahead,Ue(u))}),C(o,u=>{this.computeLookaheadFunc(t,u.idx,vn,"RepetitionMandatoryWithSeparator",u.maxLookahead,Ue(u))}),C(l,u=>{this.computeLookaheadFunc(t,u.idx,ys,"RepetitionWithSeparator",u.maxLookahead,Ue(u))})})})}computeLookaheadFunc(e,t,n,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=xi(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const n=this.getLastExplicitRuleShortName();return xi(n,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class ep extends jt{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const nn=new ep;function tp(r){nn.reset(),r.accept(nn);const e=nn.dslMethods;return nn.reset(),e}function ja(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}function Ha(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}function rp(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}function np(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}const ip="name";function wu(r,e){Object.defineProperty(r,ip,{enumerable:!1,configurable:!0,writable:!1,value:e})}function sp(r,e){const t=Ot(r),n=t.length;for(let i=0;i<n;i++){const s=t[i],a=r[s],o=a.length;for(let l=0;l<o;l++){const u=a[l];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function ap(r,e){const t=function(){};wu(t,r+"BaseSemantics");const n={visit:function(i,s){if(te(i)&&(i=i[0]),!qe(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=lp(this,e);if(!D(i)){const s=k(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
88
88
  ${s.join(`
89
89
 
90
90
  `).replace(/\n/g,`
@@ -94,27 +94,27 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleN
94
94
  Note that the first argument for the parser constructor
95
95
  is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
96
96
  See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
97
- For Further details.`)}if(te(e))this.tokensMap=le(e,(s,a)=>(s[a.name]=a,s),{});else if(N(e,"modes")&&Oe(Ne(z(e.modes)),dh)){const s=Ne(z(e.modes)),a=Vs(s);this.tokensMap=le(a,(o,l)=>(o[l.name]=l,o),{})}else if(Fc(e))this.tokensMap=ne(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=tt;const n=N(e,"modes")?Ne(z(e.modes)):z(e),i=Oe(n,s=>D(s.categoryMatches));this.tokenMatcher=i?On:Gr,Kr(z(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'
98
- Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=N(n,"resyncEnabled")?n.resyncEnabled:Fn.resyncEnabled,s=N(n,"recoveryValueFunc")?n.recoveryValueFunc:Fn.recoveryValueFunc,a=this.ruleShortNameIdx<<Jh+it;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...l){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,l);const u=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(u),u}catch(u){return this.invokeRuleCatch(u,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...l){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,l)}catch(u){return this.invokeRuleCatch(u,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Pn(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return n(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),n(e);throw a}}else throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(Nu,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(gs,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,K.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,gs,e,Rh)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(vn,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,Ka],a,vn,e,Ka)}else throw this.raiseEarlyExitException(e,K.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(ms,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,ms,e,vh,a)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(ys,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,Ga],a,ys,e,Ga)}}repetitionSepSecondInternal(e,t,n,i,s){for(;n();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,i,s],n,vn,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(Cu,t),i=te(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].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){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new zh(t,e))}}subruleInternal(e,t,n){let i;try{const s=n!==void 0?n.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,n,e.ruleName)}}subruleInternalError(e,t,n){throw Pn(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 i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,n)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,t,n){let i;const s=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Iu(i,t,s))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Su?n:s}}else throw n}saveRecogState(){const e=this.errors,t=ne(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(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),tt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class pp{initErrorHandler(e){this._errors=[],this.errorMessageProvider=N(e,"errorMessageProvider")?e.errorMessageProvider:Qe.errorMessageProvider}SAVE_ERROR(e){if(Pn(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ne(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ne(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],a=oi(e,s,t,this.maxLookahead)[0],o=[];for(let u=1;u<=this.maxLookahead;u++)o.push(this.LA(u));const l=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new Yh(l,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],s=ai(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Wh(l,this.LA(1),o))}}class mp{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if(qe(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return mu([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Pe(e.ruleStack),n=this.getGAstProductions()[t];return new Th(n,e).startWalking()}}const ui={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ui);const Wa=!0,za=Math.pow(2,it)-1,Lu=hu({name:"RECORDING_PHASE_TOKEN",pattern:fe.NA});Kr([Lu]);const bu=ea(Lu,`This IToken indicates the Parser is in Recording Phase
97
+ For Further details.`)}if(te(e))this.tokensMap=le(e,(s,a)=>(s[a.name]=a,s),{});else if(N(e,"modes")&&Oe(Ne(z(e.modes)),dh)){const s=Ne(z(e.modes)),a=Vs(s);this.tokensMap=le(a,(o,l)=>(o[l.name]=l,o),{})}else if(Fc(e))this.tokensMap=ne(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=tt;const n=N(e,"modes")?Ne(z(e.modes)):z(e),i=Oe(n,s=>D(s.categoryMatches));this.tokenMatcher=i?On:Gr,Br(z(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'
98
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=N(n,"resyncEnabled")?n.resyncEnabled:Fn.resyncEnabled,s=N(n,"recoveryValueFunc")?n.recoveryValueFunc:Fn.recoveryValueFunc,a=this.ruleShortNameIdx<<Jh+it;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...l){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,l);const u=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(u),u}catch(u){return this.invokeRuleCatch(u,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...l){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,l)}catch(u){return this.invokeRuleCatch(u,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Pn(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return n(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),n(e);throw a}}else throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(Nu,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(gs,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,B.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,gs,e,Rh)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(vn,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,Ba],a,vn,e,Ba)}else throw this.raiseEarlyExitException(e,B.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(ms,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,ms,e,vh,a)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(ys,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,Ga],a,ys,e,Ga)}}repetitionSepSecondInternal(e,t,n,i,s){for(;n();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,i,s],n,vn,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(Cu,t),i=te(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].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){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new zh(t,e))}}subruleInternal(e,t,n){let i;try{const s=n!==void 0?n.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,n,e.ruleName)}}subruleInternalError(e,t,n){throw Pn(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 i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,n)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,t,n){let i;const s=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Iu(i,t,s))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Su?n:s}}else throw n}saveRecogState(){const e=this.errors,t=ne(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(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),tt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class pp{initErrorHandler(e){this._errors=[],this.errorMessageProvider=N(e,"errorMessageProvider")?e.errorMessageProvider:Qe.errorMessageProvider}SAVE_ERROR(e){if(Pn(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ne(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ne(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],a=oi(e,s,t,this.maxLookahead)[0],o=[];for(let u=1;u<=this.maxLookahead;u++)o.push(this.LA(u));const l=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new Yh(l,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],s=ai(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Wh(l,this.LA(1),o))}}class mp{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if(qe(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return mu([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Pe(e.ruleStack),n=this.getGAstProductions()[t];return new Th(n,e).startWalking()}}const ui={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ui);const Wa=!0,za=Math.pow(2,it)-1,Lu=hu({name:"RECORDING_PHASE_TOKEN",pattern:fe.NA});Br([Lu]);const bu=ea(Lu,`This IToken indicates the Parser is in Recording Phase
99
99
  See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(bu);const gp={name:`This CSTNode indicates the Parser is in Recording Phase
100
100
  See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class yp{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${t}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${t}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${t}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${t}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${t}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${t}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${t}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}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",()=>{const e=this;for(let t=0;t<10;t++){const 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 Dn}topLevelRuleRecord(e,t){try{const n=new Vt({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+`
101
101
  This error was thrown during the "grammar recording phase" For more info see:
102
102
  https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,t){return zt.call(this,re,e,t)}atLeastOneInternalRecord(e,t){zt.call(this,xe,t,e)}atLeastOneSepFirstInternalRecord(e,t){zt.call(this,Ie,t,e,Wa)}manyInternalRecord(e,t){zt.call(this,j,t,e)}manySepFirstInternalRecord(e,t){zt.call(this,me,t,e,Wa)}orInternalRecord(e,t){return Tp.call(this,e,t)}subruleInternalRecord(e,t,n){if(Mn(t),!e||N(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Ya(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
103
  inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=Pt(this.recordingProdStack),s=e.ruleName,a=new ue({idx:t,nonTerminalName:s,label:n==null?void 0:n.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?gp:ui}consumeInternalRecord(e,t,n){if(Mn(t),!du(e)){const a=new Error(`<CONSUME${Ya(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
104
  inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=Pt(this.recordingProdStack),s=new F({idx:t,terminalType:e,label:n==null?void 0:n.LABEL});return i.definition.push(s),bu}}function zt(r,e,t,n=!1){Mn(t);const i=Pt(this.recordingProdStack),s=kt(e)?e:e.DEF,a=new r({definition:[],idx:t});return n&&(a.separator=e.SEP),N(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),ui}function Tp(r,e){Mn(e);const t=Pt(this.recordingProdStack),n=te(r)===!1,i=n===!1?r:r.DEF,s=new ge({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});N(r,"MAX_LOOKAHEAD")&&(s.maxLookahead=r.MAX_LOOKAHEAD);const a=_l(i,o=>kt(o.GATE));return s.hasPredicates=a,t.definition.push(s),C(i,o=>{const l=new pe({definition:[]});s.definition.push(l),N(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:N(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),ui}function Ya(r){return r===0?"":`${r}`}function Mn(r){if(r<0||r>za){const e=new Error(`Invalid DSL Method idx value: <${r}>
105
- Idx value must be a none negative value smaller than ${za+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class vp{initPerformanceTracer(e){if(N(e,"traceInitPerf")){const 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=Qe.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);const{time:i,value:s}=tu(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function Rp(r,e){e.forEach(t=>{const n=t.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(n,i);s&&(s.get||s.set)?Object.defineProperty(r.prototype,i,s):r.prototype[i]=t.prototype[i]})})}const Dn=ea(tt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Dn);const Qe=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Lt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Fn=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var ce;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",r[r.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(ce||(ce={}));function qa(r=void 0){return function(){return r}}class Br{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{ru(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),C(this.definedRulesNames,i=>{const s=this[i].originalGrammarAction;let a;this.TRACE_INIT(`${i} Rule`,()=>{a=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=a})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=jh({rules:z(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(D(n)&&this.skipValidations===!1){const i=Hh({rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),errMsgProvider:gt,grammarName:t}),s=Nh({lookaheadStrategy:this.lookaheadStrategy,rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),D(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Cf(z(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:z(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(z(this.gastProductionsCache))})),!Br.DEFER_DEFINITION_ERRORS_HANDLING&&!D(this.definitionErrors))throw e=k(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
105
+ Idx value must be a none negative value smaller than ${za+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class vp{initPerformanceTracer(e){if(N(e,"traceInitPerf")){const 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=Qe.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);const{time:i,value:s}=tu(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function Rp(r,e){e.forEach(t=>{const n=t.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(n,i);s&&(s.get||s.set)?Object.defineProperty(r.prototype,i,s):r.prototype[i]=t.prototype[i]})})}const Dn=ea(tt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Dn);const Qe=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Lt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Fn=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var ce;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",r[r.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(ce||(ce={}));function qa(r=void 0){return function(){return r}}class Kr{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{ru(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),C(this.definedRulesNames,i=>{const s=this[i].originalGrammarAction;let a;this.TRACE_INIT(`${i} Rule`,()=>{a=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=a})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=jh({rules:z(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(D(n)&&this.skipValidations===!1){const i=Hh({rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),errMsgProvider:gt,grammarName:t}),s=Nh({lookaheadStrategy:this.lookaheadStrategy,rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),D(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Cf(z(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:z(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(z(this.gastProductionsCache))})),!Kr.DEFER_DEFINITION_ERRORS_HANDLING&&!D(this.definitionErrors))throw e=k(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
106
106
  ${e.join(`
107
107
  -------------------------------
108
108
  `)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const 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),N(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
109
109
  Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
110
110
  See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
111
- For further details.`);this.skipValidations=N(t,"skipValidations")?t.skipValidations:Qe.skipValidations}}Br.DEFER_DEFINITION_ERRORS_HANDLING=!1;Rp(Br,[Xh,Zh,cp,dp,hp,fp,pp,mp,yp,vp]);class $p extends Br{constructor(e,t=Qe){const n=ne(t);n.outputCst=!1,super(e,n)}}function Dt(r,e,t){return`${r.name}_${e}_${t}`}const rt=1,Ep=2,_u=4,Ou=5,Vr=7,kp=8,Ap=9,xp=10,Ip=11,Pu=12;class ia{constructor(e){this.target=e}isEpsilon(){return!1}}class sa extends ia{constructor(e,t){super(e),this.tokenType=t}}class Mu extends ia{constructor(e){super(e)}isEpsilon(){return!0}}class aa extends ia{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function Sp(r){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Cp(e,r);const t=r.length;for(let n=0;n<t;n++){const i=r[n],s=xt(e,i,i);s!==void 0&&Up(e,i,s)}return e}function Cp(r,e){const t=e.length;for(let n=0;n<t;n++){const i=e[n],s=X(r,i,void 0,{type:Ep}),a=X(r,i,void 0,{type:Vr});s.stop=a,r.ruleToStartState.set(i,s),r.ruleToStopState.set(i,a)}}function Du(r,e,t){return t instanceof F?oa(r,e,t.terminalType,t):t instanceof ue?Fp(r,e,t):t instanceof ge?_p(r,e,t):t instanceof re?Op(r,e,t):t instanceof j?Np(r,e,t):t instanceof me?wp(r,e,t):t instanceof xe?Lp(r,e,t):t instanceof Ie?bp(r,e,t):xt(r,e,t)}function Np(r,e,t){const n=X(r,e,t,{type:Ou});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Uu(r,e,t,i)}function wp(r,e,t){const n=X(r,e,t,{type:Ou});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t)),s=oa(r,e,t.separator,t);return Uu(r,e,t,i,s)}function Lp(r,e,t){const n=X(r,e,t,{type:_u});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Fu(r,e,t,i)}function bp(r,e,t){const n=X(r,e,t,{type:_u});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t)),s=oa(r,e,t.separator,t);return Fu(r,e,t,i,s)}function _p(r,e,t){const n=X(r,e,t,{type:rt});st(r,n);const i=k(t.definition,s=>Du(r,e,s));return Ht(r,e,n,t,...i)}function Op(r,e,t){const n=X(r,e,t,{type:rt});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Pp(r,e,t,i)}function xt(r,e,t){const n=Ae(k(t.definition,i=>Du(r,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:Dp(r,n)}function Fu(r,e,t,n,i){const s=n.left,a=n.right,o=X(r,e,t,{type:Ip});st(r,o);const l=X(r,e,t,{type:Pu});return s.loopback=o,l.loopback=o,r.decisionMap[Dt(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,W(a,o),i===void 0?(W(o,s),W(o,l)):(W(o,l),W(o,i.left),W(i.right,s)),{left:s,right:l}}function Uu(r,e,t,n,i){const s=n.left,a=n.right,o=X(r,e,t,{type:xp});st(r,o);const l=X(r,e,t,{type:Pu}),u=X(r,e,t,{type:Ap});return o.loopback=u,l.loopback=u,W(o,s),W(o,l),W(a,u),i!==void 0?(W(u,l),W(u,i.left),W(i.right,s)):W(u,o),r.decisionMap[Dt(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Pp(r,e,t,n){const i=n.left,s=n.right;return W(i,s),r.decisionMap[Dt(e,"Option",t.idx)]=i,n}function st(r,e){return r.decisionStates.push(e),e.decision=r.decisionStates.length-1,e.decision}function Ht(r,e,t,n,...i){const s=X(r,e,n,{type:kp,start:t});t.end=s;for(const o of i)o!==void 0?(W(t,o.left),W(o.right,s)):W(t,s);const a={left:t,right:s};return r.decisionMap[Dt(e,Mp(n),n.idx)]=t,a}function Mp(r){if(r instanceof ge)return"Alternation";if(r instanceof re)return"Option";if(r instanceof j)return"Repetition";if(r instanceof me)return"RepetitionWithSeparator";if(r instanceof xe)return"RepetitionMandatory";if(r instanceof Ie)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Dp(r,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof aa,u=o,c=e[s+1].left;a.left.type===rt&&a.right.type===rt&&o!==void 0&&(l&&u.followState===a.right||o.target===a.right)?(l?u.followState=c:o.target=c,Gp(r,a.right)):W(a.right,c)}const n=e[0],i=e[t-1];return{left:n.left,right:i.right}}function oa(r,e,t,n){const i=X(r,e,n,{type:rt}),s=X(r,e,n,{type:rt});return la(i,new sa(s,t)),{left:i,right:s}}function Fp(r,e,t){const n=t.referencedRule,i=r.ruleToStartState.get(n),s=X(r,e,t,{type:rt}),a=X(r,e,t,{type:rt}),o=new aa(i,n,a);return la(s,o),{left:s,right:a}}function Up(r,e,t){const n=r.ruleToStartState.get(e);W(n,t.left);const i=r.ruleToStopState.get(e);return W(t.right,i),{left:n,right:i}}function W(r,e){const t=new Mu(e);la(r,t)}function X(r,e,t,n){const i=Object.assign({atn:r,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:r.states.length},n);return r.states.push(i),i}function la(r,e){r.transitions.length===0&&(r.epsilonOnlyTransitions=e.isEpsilon()),r.transitions.push(e)}function Gp(r,e){r.states.splice(r.states.indexOf(e),1)}const Un={};class vs{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Gu(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return k(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Gu(r,e=!0){return`${e?`a${r.alt}`:""}s${r.state.stateNumber}:${r.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Kp(r,e){const t={};return n=>{const i=n.toString();let s=t[i];return s!==void 0||(s={atnStartState:r,decision:e,states:{}},t[i]=s),s}}class Ku{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;n<t;n++)e+=this.predicates[n]===!0?"1":"0";return e}}const Xa=new Ku;class Bp extends na{constructor(e){var t;super(),this.logging=(t=e==null?void 0:e.logging)!==null&&t!==void 0?t:n=>console.log(n)}initialize(e){this.atn=Sp(e.rules),this.dfas=Vp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Dt(n,"Alternation",t),u=this.atn.decisionMap[l].decision,c=k(Ba({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),d=>k(d,f=>f[0]));if(Qa(c,!1)&&!s){const d=le(c,(f,h,m)=>(C(h,g=>{g&&(f[g.tokenTypeIdx]=m,C(g.categoryMatches,A=>{f[A]=m}))}),f),{});return i?function(f){var h;const m=this.LA(1),g=d[m.tokenTypeIdx];if(f!==void 0&&g!==void 0){const A=(h=f[g])===null||h===void 0?void 0:h.GATE;if(A!==void 0&&A.call(this)===!1)return}return g}:function(){const f=this.LA(1);return d[f.tokenTypeIdx]}}else return i?function(d){const f=new Ku,h=d===void 0?0:d.length;for(let g=0;g<h;g++){const A=d==null?void 0:d[g].GATE;f.set(g,A===void 0||A.call(this))}const m=Ii.call(this,a,u,f,o);return typeof m=="number"?m:void 0}:function(){const d=Ii.call(this,a,u,Xa,o);return typeof d=="number"?d:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:n,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Dt(n,i,t),u=this.atn.decisionMap[l].decision,c=k(Ba({maxLookahead:1,occurrence:t,prodType:i,rule:n}),d=>k(d,f=>f[0]));if(Qa(c)&&c[0][0]&&!s){const d=c[0],f=Ne(d);if(f.length===1&&D(f[0].categoryMatches)){const h=f[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===h}}else{const h=le(f,(m,g)=>(g!==void 0&&(m[g.tokenTypeIdx]=!0,C(g.categoryMatches,A=>{m[A]=!0})),m),{});return function(){const m=this.LA(1);return h[m.tokenTypeIdx]===!0}}}return function(){const d=Ii.call(this,a,u,Xa,o);return typeof d=="object"?!1:d===0}}}function Qa(r,e=!0){const t=new Set;for(const n of r){const i=new Set;for(const s of n){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Vp(r){const e=r.decisionStates.length,t=Array(e);for(let n=0;n<e;n++)t[n]=Kp(r.decisionStates[n],n);return t}function Ii(r,e,t,n){const i=r[e](t);let s=i.start;if(s===void 0){const a=em(i.atnStartState);s=Vu(i,Bu(a)),i.start=s}return jp.apply(this,[i,s,t,n])}function jp(r,e,t,n){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=Xp(i,o);if(l===void 0&&(l=Hp.apply(this,[r,i,o,s,t,n])),l===Un)return qp(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function Hp(r,e,t,n,i,s){const a=Qp(e.configs,t,i);if(a.size===0)return Ja(r,e,t,Un),Un;let o=Bu(a);const l=Zp(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(im(a)){const u=Yc(a.alts);o.isAcceptState=!0,o.prediction=u,o.configs.uniqueAlt=u,Wp.apply(this,[r,n,a.alts,s])}return o=Ja(r,e,t,o),o}function Wp(r,e,t,n){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=r.atnStartState,a=s.rule,o=s.production,l=zp({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});n(l)}function zp(r){const e=k(r.prefixPath,i=>_t(i)).join(", "),t=r.production.idx===0?"":r.production.idx;let n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(", ")}> in <${Yp(r.production)}${t}> inside <${r.topLevelRule.name}> Rule,
111
+ For further details.`);this.skipValidations=N(t,"skipValidations")?t.skipValidations:Qe.skipValidations}}Kr.DEFER_DEFINITION_ERRORS_HANDLING=!1;Rp(Kr,[Xh,Zh,cp,dp,hp,fp,pp,mp,yp,vp]);class $p extends Kr{constructor(e,t=Qe){const n=ne(t);n.outputCst=!1,super(e,n)}}function Dt(r,e,t){return`${r.name}_${e}_${t}`}const rt=1,Ep=2,_u=4,Ou=5,Vr=7,kp=8,Ap=9,xp=10,Ip=11,Pu=12;class ia{constructor(e){this.target=e}isEpsilon(){return!1}}class sa extends ia{constructor(e,t){super(e),this.tokenType=t}}class Mu extends ia{constructor(e){super(e)}isEpsilon(){return!0}}class aa extends ia{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function Sp(r){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Cp(e,r);const t=r.length;for(let n=0;n<t;n++){const i=r[n],s=xt(e,i,i);s!==void 0&&Up(e,i,s)}return e}function Cp(r,e){const t=e.length;for(let n=0;n<t;n++){const i=e[n],s=X(r,i,void 0,{type:Ep}),a=X(r,i,void 0,{type:Vr});s.stop=a,r.ruleToStartState.set(i,s),r.ruleToStopState.set(i,a)}}function Du(r,e,t){return t instanceof F?oa(r,e,t.terminalType,t):t instanceof ue?Fp(r,e,t):t instanceof ge?_p(r,e,t):t instanceof re?Op(r,e,t):t instanceof j?Np(r,e,t):t instanceof me?wp(r,e,t):t instanceof xe?Lp(r,e,t):t instanceof Ie?bp(r,e,t):xt(r,e,t)}function Np(r,e,t){const n=X(r,e,t,{type:Ou});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Uu(r,e,t,i)}function wp(r,e,t){const n=X(r,e,t,{type:Ou});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t)),s=oa(r,e,t.separator,t);return Uu(r,e,t,i,s)}function Lp(r,e,t){const n=X(r,e,t,{type:_u});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Fu(r,e,t,i)}function bp(r,e,t){const n=X(r,e,t,{type:_u});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t)),s=oa(r,e,t.separator,t);return Fu(r,e,t,i,s)}function _p(r,e,t){const n=X(r,e,t,{type:rt});st(r,n);const i=k(t.definition,s=>Du(r,e,s));return Ht(r,e,n,t,...i)}function Op(r,e,t){const n=X(r,e,t,{type:rt});st(r,n);const i=Ht(r,e,n,t,xt(r,e,t));return Pp(r,e,t,i)}function xt(r,e,t){const n=Ae(k(t.definition,i=>Du(r,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:Dp(r,n)}function Fu(r,e,t,n,i){const s=n.left,a=n.right,o=X(r,e,t,{type:Ip});st(r,o);const l=X(r,e,t,{type:Pu});return s.loopback=o,l.loopback=o,r.decisionMap[Dt(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,W(a,o),i===void 0?(W(o,s),W(o,l)):(W(o,l),W(o,i.left),W(i.right,s)),{left:s,right:l}}function Uu(r,e,t,n,i){const s=n.left,a=n.right,o=X(r,e,t,{type:xp});st(r,o);const l=X(r,e,t,{type:Pu}),u=X(r,e,t,{type:Ap});return o.loopback=u,l.loopback=u,W(o,s),W(o,l),W(a,u),i!==void 0?(W(u,l),W(u,i.left),W(i.right,s)):W(u,o),r.decisionMap[Dt(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Pp(r,e,t,n){const i=n.left,s=n.right;return W(i,s),r.decisionMap[Dt(e,"Option",t.idx)]=i,n}function st(r,e){return r.decisionStates.push(e),e.decision=r.decisionStates.length-1,e.decision}function Ht(r,e,t,n,...i){const s=X(r,e,n,{type:kp,start:t});t.end=s;for(const o of i)o!==void 0?(W(t,o.left),W(o.right,s)):W(t,s);const a={left:t,right:s};return r.decisionMap[Dt(e,Mp(n),n.idx)]=t,a}function Mp(r){if(r instanceof ge)return"Alternation";if(r instanceof re)return"Option";if(r instanceof j)return"Repetition";if(r instanceof me)return"RepetitionWithSeparator";if(r instanceof xe)return"RepetitionMandatory";if(r instanceof Ie)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Dp(r,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof aa,u=o,c=e[s+1].left;a.left.type===rt&&a.right.type===rt&&o!==void 0&&(l&&u.followState===a.right||o.target===a.right)?(l?u.followState=c:o.target=c,Gp(r,a.right)):W(a.right,c)}const n=e[0],i=e[t-1];return{left:n.left,right:i.right}}function oa(r,e,t,n){const i=X(r,e,n,{type:rt}),s=X(r,e,n,{type:rt});return la(i,new sa(s,t)),{left:i,right:s}}function Fp(r,e,t){const n=t.referencedRule,i=r.ruleToStartState.get(n),s=X(r,e,t,{type:rt}),a=X(r,e,t,{type:rt}),o=new aa(i,n,a);return la(s,o),{left:s,right:a}}function Up(r,e,t){const n=r.ruleToStartState.get(e);W(n,t.left);const i=r.ruleToStopState.get(e);return W(t.right,i),{left:n,right:i}}function W(r,e){const t=new Mu(e);la(r,t)}function X(r,e,t,n){const i=Object.assign({atn:r,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:r.states.length},n);return r.states.push(i),i}function la(r,e){r.transitions.length===0&&(r.epsilonOnlyTransitions=e.isEpsilon()),r.transitions.push(e)}function Gp(r,e){r.states.splice(r.states.indexOf(e),1)}const Un={};class vs{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Gu(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return k(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Gu(r,e=!0){return`${e?`a${r.alt}`:""}s${r.state.stateNumber}:${r.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Bp(r,e){const t={};return n=>{const i=n.toString();let s=t[i];return s!==void 0||(s={atnStartState:r,decision:e,states:{}},t[i]=s),s}}class Bu{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;n<t;n++)e+=this.predicates[n]===!0?"1":"0";return e}}const Xa=new Bu;class Kp extends na{constructor(e){var t;super(),this.logging=(t=e==null?void 0:e.logging)!==null&&t!==void 0?t:n=>console.log(n)}initialize(e){this.atn=Sp(e.rules),this.dfas=Vp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Dt(n,"Alternation",t),u=this.atn.decisionMap[l].decision,c=k(Ka({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),d=>k(d,f=>f[0]));if(Qa(c,!1)&&!s){const d=le(c,(f,h,m)=>(C(h,g=>{g&&(f[g.tokenTypeIdx]=m,C(g.categoryMatches,A=>{f[A]=m}))}),f),{});return i?function(f){var h;const m=this.LA(1),g=d[m.tokenTypeIdx];if(f!==void 0&&g!==void 0){const A=(h=f[g])===null||h===void 0?void 0:h.GATE;if(A!==void 0&&A.call(this)===!1)return}return g}:function(){const f=this.LA(1);return d[f.tokenTypeIdx]}}else return i?function(d){const f=new Bu,h=d===void 0?0:d.length;for(let g=0;g<h;g++){const A=d==null?void 0:d[g].GATE;f.set(g,A===void 0||A.call(this))}const m=Ii.call(this,a,u,f,o);return typeof m=="number"?m:void 0}:function(){const d=Ii.call(this,a,u,Xa,o);return typeof d=="number"?d:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:n,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Dt(n,i,t),u=this.atn.decisionMap[l].decision,c=k(Ka({maxLookahead:1,occurrence:t,prodType:i,rule:n}),d=>k(d,f=>f[0]));if(Qa(c)&&c[0][0]&&!s){const d=c[0],f=Ne(d);if(f.length===1&&D(f[0].categoryMatches)){const h=f[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===h}}else{const h=le(f,(m,g)=>(g!==void 0&&(m[g.tokenTypeIdx]=!0,C(g.categoryMatches,A=>{m[A]=!0})),m),{});return function(){const m=this.LA(1);return h[m.tokenTypeIdx]===!0}}}return function(){const d=Ii.call(this,a,u,Xa,o);return typeof d=="object"?!1:d===0}}}function Qa(r,e=!0){const t=new Set;for(const n of r){const i=new Set;for(const s of n){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Vp(r){const e=r.decisionStates.length,t=Array(e);for(let n=0;n<e;n++)t[n]=Bp(r.decisionStates[n],n);return t}function Ii(r,e,t,n){const i=r[e](t);let s=i.start;if(s===void 0){const a=em(i.atnStartState);s=Vu(i,Ku(a)),i.start=s}return jp.apply(this,[i,s,t,n])}function jp(r,e,t,n){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=Xp(i,o);if(l===void 0&&(l=Hp.apply(this,[r,i,o,s,t,n])),l===Un)return qp(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function Hp(r,e,t,n,i,s){const a=Qp(e.configs,t,i);if(a.size===0)return Ja(r,e,t,Un),Un;let o=Ku(a);const l=Zp(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(im(a)){const u=Yc(a.alts);o.isAcceptState=!0,o.prediction=u,o.configs.uniqueAlt=u,Wp.apply(this,[r,n,a.alts,s])}return o=Ja(r,e,t,o),o}function Wp(r,e,t,n){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=r.atnStartState,a=s.rule,o=s.production,l=zp({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});n(l)}function zp(r){const e=k(r.prefixPath,i=>_t(i)).join(", "),t=r.production.idx===0?"":r.production.idx;let n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(", ")}> in <${Yp(r.production)}${t}> inside <${r.topLevelRule.name}> Rule,
112
112
  <${e}> may appears as a prefix path in all these alternatives.
113
113
  `;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
114
- For Further details.`,n}function Yp(r){if(r instanceof ue)return"SUBRULE";if(r instanceof re)return"OPTION";if(r instanceof ge)return"OR";if(r instanceof xe)return"AT_LEAST_ONE";if(r instanceof Ie)return"AT_LEAST_ONE_SEP";if(r instanceof me)return"MANY_SEP";if(r instanceof j)return"MANY";if(r instanceof F)return"CONSUME";throw Error("non exhaustive match")}function qp(r,e,t){const n=Ee(e.configs.elements,s=>s.state.transitions),i=gd(n.filter(s=>s instanceof sa).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:r}}function Xp(r,e){return r.edges[e.tokenTypeIdx]}function Qp(r,e,t){const n=new vs,i=[];for(const a of r.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===Vr){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const u=a.state.transitions[l],c=Jp(u,e);c!==void 0&&n.add({state:c,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&n.size===1&&(s=n),s===void 0){s=new vs;for(const a of n.elements)Gn(a,s)}if(i.length>0&&!rm(s))for(const a of i)s.add(a);return s}function Jp(r,e){if(r instanceof sa&&pu(e,r.tokenType))return r.target}function Zp(r,e){let t;for(const n of r.elements)if(e.is(n.alt)===!0){if(t===void 0)t=n.alt;else if(t!==n.alt)return}return t}function Bu(r){return{configs:r,edges:{},isAcceptState:!1,prediction:-1}}function Ja(r,e,t,n){return n=Vu(r,n),e.edges[t.tokenTypeIdx]=n,n}function Vu(r,e){if(e===Un)return e;const t=e.configs.key,n=r.states[t];return n!==void 0?n:(e.configs.finalize(),r.states[t]=e,e)}function em(r){const e=new vs,t=r.transitions.length;for(let n=0;n<t;n++){const i={state:r.transitions[n].target,alt:n,stack:[]};Gn(i,e)}return e}function Gn(r,e){const t=r.state;if(t.type===Vr){if(r.stack.length>0){const i=[...r.stack],s={state:i.pop(),alt:r.alt,stack:i};Gn(s,e)}else e.add(r);return}t.epsilonOnlyTransitions||e.add(r);const n=t.transitions.length;for(let i=0;i<n;i++){const s=t.transitions[i],a=tm(r,s);a!==void 0&&Gn(a,e)}}function tm(r,e){if(e instanceof Mu)return{state:e.target,alt:r.alt,stack:r.stack};if(e instanceof aa){const t=[...r.stack,e.followState];return{state:e.target,alt:r.alt,stack:t}}}function rm(r){for(const e of r.elements)if(e.state.type===Vr)return!0;return!1}function nm(r){for(const e of r.elements)if(e.state.type!==Vr)return!1;return!0}function im(r){if(nm(r))return!0;const e=sm(r.elements);return am(e)&&!om(e)}function sm(r){const e=new Map;for(const t of r){const n=Gu(t,!1);let i=e.get(n);i===void 0&&(i={},e.set(n,i)),i[t.alt]=!0}return e}function am(r){for(const e of Array.from(r.values()))if(Object.keys(e).length>1)return!0;return!1}function om(r){for(const e of Array.from(r.values()))if(Object.keys(e).length===1)return!0;return!1}var Za;(function(r){function e(t){return typeof t=="string"}r.is=e})(Za||(Za={}));var Rs;(function(r){function e(t){return typeof t=="string"}r.is=e})(Rs||(Rs={}));var eo;(function(r){r.MIN_VALUE=-2147483648,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(eo||(eo={}));var Kn;(function(r){r.MIN_VALUE=0,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(Kn||(Kn={}));var P;(function(r){function e(n,i){return n===Number.MAX_VALUE&&(n=Kn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Kn.MAX_VALUE),{line:n,character:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}r.is=t})(P||(P={}));var O;(function(r){function e(n,i,s,a){if(p.uinteger(n)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:P.create(n,i),end:P.create(s,a)};if(P.is(n)&&P.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${s}, ${a}]`)}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&P.is(i.start)&&P.is(i.end)}r.is=t})(O||(O={}));var Bn;(function(r){function e(n,i){return{uri:n,range:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}r.is=t})(Bn||(Bn={}));var to;(function(r){function e(n,i,s,a){return{targetUri:n,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.targetRange)&&p.string(i.targetUri)&&O.is(i.targetSelectionRange)&&(O.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}r.is=t})(to||(to={}));var $s;(function(r){function e(n,i,s,a){return{red:n,green:i,blue:s,alpha:a}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}r.is=t})($s||($s={}));var ro;(function(r){function e(n,i){return{range:n,color:i}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&O.is(i.range)&&$s.is(i.color)}r.is=t})(ro||(ro={}));var no;(function(r){function e(n,i,s){return{label:n,textEdit:i,additionalTextEdits:s}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Ut.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Ut.is))}r.is=t})(no||(no={}));var io;(function(r){r.Comment="comment",r.Imports="imports",r.Region="region"})(io||(io={}));var so;(function(r){function e(n,i,s,a,o,l){const u={startLine:n,endLine:i};return p.defined(s)&&(u.startCharacter=s),p.defined(a)&&(u.endCharacter=a),p.defined(o)&&(u.kind=o),p.defined(l)&&(u.collapsedText=l),u}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}r.is=t})(so||(so={}));var Es;(function(r){function e(n,i){return{location:n,message:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Bn.is(i.location)&&p.string(i.message)}r.is=t})(Es||(Es={}));var ao;(function(r){r.Error=1,r.Warning=2,r.Information=3,r.Hint=4})(ao||(ao={}));var oo;(function(r){r.Unnecessary=1,r.Deprecated=2})(oo||(oo={}));var lo;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&p.string(n.href)}r.is=e})(lo||(lo={}));var Vn;(function(r){function e(n,i,s,a,o,l){let u={range:n,message:i};return p.defined(s)&&(u.severity=s),p.defined(a)&&(u.code=a),p.defined(o)&&(u.source=o),p.defined(l)&&(u.relatedInformation=l),u}r.create=e;function t(n){var i;let s=n;return p.defined(s)&&O.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,Es.is))}r.is=t})(Vn||(Vn={}));var Ft;(function(r){function e(n,i,...s){let a={title:n,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}r.is=t})(Ft||(Ft={}));var Ut;(function(r){function e(s,a){return{range:s,newText:a}}r.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}r.insert=t;function n(s){return{range:s,newText:""}}r.del=n;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&O.is(a.range)}r.is=i})(Ut||(Ut={}));var ks;(function(r){function e(n,i,s){const a={label:n};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}r.is=t})(ks||(ks={}));var Gt;(function(r){function e(t){const n=t;return p.string(n)}r.is=e})(Gt||(Gt={}));var uo;(function(r){function e(s,a,o){return{range:s,newText:a,annotationId:o}}r.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}r.insert=t;function n(s,a){return{range:s,newText:"",annotationId:a}}r.del=n;function i(s){const a=s;return Ut.is(a)&&(ks.is(a.annotationId)||Gt.is(a.annotationId))}r.is=i})(uo||(uo={}));var As;(function(r){function e(n,i){return{textDocument:n,edits:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Ns.is(i.textDocument)&&Array.isArray(i.edits)}r.is=t})(As||(As={}));var xs;(function(r){function e(n,i,s){let a={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(xs||(xs={}));var Is;(function(r){function e(n,i,s,a){let o={kind:"rename",oldUri:n,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}r.create=e;function t(n){let i=n;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(Is||(Is={}));var Ss;(function(r){function e(n,i,s){let a={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(Ss||(Ss={}));var Cs;(function(r){function e(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>p.string(i.kind)?xs.is(i)||Is.is(i)||Ss.is(i):As.is(i)))}r.is=e})(Cs||(Cs={}));var co;(function(r){function e(n){return{uri:n}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)}r.is=t})(co||(co={}));var fo;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}r.is=t})(fo||(fo={}));var Ns;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}r.is=t})(Ns||(Ns={}));var ho;(function(r){function e(n,i,s,a){return{uri:n,languageId:i,version:s,text:a}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}r.is=t})(ho||(ho={}));var ws;(function(r){r.PlainText="plaintext",r.Markdown="markdown";function e(t){const n=t;return n===r.PlainText||n===r.Markdown}r.is=e})(ws||(ws={}));var Or;(function(r){function e(t){const n=t;return p.objectLiteral(t)&&ws.is(n.kind)&&p.string(n.value)}r.is=e})(Or||(Or={}));var po;(function(r){r.Text=1,r.Method=2,r.Function=3,r.Constructor=4,r.Field=5,r.Variable=6,r.Class=7,r.Interface=8,r.Module=9,r.Property=10,r.Unit=11,r.Value=12,r.Enum=13,r.Keyword=14,r.Snippet=15,r.Color=16,r.File=17,r.Reference=18,r.Folder=19,r.EnumMember=20,r.Constant=21,r.Struct=22,r.Event=23,r.Operator=24,r.TypeParameter=25})(po||(po={}));var mo;(function(r){r.PlainText=1,r.Snippet=2})(mo||(mo={}));var go;(function(r){r.Deprecated=1})(go||(go={}));var yo;(function(r){function e(n,i,s){return{newText:n,insert:i,replace:s}}r.create=e;function t(n){const i=n;return i&&p.string(i.newText)&&O.is(i.insert)&&O.is(i.replace)}r.is=t})(yo||(yo={}));var To;(function(r){r.asIs=1,r.adjustIndentation=2})(To||(To={}));var vo;(function(r){function e(t){const n=t;return n&&(p.string(n.detail)||n.detail===void 0)&&(p.string(n.description)||n.description===void 0)}r.is=e})(vo||(vo={}));var Ro;(function(r){function e(t){return{label:t}}r.create=e})(Ro||(Ro={}));var $o;(function(r){function e(t,n){return{items:t||[],isIncomplete:!!n}}r.create=e})($o||($o={}));var jn;(function(r){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}r.fromPlainText=e;function t(n){const i=n;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}r.is=t})(jn||(jn={}));var Eo;(function(r){function e(t){let n=t;return!!n&&p.objectLiteral(n)&&(Or.is(n.contents)||jn.is(n.contents)||p.typedArray(n.contents,jn.is))&&(t.range===void 0||O.is(t.range))}r.is=e})(Eo||(Eo={}));var ko;(function(r){function e(t,n){return n?{label:t,documentation:n}:{label:t}}r.create=e})(ko||(ko={}));var Ao;(function(r){function e(t,n,...i){let s={label:t};return p.defined(n)&&(s.documentation=n),p.defined(i)?s.parameters=i:s.parameters=[],s}r.create=e})(Ao||(Ao={}));var xo;(function(r){r.Text=1,r.Read=2,r.Write=3})(xo||(xo={}));var Io;(function(r){function e(t,n){let i={range:t};return p.number(n)&&(i.kind=n),i}r.create=e})(Io||(Io={}));var So;(function(r){r.File=1,r.Module=2,r.Namespace=3,r.Package=4,r.Class=5,r.Method=6,r.Property=7,r.Field=8,r.Constructor=9,r.Enum=10,r.Interface=11,r.Function=12,r.Variable=13,r.Constant=14,r.String=15,r.Number=16,r.Boolean=17,r.Array=18,r.Object=19,r.Key=20,r.Null=21,r.EnumMember=22,r.Struct=23,r.Event=24,r.Operator=25,r.TypeParameter=26})(So||(So={}));var Co;(function(r){r.Deprecated=1})(Co||(Co={}));var No;(function(r){function e(t,n,i,s,a){let o={name:t,kind:n,location:{uri:s,range:i}};return a&&(o.containerName=a),o}r.create=e})(No||(No={}));var wo;(function(r){function e(t,n,i,s){return s!==void 0?{name:t,kind:n,location:{uri:i,range:s}}:{name:t,kind:n,location:{uri:i}}}r.create=e})(wo||(wo={}));var Lo;(function(r){function e(n,i,s,a,o,l){let u={name:n,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(u.children=l),u}r.create=e;function t(n){let i=n;return i&&p.string(i.name)&&p.number(i.kind)&&O.is(i.range)&&O.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}r.is=t})(Lo||(Lo={}));var bo;(function(r){r.Empty="",r.QuickFix="quickfix",r.Refactor="refactor",r.RefactorExtract="refactor.extract",r.RefactorInline="refactor.inline",r.RefactorRewrite="refactor.rewrite",r.Source="source",r.SourceOrganizeImports="source.organizeImports",r.SourceFixAll="source.fixAll"})(bo||(bo={}));var Hn;(function(r){r.Invoked=1,r.Automatic=2})(Hn||(Hn={}));var _o;(function(r){function e(n,i,s){let a={diagnostics:n};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.typedArray(i.diagnostics,Vn.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Hn.Invoked||i.triggerKind===Hn.Automatic)}r.is=t})(_o||(_o={}));var Oo;(function(r){function e(n,i,s){let a={title:n},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Ft.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,Vn.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Ft.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||Cs.is(i.edit))}r.is=t})(Oo||(Oo={}));var Po;(function(r){function e(n,i){let s={range:n};return p.defined(i)&&(s.data=i),s}r.create=e;function t(n){let i=n;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.command)||Ft.is(i.command))}r.is=t})(Po||(Po={}));var Mo;(function(r){function e(n,i){return{tabSize:n,insertSpaces:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}r.is=t})(Mo||(Mo={}));var Do;(function(r){function e(n,i,s){return{range:n,target:i,data:s}}r.create=e;function t(n){let i=n;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}r.is=t})(Do||(Do={}));var Fo;(function(r){function e(n,i){return{range:n,parent:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.range)&&(i.parent===void 0||r.is(i.parent))}r.is=t})(Fo||(Fo={}));var Uo;(function(r){r.namespace="namespace",r.type="type",r.class="class",r.enum="enum",r.interface="interface",r.struct="struct",r.typeParameter="typeParameter",r.parameter="parameter",r.variable="variable",r.property="property",r.enumMember="enumMember",r.event="event",r.function="function",r.method="method",r.macro="macro",r.keyword="keyword",r.modifier="modifier",r.comment="comment",r.string="string",r.number="number",r.regexp="regexp",r.operator="operator",r.decorator="decorator"})(Uo||(Uo={}));var Go;(function(r){r.declaration="declaration",r.definition="definition",r.readonly="readonly",r.static="static",r.deprecated="deprecated",r.abstract="abstract",r.async="async",r.modification="modification",r.documentation="documentation",r.defaultLibrary="defaultLibrary"})(Go||(Go={}));var Ko;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}r.is=e})(Ko||(Ko={}));var Bo;(function(r){function e(n,i){return{range:n,text:i}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&p.string(i.text)}r.is=t})(Bo||(Bo={}));var Vo;(function(r){function e(n,i,s){return{range:n,variableName:i,caseSensitiveLookup:s}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}r.is=t})(Vo||(Vo={}));var jo;(function(r){function e(n,i){return{range:n,expression:i}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}r.is=t})(jo||(jo={}));var Ho;(function(r){function e(n,i){return{frameId:n,stoppedLocation:i}}r.create=e;function t(n){const i=n;return p.defined(i)&&O.is(n.stoppedLocation)}r.is=t})(Ho||(Ho={}));var Ls;(function(r){r.Type=1,r.Parameter=2;function e(t){return t===1||t===2}r.is=e})(Ls||(Ls={}));var bs;(function(r){function e(n){return{value:n}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Or.is(i.tooltip))&&(i.location===void 0||Bn.is(i.location))&&(i.command===void 0||Ft.is(i.command))}r.is=t})(bs||(bs={}));var Wo;(function(r){function e(n,i,s){const a={position:n,label:i};return s!==void 0&&(a.kind=s),a}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&P.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,bs.is))&&(i.kind===void 0||Ls.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Ut.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Or.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}r.is=t})(Wo||(Wo={}));var zo;(function(r){function e(t){return{kind:"snippet",value:t}}r.createSnippet=e})(zo||(zo={}));var Yo;(function(r){function e(t,n,i,s){return{insertText:t,filterText:n,range:i,command:s}}r.create=e})(Yo||(Yo={}));var qo;(function(r){function e(t){return{items:t}}r.create=e})(qo||(qo={}));var Xo;(function(r){r.Invoked=0,r.Automatic=1})(Xo||(Xo={}));var Qo;(function(r){function e(t,n){return{range:t,text:n}}r.create=e})(Qo||(Qo={}));var Jo;(function(r){function e(t,n){return{triggerKind:t,selectedCompletionInfo:n}}r.create=e})(Jo||(Jo={}));var Zo;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&Rs.is(n.uri)&&p.string(n.name)}r.is=e})(Zo||(Zo={}));var el;(function(r){function e(s,a,o,l){return new lm(s,a,o,l)}r.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}r.is=t;function n(s,a){let o=s.getText(),l=i(a,(c,d)=>{let f=c.range.start.line-d.range.start.line;return f===0?c.range.start.character-d.range.start.character:f}),u=o.length;for(let c=l.length-1;c>=0;c--){let d=l[c],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=u)o=o.substring(0,f)+d.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");u=f}return o}r.applyEdits=n;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),u=s.slice(o);i(l,a),i(u,a);let c=0,d=0,f=0;for(;c<l.length&&d<u.length;)a(l[c],u[d])<=0?s[f++]=l[c++]:s[f++]=u[d++];for(;c<l.length;)s[f++]=l[c++];for(;d<u.length;)s[f++]=u[d++];return s}})(el||(el={}));let lm=class{constructor(r,e,t,n){this._uri=r,this._languageId=e,this._version=t,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(r){if(r){let e=this.offsetAt(r.start),t=this.offsetAt(r.end);return this._content.substring(e,t)}return this._content}update(r,e){this._content=r.text,this._version=e,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let r=[],e=this._content,t=!0;for(let n=0;n<e.length;n++){t&&(r.push(n),t=!1);let i=e.charAt(n);t=i==="\r"||i===`
114
+ For Further details.`,n}function Yp(r){if(r instanceof ue)return"SUBRULE";if(r instanceof re)return"OPTION";if(r instanceof ge)return"OR";if(r instanceof xe)return"AT_LEAST_ONE";if(r instanceof Ie)return"AT_LEAST_ONE_SEP";if(r instanceof me)return"MANY_SEP";if(r instanceof j)return"MANY";if(r instanceof F)return"CONSUME";throw Error("non exhaustive match")}function qp(r,e,t){const n=Ee(e.configs.elements,s=>s.state.transitions),i=gd(n.filter(s=>s instanceof sa).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:r}}function Xp(r,e){return r.edges[e.tokenTypeIdx]}function Qp(r,e,t){const n=new vs,i=[];for(const a of r.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===Vr){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const u=a.state.transitions[l],c=Jp(u,e);c!==void 0&&n.add({state:c,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&n.size===1&&(s=n),s===void 0){s=new vs;for(const a of n.elements)Gn(a,s)}if(i.length>0&&!rm(s))for(const a of i)s.add(a);return s}function Jp(r,e){if(r instanceof sa&&pu(e,r.tokenType))return r.target}function Zp(r,e){let t;for(const n of r.elements)if(e.is(n.alt)===!0){if(t===void 0)t=n.alt;else if(t!==n.alt)return}return t}function Ku(r){return{configs:r,edges:{},isAcceptState:!1,prediction:-1}}function Ja(r,e,t,n){return n=Vu(r,n),e.edges[t.tokenTypeIdx]=n,n}function Vu(r,e){if(e===Un)return e;const t=e.configs.key,n=r.states[t];return n!==void 0?n:(e.configs.finalize(),r.states[t]=e,e)}function em(r){const e=new vs,t=r.transitions.length;for(let n=0;n<t;n++){const i={state:r.transitions[n].target,alt:n,stack:[]};Gn(i,e)}return e}function Gn(r,e){const t=r.state;if(t.type===Vr){if(r.stack.length>0){const i=[...r.stack],s={state:i.pop(),alt:r.alt,stack:i};Gn(s,e)}else e.add(r);return}t.epsilonOnlyTransitions||e.add(r);const n=t.transitions.length;for(let i=0;i<n;i++){const s=t.transitions[i],a=tm(r,s);a!==void 0&&Gn(a,e)}}function tm(r,e){if(e instanceof Mu)return{state:e.target,alt:r.alt,stack:r.stack};if(e instanceof aa){const t=[...r.stack,e.followState];return{state:e.target,alt:r.alt,stack:t}}}function rm(r){for(const e of r.elements)if(e.state.type===Vr)return!0;return!1}function nm(r){for(const e of r.elements)if(e.state.type!==Vr)return!1;return!0}function im(r){if(nm(r))return!0;const e=sm(r.elements);return am(e)&&!om(e)}function sm(r){const e=new Map;for(const t of r){const n=Gu(t,!1);let i=e.get(n);i===void 0&&(i={},e.set(n,i)),i[t.alt]=!0}return e}function am(r){for(const e of Array.from(r.values()))if(Object.keys(e).length>1)return!0;return!1}function om(r){for(const e of Array.from(r.values()))if(Object.keys(e).length===1)return!0;return!1}var Za;(function(r){function e(t){return typeof t=="string"}r.is=e})(Za||(Za={}));var Rs;(function(r){function e(t){return typeof t=="string"}r.is=e})(Rs||(Rs={}));var eo;(function(r){r.MIN_VALUE=-2147483648,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(eo||(eo={}));var Bn;(function(r){r.MIN_VALUE=0,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(Bn||(Bn={}));var P;(function(r){function e(n,i){return n===Number.MAX_VALUE&&(n=Bn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Bn.MAX_VALUE),{line:n,character:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}r.is=t})(P||(P={}));var O;(function(r){function e(n,i,s,a){if(p.uinteger(n)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:P.create(n,i),end:P.create(s,a)};if(P.is(n)&&P.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${s}, ${a}]`)}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&P.is(i.start)&&P.is(i.end)}r.is=t})(O||(O={}));var Kn;(function(r){function e(n,i){return{uri:n,range:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}r.is=t})(Kn||(Kn={}));var to;(function(r){function e(n,i,s,a){return{targetUri:n,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.targetRange)&&p.string(i.targetUri)&&O.is(i.targetSelectionRange)&&(O.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}r.is=t})(to||(to={}));var $s;(function(r){function e(n,i,s,a){return{red:n,green:i,blue:s,alpha:a}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}r.is=t})($s||($s={}));var ro;(function(r){function e(n,i){return{range:n,color:i}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&O.is(i.range)&&$s.is(i.color)}r.is=t})(ro||(ro={}));var no;(function(r){function e(n,i,s){return{label:n,textEdit:i,additionalTextEdits:s}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Ut.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Ut.is))}r.is=t})(no||(no={}));var io;(function(r){r.Comment="comment",r.Imports="imports",r.Region="region"})(io||(io={}));var so;(function(r){function e(n,i,s,a,o,l){const u={startLine:n,endLine:i};return p.defined(s)&&(u.startCharacter=s),p.defined(a)&&(u.endCharacter=a),p.defined(o)&&(u.kind=o),p.defined(l)&&(u.collapsedText=l),u}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}r.is=t})(so||(so={}));var Es;(function(r){function e(n,i){return{location:n,message:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Kn.is(i.location)&&p.string(i.message)}r.is=t})(Es||(Es={}));var ao;(function(r){r.Error=1,r.Warning=2,r.Information=3,r.Hint=4})(ao||(ao={}));var oo;(function(r){r.Unnecessary=1,r.Deprecated=2})(oo||(oo={}));var lo;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&p.string(n.href)}r.is=e})(lo||(lo={}));var Vn;(function(r){function e(n,i,s,a,o,l){let u={range:n,message:i};return p.defined(s)&&(u.severity=s),p.defined(a)&&(u.code=a),p.defined(o)&&(u.source=o),p.defined(l)&&(u.relatedInformation=l),u}r.create=e;function t(n){var i;let s=n;return p.defined(s)&&O.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,Es.is))}r.is=t})(Vn||(Vn={}));var Ft;(function(r){function e(n,i,...s){let a={title:n,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}r.is=t})(Ft||(Ft={}));var Ut;(function(r){function e(s,a){return{range:s,newText:a}}r.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}r.insert=t;function n(s){return{range:s,newText:""}}r.del=n;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&O.is(a.range)}r.is=i})(Ut||(Ut={}));var ks;(function(r){function e(n,i,s){const a={label:n};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}r.is=t})(ks||(ks={}));var Gt;(function(r){function e(t){const n=t;return p.string(n)}r.is=e})(Gt||(Gt={}));var uo;(function(r){function e(s,a,o){return{range:s,newText:a,annotationId:o}}r.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}r.insert=t;function n(s,a){return{range:s,newText:"",annotationId:a}}r.del=n;function i(s){const a=s;return Ut.is(a)&&(ks.is(a.annotationId)||Gt.is(a.annotationId))}r.is=i})(uo||(uo={}));var As;(function(r){function e(n,i){return{textDocument:n,edits:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Ns.is(i.textDocument)&&Array.isArray(i.edits)}r.is=t})(As||(As={}));var xs;(function(r){function e(n,i,s){let a={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(xs||(xs={}));var Is;(function(r){function e(n,i,s,a){let o={kind:"rename",oldUri:n,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}r.create=e;function t(n){let i=n;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(Is||(Is={}));var Ss;(function(r){function e(n,i,s){let a={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Gt.is(i.annotationId))}r.is=t})(Ss||(Ss={}));var Cs;(function(r){function e(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>p.string(i.kind)?xs.is(i)||Is.is(i)||Ss.is(i):As.is(i)))}r.is=e})(Cs||(Cs={}));var co;(function(r){function e(n){return{uri:n}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)}r.is=t})(co||(co={}));var fo;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}r.is=t})(fo||(fo={}));var Ns;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}r.is=t})(Ns||(Ns={}));var ho;(function(r){function e(n,i,s,a){return{uri:n,languageId:i,version:s,text:a}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}r.is=t})(ho||(ho={}));var ws;(function(r){r.PlainText="plaintext",r.Markdown="markdown";function e(t){const n=t;return n===r.PlainText||n===r.Markdown}r.is=e})(ws||(ws={}));var Or;(function(r){function e(t){const n=t;return p.objectLiteral(t)&&ws.is(n.kind)&&p.string(n.value)}r.is=e})(Or||(Or={}));var po;(function(r){r.Text=1,r.Method=2,r.Function=3,r.Constructor=4,r.Field=5,r.Variable=6,r.Class=7,r.Interface=8,r.Module=9,r.Property=10,r.Unit=11,r.Value=12,r.Enum=13,r.Keyword=14,r.Snippet=15,r.Color=16,r.File=17,r.Reference=18,r.Folder=19,r.EnumMember=20,r.Constant=21,r.Struct=22,r.Event=23,r.Operator=24,r.TypeParameter=25})(po||(po={}));var mo;(function(r){r.PlainText=1,r.Snippet=2})(mo||(mo={}));var go;(function(r){r.Deprecated=1})(go||(go={}));var yo;(function(r){function e(n,i,s){return{newText:n,insert:i,replace:s}}r.create=e;function t(n){const i=n;return i&&p.string(i.newText)&&O.is(i.insert)&&O.is(i.replace)}r.is=t})(yo||(yo={}));var To;(function(r){r.asIs=1,r.adjustIndentation=2})(To||(To={}));var vo;(function(r){function e(t){const n=t;return n&&(p.string(n.detail)||n.detail===void 0)&&(p.string(n.description)||n.description===void 0)}r.is=e})(vo||(vo={}));var Ro;(function(r){function e(t){return{label:t}}r.create=e})(Ro||(Ro={}));var $o;(function(r){function e(t,n){return{items:t||[],isIncomplete:!!n}}r.create=e})($o||($o={}));var jn;(function(r){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}r.fromPlainText=e;function t(n){const i=n;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}r.is=t})(jn||(jn={}));var Eo;(function(r){function e(t){let n=t;return!!n&&p.objectLiteral(n)&&(Or.is(n.contents)||jn.is(n.contents)||p.typedArray(n.contents,jn.is))&&(t.range===void 0||O.is(t.range))}r.is=e})(Eo||(Eo={}));var ko;(function(r){function e(t,n){return n?{label:t,documentation:n}:{label:t}}r.create=e})(ko||(ko={}));var Ao;(function(r){function e(t,n,...i){let s={label:t};return p.defined(n)&&(s.documentation=n),p.defined(i)?s.parameters=i:s.parameters=[],s}r.create=e})(Ao||(Ao={}));var xo;(function(r){r.Text=1,r.Read=2,r.Write=3})(xo||(xo={}));var Io;(function(r){function e(t,n){let i={range:t};return p.number(n)&&(i.kind=n),i}r.create=e})(Io||(Io={}));var So;(function(r){r.File=1,r.Module=2,r.Namespace=3,r.Package=4,r.Class=5,r.Method=6,r.Property=7,r.Field=8,r.Constructor=9,r.Enum=10,r.Interface=11,r.Function=12,r.Variable=13,r.Constant=14,r.String=15,r.Number=16,r.Boolean=17,r.Array=18,r.Object=19,r.Key=20,r.Null=21,r.EnumMember=22,r.Struct=23,r.Event=24,r.Operator=25,r.TypeParameter=26})(So||(So={}));var Co;(function(r){r.Deprecated=1})(Co||(Co={}));var No;(function(r){function e(t,n,i,s,a){let o={name:t,kind:n,location:{uri:s,range:i}};return a&&(o.containerName=a),o}r.create=e})(No||(No={}));var wo;(function(r){function e(t,n,i,s){return s!==void 0?{name:t,kind:n,location:{uri:i,range:s}}:{name:t,kind:n,location:{uri:i}}}r.create=e})(wo||(wo={}));var Lo;(function(r){function e(n,i,s,a,o,l){let u={name:n,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(u.children=l),u}r.create=e;function t(n){let i=n;return i&&p.string(i.name)&&p.number(i.kind)&&O.is(i.range)&&O.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}r.is=t})(Lo||(Lo={}));var bo;(function(r){r.Empty="",r.QuickFix="quickfix",r.Refactor="refactor",r.RefactorExtract="refactor.extract",r.RefactorInline="refactor.inline",r.RefactorRewrite="refactor.rewrite",r.Source="source",r.SourceOrganizeImports="source.organizeImports",r.SourceFixAll="source.fixAll"})(bo||(bo={}));var Hn;(function(r){r.Invoked=1,r.Automatic=2})(Hn||(Hn={}));var _o;(function(r){function e(n,i,s){let a={diagnostics:n};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.typedArray(i.diagnostics,Vn.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Hn.Invoked||i.triggerKind===Hn.Automatic)}r.is=t})(_o||(_o={}));var Oo;(function(r){function e(n,i,s){let a={title:n},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Ft.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,Vn.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Ft.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||Cs.is(i.edit))}r.is=t})(Oo||(Oo={}));var Po;(function(r){function e(n,i){let s={range:n};return p.defined(i)&&(s.data=i),s}r.create=e;function t(n){let i=n;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.command)||Ft.is(i.command))}r.is=t})(Po||(Po={}));var Mo;(function(r){function e(n,i){return{tabSize:n,insertSpaces:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}r.is=t})(Mo||(Mo={}));var Do;(function(r){function e(n,i,s){return{range:n,target:i,data:s}}r.create=e;function t(n){let i=n;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}r.is=t})(Do||(Do={}));var Fo;(function(r){function e(n,i){return{range:n,parent:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&O.is(i.range)&&(i.parent===void 0||r.is(i.parent))}r.is=t})(Fo||(Fo={}));var Uo;(function(r){r.namespace="namespace",r.type="type",r.class="class",r.enum="enum",r.interface="interface",r.struct="struct",r.typeParameter="typeParameter",r.parameter="parameter",r.variable="variable",r.property="property",r.enumMember="enumMember",r.event="event",r.function="function",r.method="method",r.macro="macro",r.keyword="keyword",r.modifier="modifier",r.comment="comment",r.string="string",r.number="number",r.regexp="regexp",r.operator="operator",r.decorator="decorator"})(Uo||(Uo={}));var Go;(function(r){r.declaration="declaration",r.definition="definition",r.readonly="readonly",r.static="static",r.deprecated="deprecated",r.abstract="abstract",r.async="async",r.modification="modification",r.documentation="documentation",r.defaultLibrary="defaultLibrary"})(Go||(Go={}));var Bo;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}r.is=e})(Bo||(Bo={}));var Ko;(function(r){function e(n,i){return{range:n,text:i}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&p.string(i.text)}r.is=t})(Ko||(Ko={}));var Vo;(function(r){function e(n,i,s){return{range:n,variableName:i,caseSensitiveLookup:s}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}r.is=t})(Vo||(Vo={}));var jo;(function(r){function e(n,i){return{range:n,expression:i}}r.create=e;function t(n){const i=n;return i!=null&&O.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}r.is=t})(jo||(jo={}));var Ho;(function(r){function e(n,i){return{frameId:n,stoppedLocation:i}}r.create=e;function t(n){const i=n;return p.defined(i)&&O.is(n.stoppedLocation)}r.is=t})(Ho||(Ho={}));var Ls;(function(r){r.Type=1,r.Parameter=2;function e(t){return t===1||t===2}r.is=e})(Ls||(Ls={}));var bs;(function(r){function e(n){return{value:n}}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Or.is(i.tooltip))&&(i.location===void 0||Kn.is(i.location))&&(i.command===void 0||Ft.is(i.command))}r.is=t})(bs||(bs={}));var Wo;(function(r){function e(n,i,s){const a={position:n,label:i};return s!==void 0&&(a.kind=s),a}r.create=e;function t(n){const i=n;return p.objectLiteral(i)&&P.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,bs.is))&&(i.kind===void 0||Ls.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Ut.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Or.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}r.is=t})(Wo||(Wo={}));var zo;(function(r){function e(t){return{kind:"snippet",value:t}}r.createSnippet=e})(zo||(zo={}));var Yo;(function(r){function e(t,n,i,s){return{insertText:t,filterText:n,range:i,command:s}}r.create=e})(Yo||(Yo={}));var qo;(function(r){function e(t){return{items:t}}r.create=e})(qo||(qo={}));var Xo;(function(r){r.Invoked=0,r.Automatic=1})(Xo||(Xo={}));var Qo;(function(r){function e(t,n){return{range:t,text:n}}r.create=e})(Qo||(Qo={}));var Jo;(function(r){function e(t,n){return{triggerKind:t,selectedCompletionInfo:n}}r.create=e})(Jo||(Jo={}));var Zo;(function(r){function e(t){const n=t;return p.objectLiteral(n)&&Rs.is(n.uri)&&p.string(n.name)}r.is=e})(Zo||(Zo={}));var el;(function(r){function e(s,a,o,l){return new lm(s,a,o,l)}r.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}r.is=t;function n(s,a){let o=s.getText(),l=i(a,(c,d)=>{let f=c.range.start.line-d.range.start.line;return f===0?c.range.start.character-d.range.start.character:f}),u=o.length;for(let c=l.length-1;c>=0;c--){let d=l[c],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=u)o=o.substring(0,f)+d.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");u=f}return o}r.applyEdits=n;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),u=s.slice(o);i(l,a),i(u,a);let c=0,d=0,f=0;for(;c<l.length&&d<u.length;)a(l[c],u[d])<=0?s[f++]=l[c++]:s[f++]=u[d++];for(;c<l.length;)s[f++]=l[c++];for(;d<u.length;)s[f++]=u[d++];return s}})(el||(el={}));let lm=class{constructor(r,e,t,n){this._uri=r,this._languageId=e,this._version=t,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(r){if(r){let e=this.offsetAt(r.start),t=this.offsetAt(r.end);return this._content.substring(e,t)}return this._content}update(r,e){this._content=r.text,this._version=e,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let r=[],e=this._content,t=!0;for(let n=0;n<e.length;n++){t&&(r.push(n),t=!1);let i=e.charAt(n);t=i==="\r"||i===`
115
115
  `,i==="\r"&&n+1<e.length&&e.charAt(n+1)===`
116
- `&&n++}t&&e.length>0&&r.push(e.length),this._lineOffsets=r}return this._lineOffsets}positionAt(r){r=Math.max(Math.min(r,this._content.length),0);let e=this.getLineOffsets(),t=0,n=e.length;if(n===0)return P.create(0,r);for(;t<n;){let s=Math.floor((t+n)/2);e[s]>r?n=s:t=s+1}let i=t-1;return P.create(i,r-e[i])}offsetAt(r){let e=this.getLineOffsets();if(r.line>=e.length)return this._content.length;if(r.line<0)return 0;let t=e[r.line],n=r.line+1<e.length?e[r.line+1]:this._content.length;return Math.max(Math.min(t+r.character,n),t)}get lineCount(){return this.getLineOffsets().length}};var p;(function(r){const e=Object.prototype.toString;function t(h){return typeof h<"u"}r.defined=t;function n(h){return typeof h>"u"}r.undefined=n;function i(h){return h===!0||h===!1}r.boolean=i;function s(h){return e.call(h)==="[object String]"}r.string=s;function a(h){return e.call(h)==="[object Number]"}r.number=a;function o(h,m,g){return e.call(h)==="[object Number]"&&m<=h&&h<=g}r.numberRange=o;function l(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}r.integer=l;function u(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}r.uinteger=u;function c(h){return e.call(h)==="[object Function]"}r.func=c;function d(h){return h!==null&&typeof h=="object"}r.objectLiteral=d;function f(h,m){return Array.isArray(h)&&h.every(m)}r.typedArray=f})(p||(p={}));class um{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new Hu(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new ua;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const n=new _s(e.startOffset,e.image.length,as(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){const t=e.container;if(t){const n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new _s(s.startOffset,s.image.length,as(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...t);return}for(;n.container;){const s=n.container.content.indexOf(n);if(s>0){n.container.content.splice(s,0,...t),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...t)}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();(n==null?void 0:n.content.length)===0&&this.removeNode(n)}}class ju{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class _s extends ju{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,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=n}}class ua extends ju{constructor(){super(...arguments),this.content=new ca(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:n}=e,{range:i}=t;this._rangeCache={start:n.start,end:i.end.line<n.start.line?n.start:i.end}}return this._rangeCache}else return{start:P.create(0,0),end:P.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class ca extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,ca.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(const t of e)t.container=this.parent}}class Hu extends ua{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Os=Symbol("Datatype");function Si(r){return r.$type===Os}const tl="​",Wu=r=>r.endsWith(tl)?r:r+tl;class zu{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n=e.LanguageMetaData.mode==="production";this.wrapper=new pm(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()}}class cm extends zu{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new um,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(Wu(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment)return Jl(e)?Os:qs(e)??e.name}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const i=t.rule?this.allRules.get(t.rule):this.mainRule;if(!i)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===Os&&(a.value="")}let s;try{s=t(n)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let i=0;i<t.length;i++)if(t[i].startOffset>n)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,n){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,n),{assignment:o,isCrossRef:l}=this.getAssignment(n),u=this.current;if(o){const c=Tt(n)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,c,a,l)}else if(Si(u)){let c=i.image;Tt(n)||(c=this.converter.convert(c,a).toString()),u.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,n,i,s){let a;!this.isRecording()&&!n&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,t,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,t,n){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,n,s);else if(!i){const a=this.current;if(Si(a))a.value+=e.toString();else if(typeof e=="object"&&e){const o=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(o)}}}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);const i={$type:e};this.stack.push(i),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Vd(e),this.nodeBuilder.construct(e),this.stack.pop(),Si(e)?this.converter.convert(e.value,e.$cstNode):(jd(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=ei(e,yt);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Hs(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,n,i,s){const a=this.current;let o;switch(s&&typeof n=="string"?o=this.linker.buildReference(a,t,i,n):o=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(const[i,s]of Object.entries(t)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class dm{buildMismatchTokenMessage(e){return Lt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Lt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Lt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Lt.buildEarlyExitMessage(e)}}class Yu extends dm{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}\`.`}}class fm extends zu{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.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){const n=this.wrapper.DEFINE_RULE(Wu(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=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,i,s){this.before(i),this.wrapper.wrapSubrule(e,t,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const hm={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Yu};class pm extends $p{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},hm),{lookaheadStrategy:n?new na({maxLookahead:t.maxLookahead}):new Bp({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 qu(r,e,t){return mm({parser:e,tokens:t,ruleNames:new Map},r),e}function mm(r,e){const t=zl(e,!1),n=ee(e.rules).filter(we).filter(i=>t.has(i));for(const i of n){const s=Object.assign(Object.assign({},r),{consume:1,optional:1,subrule:1,many:1,or:1});r.parser.rule(i,$t(s,i.definition))}}function $t(r,e,t=!1){let n;if(Tt(e))n=Em(r,e);else if(Zn(e))n=gm(r,e);else if(yt(e))n=$t(r,e.terminal);else if(Hs(e))n=Xu(r,e);else if(vt(e))n=ym(r,e);else if(Kl(e))n=vm(r,e);else if(Bl(e))n=Rm(r,e);else if(Ws(e))n=$m(r,e);else if(Pd(e)){const i=r.consume++;n=()=>r.parser.consume(i,tt,e)}else throw new Dl(e.$cstNode,`Unexpected element type: ${e.$type}`);return Qu(r,t?void 0:Wn(e),n,e.cardinality)}function gm(r,e){const t=Xs(e);return()=>r.parser.action(t,e)}function ym(r,e){const t=e.rule.ref;if(we(t)){const n=r.subrule++,i=t.fragment,s=e.arguments.length>0?Tm(t,e.arguments):()=>({});return a=>r.parser.subrule(n,Ju(r,t),i,e,s(a))}else if(At(t)){const n=r.consume++,i=Ps(r,t.name);return()=>r.parser.consume(n,i,e)}else if(t)Dr();else throw new Dl(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function Tm(r,e){const t=e.map(n=>ze(n.value));return n=>{const i={};for(let s=0;s<t.length;s++){const a=r.parameters[s],o=t[s];i[a.name]=o(n)}return i}}function ze(r){if(Nd(r)){const e=ze(r.left),t=ze(r.right);return n=>e(n)||t(n)}else if(Cd(r)){const e=ze(r.left),t=ze(r.right);return n=>e(n)&&t(n)}else if(wd(r)){const e=ze(r.value);return t=>!e(t)}else if(Ld(r)){const e=r.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Sd(r)){const e=!!r.true;return()=>e}Dr()}function vm(r,e){if(e.elements.length===1)return $t(r,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:$t(r,i,!0)},a=Wn(i);a&&(s.GATE=ze(a)),t.push(s)}const n=r.or++;return i=>r.parser.alternatives(n,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function Rm(r,e){if(e.elements.length===1)return $t(r,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:$t(r,o,!0)},u=Wn(o);u&&(l.GATE=ze(u)),t.push(l)}const n=r.or++,i=(o,l)=>{const u=l.getRuleStack().join("-");return`uGroup_${o}_${u}`},s=o=>r.parser.alternatives(n,t.map((l,u)=>{const c={ALT:()=>!0},d=r.parser;c.ALT=()=>{if(l.ALT(o),!d.isRecording()){const h=i(n,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const m=d.unorderedGroups.get(h);typeof(m==null?void 0:m[u])>"u"&&(m[u]=!0)}};const f=l.GATE;return f?c.GATE=()=>f(o):c.GATE=()=>{const h=d.unorderedGroups.get(i(n,d));return!(h!=null&&h[u])},c})),a=Qu(r,Wn(e),s,"*");return o=>{a(o),r.parser.isRecording()||r.parser.unorderedGroups.delete(i(n,r.parser))}}function $m(r,e){const t=e.elements.map(n=>$t(r,n));return n=>t.forEach(i=>i(n))}function Wn(r){if(Ws(r))return r.guardCondition}function Xu(r,e,t=e.terminal){if(t)if(vt(t)&&we(t.rule.ref)){const n=t.rule.ref,i=r.subrule++;return s=>r.parser.subrule(i,Ju(r,n),!1,e,s)}else if(vt(t)&&At(t.rule.ref)){const n=r.consume++,i=Ps(r,t.rule.ref.name);return()=>r.parser.consume(n,i,e)}else if(Tt(t)){const n=r.consume++,i=Ps(r,t.value);return()=>r.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const n=Xl(e.type.ref),i=n==null?void 0:n.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Xs(e.type.ref));return Xu(r,e,i)}}function Em(r,e){const t=r.consume++,n=r.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>r.parser.consume(t,n,e)}function Qu(r,e,t,n){const i=e&&ze(e);if(!n)if(i){const s=r.or++;return a=>r.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:qa(),GATE:()=>!i(a)}])}else return t;if(n==="*"){const s=r.many++;return a=>r.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(n==="+"){const s=r.many++;if(i){const a=r.or++;return o=>r.parser.alternatives(a,[{ALT:()=>r.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:qa(),GATE:()=>!i(o)}])}else return a=>r.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(n==="?"){const s=r.optional++;return a=>r.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else Dr()}function Ju(r,e){const t=km(r,e),n=r.parser.getRule(t);if(!n)throw new Error(`Rule "${t}" not found."`);return n}function km(r,e){if(we(e))return e.name;if(r.ruleNames.has(e))return r.ruleNames.get(e);{let t=e,n=t.$container,i=e.$type;for(;!we(n);)(Ws(n)||Kl(n)||Bl(n))&&(i=n.elements.indexOf(t).toString()+":"+i),t=n,n=n.$container;return i=n.name+":"+i,r.ruleNames.set(e,i),i}}function Ps(r,e){const t=r.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function Am(r){const e=r.Grammar,t=r.parser.Lexer,n=new fm(r);return qu(e,n,t.definition),n.finalize(),n}function xm(r){const e=Im(r);return e.finalize(),e}function Im(r){const e=r.Grammar,t=r.parser.Lexer,n=new cm(r);return qu(e,n,t.definition)}class Zu{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=ee(zl(e,!1)),i=this.buildTerminalTokens(n),s=this.buildKeywordTokens(n,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&ls(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(At).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Qs(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=ls(t)?fe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(n,i)=>(t.lastIndex=i,t.exec(n))}buildKeywordTokens(e,t,n){return e.filter(we).flatMap(i=>Fr(i).filter(Tt)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(n!=null&&n.caseInsensitive)))}buildKeywordToken(e,t,n){const i=this.buildKeywordPattern(e,n),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,t){return t?new RegExp(Zd(e.value)):e.value}findLongerAlt(e,t){return t.reduce((n,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&ef("^"+s.source+"$",e.value)&&n.push(i),n},[])}}class ec{convert(e,t){let n=t.grammarSource;if(Hs(n)&&(n=sf(n)),vt(n)){const i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,n){var i;switch(e.name.toUpperCase()){case"INT":return je.convertInt(t);case"STRING":return je.convertString(t);case"ID":return je.convertID(t)}switch((i=ff(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return je.convertNumber(t);case"boolean":return je.convertBoolean(t);case"bigint":return je.convertBigint(t);case"date":return je.convertDate(t);default:return t}}}var je;(function(r){function e(u){let c="";for(let d=1;d<u.length-1;d++){const f=u.charAt(d);if(f==="\\"){const h=u.charAt(++d);c+=t(h)}else c+=f}return c}r.convertString=e;function t(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function n(u){return u.charAt(0)==="^"?u.substring(1):u}r.convertID=n;function i(u){return parseInt(u)}r.convertInt=i;function s(u){return BigInt(u)}r.convertBigint=s;function a(u){return new Date(u)}r.convertDate=a;function o(u){return Number(u)}r.convertNumber=o;function l(u){return u.toLowerCase()==="true"}r.convertBoolean=l})(je||(je={}));var pt={},sn={},rl;function tc(){if(rl)return sn;rl=1,Object.defineProperty(sn,"__esModule",{value:!0});let r;function e(){if(r===void 0)throw new Error("No runtime abstraction layer installed");return r}return function(t){function n(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");r=i}t.install=n}(e||(e={})),sn.default=e,sn}var Q={},nl;function Sm(){if(nl)return Q;nl=1,Object.defineProperty(Q,"__esModule",{value:!0}),Q.stringArray=Q.array=Q.func=Q.error=Q.number=Q.string=Q.boolean=void 0;function r(o){return o===!0||o===!1}Q.boolean=r;function e(o){return typeof o=="string"||o instanceof String}Q.string=e;function t(o){return typeof o=="number"||o instanceof Number}Q.number=t;function n(o){return o instanceof Error}Q.error=n;function i(o){return typeof o=="function"}Q.func=i;function s(o){return Array.isArray(o)}Q.array=s;function a(o){return s(o)&&o.every(l=>e(l))}return Q.stringArray=a,Q}var mt={},il;function rc(){if(il)return mt;il=1,Object.defineProperty(mt,"__esModule",{value:!0}),mt.Emitter=mt.Event=void 0;const r=tc();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(mt.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,u=this._callbacks.length;l<u;l++)if(this._callbacks[l]===s)if(this._contexts[l]===a){this._callbacks.splice(l,1),this._contexts.splice(l,1);return}else o=!0;if(o)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],o=this._callbacks.slice(0),l=this._contexts.slice(0);for(let u=0,c=o.length;u<c;u++)try{a.push(o[u].apply(l[u],s))}catch(d){(0,r.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class n{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,o)=>{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=n._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return mt.Emitter=n,n._noop=function(){},mt}var sl;function Cm(){if(sl)return pt;sl=1,Object.defineProperty(pt,"__esModule",{value:!0}),pt.CancellationTokenSource=pt.CancellationToken=void 0;const r=tc(),e=Sm(),t=rc();var n;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(u){const c=u;return c&&(c===o.None||c===o.Cancelled||e.boolean(c.isCancellationRequested)&&!!c.onCancellationRequested)}o.is=l})(n||(pt.CancellationToken=n={}));const i=Object.freeze(function(o,l){const u=(0,r.default)().timer.setTimeout(o.bind(l),0);return{dispose(){u.dispose()}}});class s{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?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=n.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=n.None}}return pt.CancellationTokenSource=a,pt}var B=Cm();function Nm(){return new Promise(r=>{typeof setImmediate>"u"?setTimeout(r,0):setImmediate(r)})}let Rn=0,wm=10;function Lm(){return Rn=performance.now(),new B.CancellationTokenSource}const zn=Symbol("OperationCancelled");function ci(r){return r===zn}async function $e(r){if(r===B.CancellationToken.None)return;const e=performance.now();if(e-Rn>=wm&&(Rn=e,await Nm(),Rn=performance.now()),r.isCancellationRequested)throw zn}class da{constructor(){this.promise=new Promise((e,t)=>{this.resolve=n=>(e(n),this),this.reject=n=>(t(n),this)})}}class Pr{constructor(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const n of e)if(Pr.isIncremental(n)){const i=ic(n.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+n.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let u=this._lineOffsets;const c=al(n.text,!1,s);if(l-o===c.length)for(let f=0,h=c.length;f<h;f++)u[f+o+1]=c[f];else c.length<1e4?u.splice(o+1,l-o,...c):this._lineOffsets=u=u.slice(0,o+1).concat(c,u.slice(l+1));const d=n.text.length-(a-s);if(d!==0)for(let f=o+1+c.length,h=u.length;f<h;f++)u[f]=u[f]+d}else if(Pr.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=al(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let n=0,i=t.length;if(i===0)return{line:0,character:e};for(;n<i;){const a=Math.floor((n+i)/2);t[a]>e?i=a:n=a+1}const s=n-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(n+e.character,i);return this.ensureBeforeEOL(s,n)}ensureBeforeEOL(e,t){for(;e>t&&nc(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var Ms;(function(r){function e(i,s,a,o){return new Pr(i,s,a,o)}r.create=e;function t(i,s,a){if(i instanceof Pr)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function n(i,s){const a=i.getText(),o=Ds(s.map(bm),(c,d)=>{const f=c.range.start.line-d.range.start.line;return f===0?c.range.start.character-d.range.start.character:f});let l=0;const u=[];for(const c of o){const d=i.offsetAt(c.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&u.push(a.substring(l,d)),c.newText.length&&u.push(c.newText),l=i.offsetAt(c.range.end)}return u.push(a.substr(l)),u.join("")}r.applyEdits=n})(Ms||(Ms={}));function Ds(r,e){if(r.length<=1)return r;const t=r.length/2|0,n=r.slice(0,t),i=r.slice(t);Ds(n,e),Ds(i,e);let s=0,a=0,o=0;for(;s<n.length&&a<i.length;)e(n[s],i[a])<=0?r[o++]=n[s++]:r[o++]=i[a++];for(;s<n.length;)r[o++]=n[s++];for(;a<i.length;)r[o++]=i[a++];return r}function al(r,e,t=0){const n=e?[t]:[];for(let i=0;i<r.length;i++){const s=r.charCodeAt(i);nc(s)&&(s===13&&i+1<r.length&&r.charCodeAt(i+1)===10&&i++,n.push(t+i+1))}return n}function nc(r){return r===13||r===10}function ic(r){const e=r.start,t=r.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function bm(r){const e=ic(r.range);return e!==r.range?{newText:r.newText,range:e}:r}var sc;(()=>{var r={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,u){for(var c,d="",f=0,h=-1,m=0,g=0;g<=l.length;++g){if(g<l.length)c=l.charCodeAt(g);else{if(c===47)break;c=47}if(c===47){if(!(h===g-1||m===1))if(h!==g-1&&m===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var A=d.lastIndexOf("/");if(A!==d.length-1){A===-1?(d="",f=0):f=(d=d.slice(0,A)).length-1-d.lastIndexOf("/"),h=g,m=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=g,m=0;continue}}u&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+l.slice(h+1,g):d=l.slice(h+1,g),f=g-h-1;h=g,m=0}else c===46&&m!==-1?++m:m=-1}return d}var o={resolve:function(){for(var l,u="",c=!1,d=arguments.length-1;d>=-1&&!c;d--){var f;d>=0?f=arguments[d]:(l===void 0&&(l=process.cwd()),f=l),s(f),f.length!==0&&(u=f+"/"+u,c=f.charCodeAt(0)===47)}return u=a(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(s(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=a(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u<arguments.length;++u){var c=arguments[u];s(c),c.length>0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":o.normalize(l)},relative:function(l,u){if(s(l),s(u),l===u||(l=o.resolve(l))===(u=o.resolve(u)))return"";for(var c=1;c<l.length&&l.charCodeAt(c)===47;++c);for(var d=l.length,f=d-c,h=1;h<u.length&&u.charCodeAt(h)===47;++h);for(var m=u.length-h,g=f<m?f:m,A=-1,R=0;R<=g;++R){if(R===g){if(m>g){if(u.charCodeAt(h+R)===47)return u.slice(h+R+1);if(R===0)return u.slice(h+R)}else f>g&&(l.charCodeAt(c+R)===47?A=R:R===0&&(A=0));break}var $=l.charCodeAt(c+R);if($!==u.charCodeAt(h+R))break;$===47&&(A=R)}var T="";for(R=c+A+1;R<=d;++R)R!==d&&l.charCodeAt(R)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+u.slice(h+A):(h+=A,u.charCodeAt(h)===47&&++h,u.slice(h))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,d=-1,f=!0,h=l.length-1;h>=1;--h)if((u=l.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?c?"/":".":c&&d===1?"//":l.slice(0,d)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(l);var c,d=0,f=-1,h=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var m=u.length-1,g=-1;for(c=l.length-1;c>=0;--c){var A=l.charCodeAt(c);if(A===47){if(!h){d=c+1;break}}else g===-1&&(h=!1,g=c+1),m>=0&&(A===u.charCodeAt(m)?--m==-1&&(f=c):(m=-1,f=g))}return d===f?f=g:f===-1&&(f=l.length),l.slice(d,f)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!h){d=c+1;break}}else f===-1&&(h=!1,f=c+1);return f===-1?"":l.slice(d,f)},extname:function(l){s(l);for(var u=-1,c=0,d=-1,f=!0,h=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)d===-1&&(f=!1,d=m+1),g===46?u===-1?u=m:h!==1&&(h=1):u!==-1&&(h=-1);else if(!f){c=m+1;break}}return u===-1||d===-1||h===0||h===1&&u===d-1&&u===c+1?"":l.slice(u,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(u,c){var d=c.dir||c.root,f=c.base||(c.name||"")+(c.ext||"");return d?d===c.root?d+f:d+"/"+f:f}(0,l)},parse:function(l){s(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,d=l.charCodeAt(0),f=d===47;f?(u.root="/",c=1):c=0;for(var h=-1,m=0,g=-1,A=!0,R=l.length-1,$=0;R>=c;--R)if((d=l.charCodeAt(R))!==47)g===-1&&(A=!1,g=R+1),d===46?h===-1?h=R:$!==1&&($=1):h!==-1&&($=-1);else if(!A){m=R+1;break}return h===-1||g===-1||$===0||$===1&&h===g-1&&h===m+1?g!==-1&&(u.base=u.name=m===0&&f?l.slice(1,g):l.slice(m,g)):(m===0&&f?(u.name=l.slice(1,h),u.base=l.slice(1,g)):(u.name=l.slice(m,h),u.base=l.slice(m,g)),u.ext=l.slice(h,g)),m>0?u.dir=l.slice(0,m-1):f&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return r[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>f,Utils:()=>Se}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(E,y){if(!E.scheme&&y)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${E.authority}", path: "${E.path}", query: "${E.query}", fragment: "${E.fragment}"}`);if(E.scheme&&!s.test(E.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(E.path){if(E.authority){if(!a.test(E.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(E.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",c="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{constructor(y,S,x,_,b,L=!1){ht(this,"scheme"),ht(this,"authority"),ht(this,"path"),ht(this,"query"),ht(this,"fragment"),typeof y=="object"?(this.scheme=y.scheme||u,this.authority=y.authority||u,this.path=y.path||u,this.query=y.query||u,this.fragment=y.fragment||u):(this.scheme=function(Te,Y){return Te||Y?Te:"file"}(y,L),this.authority=S||u,this.path=function(Te,Y){switch(Te){case"https":case"http":case"file":Y?Y[0]!==c&&(Y=c+Y):Y=c}return Y}(this.scheme,x||u),this.query=_||u,this.fragment=b||u,l(this,L))}static isUri(y){return y instanceof f||!!y&&typeof y.authority=="string"&&typeof y.fragment=="string"&&typeof y.path=="string"&&typeof y.query=="string"&&typeof y.scheme=="string"&&typeof y.fsPath=="string"&&typeof y.with=="function"&&typeof y.toString=="function"}get fsPath(){return $(this)}with(y){if(!y)return this;let{scheme:S,authority:x,path:_,query:b,fragment:L}=y;return S===void 0?S=this.scheme:S===null&&(S=u),x===void 0?x=this.authority:x===null&&(x=u),_===void 0?_=this.path:_===null&&(_=u),b===void 0?b=this.query:b===null&&(b=u),L===void 0?L=this.fragment:L===null&&(L=u),S===this.scheme&&x===this.authority&&_===this.path&&b===this.query&&L===this.fragment?this:new m(S,x,_,b,L)}static parse(y,S=!1){const x=d.exec(y);return x?new m(x[2]||u,ie(x[4]||u),ie(x[5]||u),ie(x[7]||u),ie(x[9]||u),S):new m(u,u,u,u,u)}static file(y){let S=u;if(i&&(y=y.replace(/\\/g,c)),y[0]===c&&y[1]===c){const x=y.indexOf(c,2);x===-1?(S=y.substring(2),y=c):(S=y.substring(2,x),y=y.substring(x)||c)}return new m("file",S,y,u,u)}static from(y){const S=new m(y.scheme,y.authority,y.path,y.query,y.fragment);return l(S,!0),S}toString(y=!1){return T(this,y)}toJSON(){return this}static revive(y){if(y){if(y instanceof f)return y;{const S=new m(y);return S._formatted=y.external,S._fsPath=y._sep===h?y.fsPath:null,S}}return y}}const h=i?1:void 0;class m extends f{constructor(){super(...arguments),ht(this,"_formatted",null),ht(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=$(this)),this._fsPath}toString(y=!1){return y?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){const y={$mid:1};return this._fsPath&&(y.fsPath=this._fsPath,y._sep=h),this._formatted&&(y.external=this._formatted),this.path&&(y.path=this.path),this.scheme&&(y.scheme=this.scheme),this.authority&&(y.authority=this.authority),this.query&&(y.query=this.query),this.fragment&&(y.fragment=this.fragment),y}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(E,y,S){let x,_=-1;for(let b=0;b<E.length;b++){const L=E.charCodeAt(b);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||y&&L===47||S&&L===91||S&&L===93||S&&L===58)_!==-1&&(x+=encodeURIComponent(E.substring(_,b)),_=-1),x!==void 0&&(x+=E.charAt(b));else{x===void 0&&(x=E.substr(0,b));const Te=g[L];Te!==void 0?(_!==-1&&(x+=encodeURIComponent(E.substring(_,b)),_=-1),x+=Te):_===-1&&(_=b)}}return _!==-1&&(x+=encodeURIComponent(E.substring(_))),x!==void 0?x:E}function R(E){let y;for(let S=0;S<E.length;S++){const x=E.charCodeAt(S);x===35||x===63?(y===void 0&&(y=E.substr(0,S)),y+=g[x]):y!==void 0&&(y+=E[S])}return y!==void 0?y:E}function $(E,y){let S;return S=E.authority&&E.path.length>1&&E.scheme==="file"?`//${E.authority}${E.path}`:E.path.charCodeAt(0)===47&&(E.path.charCodeAt(1)>=65&&E.path.charCodeAt(1)<=90||E.path.charCodeAt(1)>=97&&E.path.charCodeAt(1)<=122)&&E.path.charCodeAt(2)===58?E.path[1].toLowerCase()+E.path.substr(2):E.path,i&&(S=S.replace(/\//g,"\\")),S}function T(E,y){const S=y?R:A;let x="",{scheme:_,authority:b,path:L,query:Te,fragment:Y}=E;if(_&&(x+=_,x+=":"),(b||_==="file")&&(x+=c,x+=c),b){let V=b.indexOf("@");if(V!==-1){const ct=b.substr(0,V);b=b.substr(V+1),V=ct.lastIndexOf(":"),V===-1?x+=S(ct,!1,!1):(x+=S(ct.substr(0,V),!1,!1),x+=":",x+=S(ct.substr(V+1),!1,!0)),x+="@"}b=b.toLowerCase(),V=b.lastIndexOf(":"),V===-1?x+=S(b,!1,!0):(x+=S(b.substr(0,V),!1,!0),x+=b.substr(V))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){const V=L.charCodeAt(1);V>=65&&V<=90&&(L=`/${String.fromCharCode(V+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){const V=L.charCodeAt(0);V>=65&&V<=90&&(L=`${String.fromCharCode(V+32)}:${L.substr(2)}`)}x+=S(L,!0,!1)}return Te&&(x+="?",x+=S(Te,!1,!1)),Y&&(x+="#",x+=y?Y:A(Y,!1,!1)),x}function I(E){try{return decodeURIComponent(E)}catch{return E.length>3?E.substr(0,3)+I(E.substr(3)):E}}const G=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ie(E){return E.match(G)?E.replace(G,y=>I(y)):E}var Le=t(470);const ye=Le.posix||Le,Fe="/";var Se;(function(E){E.joinPath=function(y,...S){return y.with({path:ye.join(y.path,...S)})},E.resolvePath=function(y,...S){let x=y.path,_=!1;x[0]!==Fe&&(x=Fe+x,_=!0);let b=ye.resolve(x,...S);return _&&b[0]===Fe&&!y.authority&&(b=b.substring(1)),y.with({path:b})},E.dirname=function(y){if(y.path.length===0||y.path===Fe)return y;let S=ye.dirname(y.path);return S.length===1&&S.charCodeAt(0)===46&&(S=""),y.with({path:S})},E.basename=function(y){return ye.basename(y.path)},E.extname=function(y){return ye.extname(y.path)}})(Se||(Se={}))})(),sc=n})();const{URI:Et,Utils:Yt}=sc;var nt;(function(r){r.basename=Yt.basename,r.dirname=Yt.dirname,r.extname=Yt.extname,r.joinPath=Yt.joinPath,r.resolvePath=Yt.resolvePath;function e(i,s){return(i==null?void 0:i.toString())===(s==null?void 0:s.toString())}r.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(h=>h.length>0),u=o.split("/").filter(h=>h.length>0);let c=0;for(;c<l.length&&l[c]===u[c];c++);const d="../".repeat(l.length-c),f=u.slice(c).join("/");return d+f}r.relative=t;function n(i){return Et.parse(i.toString()).toString()}r.normalize=n})(nt||(nt={}));var U;(function(r){r[r.Changed=0]="Changed",r[r.Parsed=1]="Parsed",r[r.IndexedContent=2]="IndexedContent",r[r.ComputedScopes=3]="ComputedScopes",r[r.Linked=4]="Linked",r[r.IndexedReferences=5]="IndexedReferences",r[r.Validated=6]="Validated"})(U||(U={}));class _m{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=B.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=t??Et.parse(e.uri),B.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return B.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"){const i=this.parse(e,t,n);return this.createLangiumDocument(i,e,void 0,t)}else if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,t.getText(),n);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,n){if(typeof t=="string"){const i=await this.parseAsync(e,t,n);return this.createLangiumDocument(i,e,void 0,t)}else{const i=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,n,i){let s;if(n)s={parseResult:e,uri:t,state:U.Parsed,references:[],textDocument:n};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:U.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var n,i;const s=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=U.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){const n=this.serviceRegistry;let i;return()=>i??(i=Ms.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Om{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return ee(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const 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(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=U.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=U.Changed,this.documentMap.delete(t)),n}}const Ci=Symbol("ref_resolving");class Pm{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=B.CancellationToken.None){for(const n of bt(e.parseResult.value))await $e(t),jl(n).forEach(i=>this.doLink(i,e))}doLink(e,t){var n;const i=e.reference;if(i._ref===void 0){i._ref=Ci;try{const s=this.getCandidate(e);if(hn(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(n=s.message)!==null&&n!==void 0?n:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const 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,i){const s=this,a={$refNode:n,$refText:i,get ref(){var o;if(ae(this._ref))return this._ref;if(yd(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=Ci;const l=os(e).$document,u=s.getLinkedNode({reference:a,container:e,property:t});if(u.error&&l&&l.state<U.ComputedScopes)return this._ref=void 0;this._ref=(o=u.node)!==null&&o!==void 0?o:u.error,this._nodeDescription=u.descr,l==null||l.references.push(this)}else if(this._ref===Ci)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${i}')`);return ae(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return hn(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const n=this.getCandidate(e);if(hn(n))return{error:n};const i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(e,n)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const i=(t=n.message)!==null&&t!==void 0?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const n=os(e.container).$document;n&&n.state<U.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}}function Mm(r){return typeof r.name=="string"}class Dm{getName(e){if(Mm(e))return e.name}getNameNode(e){return ql(e.$cstNode,"name")}}class Fm{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=cf(e),n=e.astNode;if(t&&n){const i=n[t.feature];if(Ge(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Ge(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(n){const i=this.nameProvider.getNameNode(n);if(i&&(i===e||Rd(e,i)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t!=null&&t.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(e,t){const n=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&n.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>nt.equals(s.sourceUri,t.documentUri))),n.push(...i),ee(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=Ze(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Nn(t),local:!0}}}}class Yn{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return is.sum(ee(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const n=this.map.get(e);if(n){const i=n.indexOf(t);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{const 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(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ee(this.map.entries()).flatMap(([e,t])=>t.map(n=>[e,n]))}keys(){return ee(this.map.keys())}values(){return ee(this.map.values()).flat()}entriesGroupedByKey(){return ee(this.map.entries())}}class ol{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[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){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class Um{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=B.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=zs,i=B.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of n(e))await $e(i),this.exportNode(a,s,t);return s}exportNode(e,t,n){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,t=B.CancellationToken.None){const n=e.parseResult.value,i=new Yn;for(const s of Fr(n))await $e(t),this.processNode(s,e,i);return i}processNode(e,t,n){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&n.add(i,this.descriptions.createDescription(e,s,t))}}}class ll{constructor(e,t,n){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class Gm{constructor(e,t,n){var i;this.elements=new Map,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const 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=ee(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class ac{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Km extends ac{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){const 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()}}class Bm extends ac{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}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();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(n){const s=n();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class Vm extends Km{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class jm{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 Vm(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),i=Ze(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(ee(o).filter(l=>this.reflection.isSubtype(l.type,n))),a=a.$container}while(a)}let s=this.getGlobalScope(n,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,n){return new ll(ee(e),t,n)}createScopeForNodes(e,t,n){const i=ee(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new ll(i,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Gm(this.indexManager.allElements(e)))}}function Hm(r){return typeof r.$comment=="string"}function ul(r){return typeof r=="object"&&!!r&&("$ref"in r||"$error"in r)}class Wm{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){const n=t??{},i=t==null?void 0:t.replacer,s=(o,l)=>this.replacer(o,l,n),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=Ze(e),JSON.stringify(e,a,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=t??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,t,{refText:n,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,u,c,d;if(!this.ignoreProperties.has(e))if(Ge(t)){const f=t.ref,h=n?t.$refText:void 0;if(f){const m=Ze(f);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());const A=this.astNodeLocator.getAstNodePath(f);return{$ref:`${g}#${A}`,$refText:h}}else return{$error:(u=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:h}}else if(ae(t)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&f!=null&&f.$textRegion&&(f.$textRegion.documentURI=(c=this.currentDocument)===null||c===void 0?void 0:c.uri.toString())),i&&!e&&(f??(f=Object.assign({},t)),f.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){f??(f=Object.assign({},t));const h=this.commentProvider.getComment(t);h&&(f.$comment=h.replace(/\r/g,""))}return f??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=n=>({offset:n.offset,end:n.end,length:n.length,range:n.range});if(e.$cstNode){const n=e.$textRegion=t(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=of(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,n,i,s,a){for(const[l,u]of Object.entries(e))if(Array.isArray(u))for(let c=0;c<u.length;c++){const d=u[c];ul(d)?u[c]=this.reviveReference(e,l,t,d,n):ae(d)&&this.linkNode(d,t,n,e,l,c)}else ul(u)?e[l]=this.reviveReference(e,l,t,u,n):ae(u)&&this.linkNode(u,t,n,e,l);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,n,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const l=this.getRefNode(n,i.$ref,s.uriConverter);if(ae(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,n){try{const i=t.indexOf("#");if(i===0)return this.astNodeLocator.getAstNode(e,t.substring(1))||"Could not resolve path: "+t;if(i<0){const l=n?n(t):Et.parse(t),u=this.langiumDocuments.getDocument(l);return u?u.parseResult.value:"Could not find document for URI: "+t}const s=n?n(t.substring(0,i)):Et.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);return a?i===t.length-1?a.parseResult.value:this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1))||"Could not resolve URI: "+t:"Could not find document for URI: "+t}catch(i){return String(i)}}}class zm{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e==null?void 0:e.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const 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){var t,n;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(n=(t=this.textDocuments)===null||t===void 0?void 0:t.get(e))===null||n===void 0?void 0:n.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=nt.extname(e),a=this.fileExtensionMap.get(s);if(!a)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Ir(r){return{code:r}}var qn;(function(r){r.all=["fast","slow","built-in"]})(qn||(qn={}));class Ym{constructor(e){this.entries=new Yn,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const l={check:this.wrapValidationException(o,t),category:n};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:n};this.addEntry(i,o)}else Dr()}}wrapValidationException(e,t){return async(n,i,s)=>{await this.handleException(()=>e.call(t,n,i,s),"An error occurred during validation",i,n)}}async handleException(e,t,n,i){try{await e()}catch(s){if(ci(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);n("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t)}getChecks(e,t){let n=ee(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(i=>t.includes(i.category))),n.map(i=>i.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(i,s,a,o)=>{await this.handleException(()=>e.call(n,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class qm{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=B.CancellationToken.None){const i=e.parseResult,s=[];if(await $e(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,n))}catch(a){if(ci(a))throw a;console.error("An error occurred during validation:",a)}return await $e(n),s}processLexingErrors(e,t,n){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const u=(a=l.severity)!==null&&a!==void 0?a:"error",c={severity:Ni(u),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:Qm(u),source:this.getSource()};t.push(c)}}processParsingErrors(e,t,n){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=as(i.token);if(s){const a={severity:Ni("error"),range:s,message:i.message,data:Ir(_e.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,n){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:_e.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,n=B.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,t,s,n),await this.validateAstNodes(e,t,s,n),await this.validateAstAfter(e,t,s,n),i}async validateAstBefore(e,t,n,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await $e(i),await o(e,n,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,n,i=B.CancellationToken.None){await Promise.all(bt(e).map(async s=>{await $e(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,n,i)}))}async validateAstAfter(e,t,n,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await $e(i),await o(e,n,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,n){return{message:t,range:Xm(n),severity:Ni(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 Xm(r){if(r.range)return r.range;let e;return typeof r.property=="string"?e=ql(r.node.$cstNode,r.property,r.index):typeof r.keyword=="string"&&(e=lf(r.node.$cstNode,r.keyword,r.index)),e??(e=r.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Ni(r){switch(r){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+r)}}function Qm(r){switch(r){case"error":return Ir(_e.LexingError);case"warning":return Ir(_e.LexingWarning);case"info":return Ir(_e.LexingInfo);case"hint":return Ir(_e.LexingHint);default:throw new Error("Invalid diagnostic severity: "+r)}}var _e;(function(r){r.LexingError="lexing-error",r.LexingWarning="lexing-warning",r.LexingInfo="lexing-info",r.LexingHint="lexing-hint",r.ParsingError="parsing-error",r.LinkingError="linking-error"})(_e||(_e={}));class Jm{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const i=n??Ze(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=Nn((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Nn(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class Zm{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=B.CancellationToken.None){const n=[],i=e.parseResult.value;for(const s of bt(i))await $e(t),jl(s).filter(a=>!hn(a)).forEach(a=>{const o=this.createDescription(a);o&&n.push(o)});return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const i=Ze(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Nn(n),local:nt.equals(t.documentUri,i)}}}class eg{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((n,i)=>{if(!n||i.length===0)return n;const s=i.indexOf(this.indexSeparator);if(s>0){const a=i.substring(0,s),o=parseInt(i.substring(s+1)),l=n[a];return l==null?void 0:l[o]}return n[i]},e)}}var tg=rc();class rg{constructor(e){this._ready=new da,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new tg.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=(n=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,n[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const 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;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Lr;(function(r){function e(t){return{dispose:async()=>await t()}}r.create=e})(Lr||(Lr={}));class ng{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Yn,this.documentPhaseListeners=new Yn,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=U.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=B.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===U.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=U.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),u=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(u){const c=((s=t.validation.categories)!==null&&s!==void 0?s:qn.all).filter(d=>!u.includes(d));c.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:c})},result:l.result}),a.state=U.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=U.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=B.CancellationToken.None){this.currentState=U.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const o=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);o.state=U.Changed,this.langiumDocuments.addDocument(o)}this.buildState.delete(a.toString())}const i=ee(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,U.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await $e(n);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<U.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,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){var t;return!!(!((t=this.textDocuments)===null||t===void 0)&&t.get(e.uri))}shouldRelink(e,t){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Lr.create(()=>{const 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,U.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,U.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,U.ComputedScopes,n,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,n)}),await this.runCancelable(e,U.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(e,U.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,U.Validated,n,s=>this.validate(s,n));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const n of e){const i=n.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s==null?void 0:s.result})}}async runCancelable(e,t,n,i){const s=e.filter(o=>o.state<t);for(const o of s)await $e(n),await i(o),o.state=t,await this.notifyDocumentPhase(o,t,n);const a=e.filter(o=>o.state===t);await this.notifyBuildPhase(a,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Lr.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Lr.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let i;if(t&&"path"in t?i=t:n=t,n??(n=B.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(zn):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u==null?void 0:u.uri)}else s(void 0)}),l=n.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(zn)})})}async notifyDocumentPhase(e,t,n){const i=this.documentPhaseListeners.get(t).slice();for(const s of i)try{await s(e,n)}catch(a){if(!ci(a))throw a}}async notifyBuildPhase(e,t,n){if(e.length===0)return;const i=this.buildPhaseListeners.get(t).slice();for(const s of i)await $e(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const u=this.buildState.get(e.uri.toString());if(u){(n=u.result)!==null&&n!==void 0||(u.result={});const c=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:qn.all;u.result.validationChecks?u.result.validationChecks.push(...c):u.result.validationChecks=[...c]}}getBuildOptions(e){var t,n;return(n=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&n!==void 0?n:{}}}class ig{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Bm,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=Ze(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{nt.equals(a.targetUri,n)&&a.targetPath===t&&i.push(a)})}),ee(i)}allElements(e,t){let n=ee(this.symbolIndex.keys());return t&&(n=n.filter(i=>!t||t.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var i;return((i=this.symbolIndex.get(e))!==null&&i!==void 0?i:[]).filter(s=>this.astReflection.isSubtype(s.type,t))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=B.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=B.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class sg{constructor(e){this.initialBuildOptions={},this._ready=new da,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],t)})}async initializeWorkspace(e,t=B.CancellationToken.None){const n=await this.performStartup(e);await $e(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),n=[],i=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return Et.parse(e.uri)}async traverseFolder(e,t,n,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,n)){if(a.isDirectory)await this.traverseFolder(e,a.uri,n,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,n){const i=nt.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=nt.extname(t.uri);return n.includes(s)}return!1}}class ag{buildUnexpectedCharactersMessage(e,t,n,i,s){return fs.buildUnexpectedCharactersMessage(e,t,n,i,s)}buildUnableToPopLexerModeMessage(e){return fs.buildUnableToPopLexerModeMessage(e)}}const og={mode:"full"};class lg{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=cl(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new fe(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=og){var n,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(n=a.groups.hidden)!==null&&n!==void 0?n:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(cl(e))return e;const t=oc(e)?Object.values(e.modes).flat():e,n={};return t.forEach(i=>n[i.name]=i),n}}function ug(r){return Array.isArray(r)&&(r.length===0||"name"in r[0])}function oc(r){return r&&"modes"in r&&"defaultMode"in r}function cl(r){return!ug(r)&&!oc(r)}function cg(r,e,t){let n,i;typeof r=="string"?(i=e,n=t):(i=r.range.start,n=e),i||(i=P.create(0,0));const s=lc(r),a=fa(n),o=hg({lines:s,position:i,options:a});return Tg({index:0,tokens:o,position:i})}function dg(r,e){const t=fa(e),n=lc(r);if(n.length===0)return!1;const i=n[0],s=n[n.length-1],a=t.start,o=t.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function lc(r){let e="";return typeof r=="string"?e=r:e=r.text,e.split(Yd)}const dl=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,fg=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function hg(r){var e,t,n;const i=[];let s=r.position.line,a=r.position.character;for(let o=0;o<r.lines.length;o++){const l=o===0,u=o===r.lines.length-1;let c=r.lines[o],d=0;if(l&&r.options.start){const f=(e=r.options.start)===null||e===void 0?void 0:e.exec(c);f&&(d=f.index+f[0].length)}else{const f=(t=r.options.line)===null||t===void 0?void 0:t.exec(c);f&&(d=f.index+f[0].length)}if(u){const f=(n=r.options.end)===null||n===void 0?void 0:n.exec(c);f&&(c=c.substring(0,f.index))}if(c=c.substring(0,yg(c)),Fs(c,d)>=c.length){if(i.length>0){const f=P.create(s,a);i.push({type:"break",content:"",range:O.create(f,f)})}}else{dl.lastIndex=d;const f=dl.exec(c);if(f){const h=f[0],m=f[1],g=P.create(s,a+d),A=P.create(s,a+d+h.length);i.push({type:"tag",content:m,range:O.create(g,A)}),d+=h.length,d=Fs(c,d)}if(d<c.length){const h=c.substring(d),m=Array.from(h.matchAll(fg));i.push(...pg(m,h,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function pg(r,e,t,n){const i=[];if(r.length===0){const s=P.create(t,n),a=P.create(t,n+e.length);i.push({type:"text",content:e,range:O.create(s,a)})}else{let s=0;for(const o of r){const l=o.index,u=e.substring(s,l);u.length>0&&i.push({type:"text",content:e.substring(s,l),range:O.create(P.create(t,s+n),P.create(t,l+n))});let c=u.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:O.create(P.create(t,s+c+n),P.create(t,s+c+d.length+n))}),c+=d.length,o.length===4){c+=o[2].length;const f=o[3];i.push({type:"text",content:f,range:O.create(P.create(t,s+c+n),P.create(t,s+c+f.length+n))})}else i.push({type:"text",content:"",range:O.create(P.create(t,s+c+n),P.create(t,s+c+n))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:O.create(P.create(t,s+n),P.create(t,s+n+a.length))})}return i}const mg=/\S/,gg=/\s*$/;function Fs(r,e){const t=r.substring(e).match(mg);return t?e+t.index:r.length}function yg(r){const e=r.match(gg);if(e&&typeof e.index=="number")return e.index}function Tg(r){var e,t,n,i;const s=P.create(r.position.line,r.position.character);if(r.tokens.length===0)return new fl([],O.create(s,s));const a=[];for(;r.index<r.tokens.length;){const u=vg(r,a[a.length-1]);u&&a.push(u)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(n=a[a.length-1])===null||n===void 0?void 0:n.range.end)!==null&&i!==void 0?i:s;return new fl(a,O.create(o,l))}function vg(r,e){const t=r.tokens[r.index];if(t.type==="tag")return cc(r,!1);if(t.type==="text"||t.type==="inline-tag")return uc(r);Rg(t,e),r.index++}function Rg(r,e){if(e){const t=new fc("",r.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function uc(r){let e=r.tokens[r.index];const t=e;let n=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push($g(r)),n=e,e=r.tokens[r.index];return new Us(i,O.create(t.range.start,n.range.end))}function $g(r){return r.tokens[r.index].type==="inline-tag"?cc(r,!0):dc(r)}function cc(r,e){const t=r.tokens[r.index++],n=t.content.substring(1),i=r.tokens[r.index];if((i==null?void 0:i.type)==="text")if(e){const s=dc(r);return new Li(n,new Us([s],s.range),e,O.create(t.range.start,s.range.end))}else{const s=uc(r);return new Li(n,s,e,O.create(t.range.start,s.range.end))}else{const s=t.range;return new Li(n,new Us([],s),e,s)}}function dc(r){const e=r.tokens[r.index++];return new fc(e.content,e.range)}function fa(r){if(!r)return fa({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:n}=r;return{start:wi(e,!0),end:wi(t,!1),line:wi(n,!0)}}function wi(r,e){if(typeof r=="string"||typeof r=="object"){const t=typeof r=="string"?ri(r):r.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return r}class fl{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(const t of this.elements)if(e.length===0)e=t.toString();else{const n=t.toString();e+=hl(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(t.length===0)t=n.toMarkdown(e);else{const i=n.toMarkdown(e);t+=hl(t)+i}return t.trim()}}class Li{constructor(e,t,n,i){this.name=e,this.content=t,this.inline=n,this.range=i}toString(){let e=`@${this.name}`;const t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}
116
+ `&&n++}t&&e.length>0&&r.push(e.length),this._lineOffsets=r}return this._lineOffsets}positionAt(r){r=Math.max(Math.min(r,this._content.length),0);let e=this.getLineOffsets(),t=0,n=e.length;if(n===0)return P.create(0,r);for(;t<n;){let s=Math.floor((t+n)/2);e[s]>r?n=s:t=s+1}let i=t-1;return P.create(i,r-e[i])}offsetAt(r){let e=this.getLineOffsets();if(r.line>=e.length)return this._content.length;if(r.line<0)return 0;let t=e[r.line],n=r.line+1<e.length?e[r.line+1]:this._content.length;return Math.max(Math.min(t+r.character,n),t)}get lineCount(){return this.getLineOffsets().length}};var p;(function(r){const e=Object.prototype.toString;function t(h){return typeof h<"u"}r.defined=t;function n(h){return typeof h>"u"}r.undefined=n;function i(h){return h===!0||h===!1}r.boolean=i;function s(h){return e.call(h)==="[object String]"}r.string=s;function a(h){return e.call(h)==="[object Number]"}r.number=a;function o(h,m,g){return e.call(h)==="[object Number]"&&m<=h&&h<=g}r.numberRange=o;function l(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}r.integer=l;function u(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}r.uinteger=u;function c(h){return e.call(h)==="[object Function]"}r.func=c;function d(h){return h!==null&&typeof h=="object"}r.objectLiteral=d;function f(h,m){return Array.isArray(h)&&h.every(m)}r.typedArray=f})(p||(p={}));class um{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new Hu(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new ua;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const n=new _s(e.startOffset,e.image.length,as(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){const t=e.container;if(t){const n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new _s(s.startOffset,s.image.length,as(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...t);return}for(;n.container;){const s=n.container.content.indexOf(n);if(s>0){n.container.content.splice(s,0,...t),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...t)}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();(n==null?void 0:n.content.length)===0&&this.removeNode(n)}}class ju{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class _s extends ju{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,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=n}}class ua extends ju{constructor(){super(...arguments),this.content=new ca(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:n}=e,{range:i}=t;this._rangeCache={start:n.start,end:i.end.line<n.start.line?n.start:i.end}}return this._rangeCache}else return{start:P.create(0,0),end:P.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class ca extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,ca.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(const t of e)t.container=this.parent}}class Hu extends ua{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Os=Symbol("Datatype");function Si(r){return r.$type===Os}const tl="​",Wu=r=>r.endsWith(tl)?r:r+tl;class zu{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n=e.LanguageMetaData.mode==="production";this.wrapper=new pm(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()}}class cm extends zu{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new um,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(Wu(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment)return Jl(e)?Os:qs(e)??e.name}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const i=t.rule?this.allRules.get(t.rule):this.mainRule;if(!i)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===Os&&(a.value="")}let s;try{s=t(n)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let i=0;i<t.length;i++)if(t[i].startOffset>n)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,n){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,n),{assignment:o,isCrossRef:l}=this.getAssignment(n),u=this.current;if(o){const c=Tt(n)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,c,a,l)}else if(Si(u)){let c=i.image;Tt(n)||(c=this.converter.convert(c,a).toString()),u.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,n,i,s){let a;!this.isRecording()&&!n&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,t,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,t,n){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,n,s);else if(!i){const a=this.current;if(Si(a))a.value+=e.toString();else if(typeof e=="object"&&e){const o=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(o)}}}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);const i={$type:e};this.stack.push(i),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Vd(e),this.nodeBuilder.construct(e),this.stack.pop(),Si(e)?this.converter.convert(e.value,e.$cstNode):(jd(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=ei(e,yt);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Hs(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,n,i,s){const a=this.current;let o;switch(s&&typeof n=="string"?o=this.linker.buildReference(a,t,i,n):o=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(const[i,s]of Object.entries(t)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class dm{buildMismatchTokenMessage(e){return Lt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Lt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Lt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Lt.buildEarlyExitMessage(e)}}class Yu extends dm{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}\`.`}}class fm extends zu{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.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){const n=this.wrapper.DEFINE_RULE(Wu(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=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,i,s){this.before(i),this.wrapper.wrapSubrule(e,t,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const hm={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Yu};class pm extends $p{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},hm),{lookaheadStrategy:n?new na({maxLookahead:t.maxLookahead}):new Kp({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 qu(r,e,t){return mm({parser:e,tokens:t,ruleNames:new Map},r),e}function mm(r,e){const t=zl(e,!1),n=ee(e.rules).filter(we).filter(i=>t.has(i));for(const i of n){const s=Object.assign(Object.assign({},r),{consume:1,optional:1,subrule:1,many:1,or:1});r.parser.rule(i,$t(s,i.definition))}}function $t(r,e,t=!1){let n;if(Tt(e))n=Em(r,e);else if(Zn(e))n=gm(r,e);else if(yt(e))n=$t(r,e.terminal);else if(Hs(e))n=Xu(r,e);else if(vt(e))n=ym(r,e);else if(Bl(e))n=vm(r,e);else if(Kl(e))n=Rm(r,e);else if(Ws(e))n=$m(r,e);else if(Pd(e)){const i=r.consume++;n=()=>r.parser.consume(i,tt,e)}else throw new Dl(e.$cstNode,`Unexpected element type: ${e.$type}`);return Qu(r,t?void 0:Wn(e),n,e.cardinality)}function gm(r,e){const t=Xs(e);return()=>r.parser.action(t,e)}function ym(r,e){const t=e.rule.ref;if(we(t)){const n=r.subrule++,i=t.fragment,s=e.arguments.length>0?Tm(t,e.arguments):()=>({});return a=>r.parser.subrule(n,Ju(r,t),i,e,s(a))}else if(At(t)){const n=r.consume++,i=Ps(r,t.name);return()=>r.parser.consume(n,i,e)}else if(t)Dr();else throw new Dl(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function Tm(r,e){const t=e.map(n=>ze(n.value));return n=>{const i={};for(let s=0;s<t.length;s++){const a=r.parameters[s],o=t[s];i[a.name]=o(n)}return i}}function ze(r){if(Nd(r)){const e=ze(r.left),t=ze(r.right);return n=>e(n)||t(n)}else if(Cd(r)){const e=ze(r.left),t=ze(r.right);return n=>e(n)&&t(n)}else if(wd(r)){const e=ze(r.value);return t=>!e(t)}else if(Ld(r)){const e=r.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Sd(r)){const e=!!r.true;return()=>e}Dr()}function vm(r,e){if(e.elements.length===1)return $t(r,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:$t(r,i,!0)},a=Wn(i);a&&(s.GATE=ze(a)),t.push(s)}const n=r.or++;return i=>r.parser.alternatives(n,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function Rm(r,e){if(e.elements.length===1)return $t(r,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:$t(r,o,!0)},u=Wn(o);u&&(l.GATE=ze(u)),t.push(l)}const n=r.or++,i=(o,l)=>{const u=l.getRuleStack().join("-");return`uGroup_${o}_${u}`},s=o=>r.parser.alternatives(n,t.map((l,u)=>{const c={ALT:()=>!0},d=r.parser;c.ALT=()=>{if(l.ALT(o),!d.isRecording()){const h=i(n,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const m=d.unorderedGroups.get(h);typeof(m==null?void 0:m[u])>"u"&&(m[u]=!0)}};const f=l.GATE;return f?c.GATE=()=>f(o):c.GATE=()=>{const h=d.unorderedGroups.get(i(n,d));return!(h!=null&&h[u])},c})),a=Qu(r,Wn(e),s,"*");return o=>{a(o),r.parser.isRecording()||r.parser.unorderedGroups.delete(i(n,r.parser))}}function $m(r,e){const t=e.elements.map(n=>$t(r,n));return n=>t.forEach(i=>i(n))}function Wn(r){if(Ws(r))return r.guardCondition}function Xu(r,e,t=e.terminal){if(t)if(vt(t)&&we(t.rule.ref)){const n=t.rule.ref,i=r.subrule++;return s=>r.parser.subrule(i,Ju(r,n),!1,e,s)}else if(vt(t)&&At(t.rule.ref)){const n=r.consume++,i=Ps(r,t.rule.ref.name);return()=>r.parser.consume(n,i,e)}else if(Tt(t)){const n=r.consume++,i=Ps(r,t.value);return()=>r.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const n=Xl(e.type.ref),i=n==null?void 0:n.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Xs(e.type.ref));return Xu(r,e,i)}}function Em(r,e){const t=r.consume++,n=r.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>r.parser.consume(t,n,e)}function Qu(r,e,t,n){const i=e&&ze(e);if(!n)if(i){const s=r.or++;return a=>r.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:qa(),GATE:()=>!i(a)}])}else return t;if(n==="*"){const s=r.many++;return a=>r.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(n==="+"){const s=r.many++;if(i){const a=r.or++;return o=>r.parser.alternatives(a,[{ALT:()=>r.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:qa(),GATE:()=>!i(o)}])}else return a=>r.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(n==="?"){const s=r.optional++;return a=>r.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else Dr()}function Ju(r,e){const t=km(r,e),n=r.parser.getRule(t);if(!n)throw new Error(`Rule "${t}" not found."`);return n}function km(r,e){if(we(e))return e.name;if(r.ruleNames.has(e))return r.ruleNames.get(e);{let t=e,n=t.$container,i=e.$type;for(;!we(n);)(Ws(n)||Bl(n)||Kl(n))&&(i=n.elements.indexOf(t).toString()+":"+i),t=n,n=n.$container;return i=n.name+":"+i,r.ruleNames.set(e,i),i}}function Ps(r,e){const t=r.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function Am(r){const e=r.Grammar,t=r.parser.Lexer,n=new fm(r);return qu(e,n,t.definition),n.finalize(),n}function xm(r){const e=Im(r);return e.finalize(),e}function Im(r){const e=r.Grammar,t=r.parser.Lexer,n=new cm(r);return qu(e,n,t.definition)}class Zu{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=ee(zl(e,!1)),i=this.buildTerminalTokens(n),s=this.buildKeywordTokens(n,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&ls(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(At).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Qs(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=ls(t)?fe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(n,i)=>(t.lastIndex=i,t.exec(n))}buildKeywordTokens(e,t,n){return e.filter(we).flatMap(i=>Fr(i).filter(Tt)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(n!=null&&n.caseInsensitive)))}buildKeywordToken(e,t,n){const i=this.buildKeywordPattern(e,n),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,t){return t?new RegExp(Zd(e.value)):e.value}findLongerAlt(e,t){return t.reduce((n,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&ef("^"+s.source+"$",e.value)&&n.push(i),n},[])}}class ec{convert(e,t){let n=t.grammarSource;if(Hs(n)&&(n=sf(n)),vt(n)){const i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,n){var i;switch(e.name.toUpperCase()){case"INT":return je.convertInt(t);case"STRING":return je.convertString(t);case"ID":return je.convertID(t)}switch((i=ff(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return je.convertNumber(t);case"boolean":return je.convertBoolean(t);case"bigint":return je.convertBigint(t);case"date":return je.convertDate(t);default:return t}}}var je;(function(r){function e(u){let c="";for(let d=1;d<u.length-1;d++){const f=u.charAt(d);if(f==="\\"){const h=u.charAt(++d);c+=t(h)}else c+=f}return c}r.convertString=e;function t(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function n(u){return u.charAt(0)==="^"?u.substring(1):u}r.convertID=n;function i(u){return parseInt(u)}r.convertInt=i;function s(u){return BigInt(u)}r.convertBigint=s;function a(u){return new Date(u)}r.convertDate=a;function o(u){return Number(u)}r.convertNumber=o;function l(u){return u.toLowerCase()==="true"}r.convertBoolean=l})(je||(je={}));var pt={},sn={},rl;function tc(){if(rl)return sn;rl=1,Object.defineProperty(sn,"__esModule",{value:!0});let r;function e(){if(r===void 0)throw new Error("No runtime abstraction layer installed");return r}return function(t){function n(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");r=i}t.install=n}(e||(e={})),sn.default=e,sn}var Q={},nl;function Sm(){if(nl)return Q;nl=1,Object.defineProperty(Q,"__esModule",{value:!0}),Q.stringArray=Q.array=Q.func=Q.error=Q.number=Q.string=Q.boolean=void 0;function r(o){return o===!0||o===!1}Q.boolean=r;function e(o){return typeof o=="string"||o instanceof String}Q.string=e;function t(o){return typeof o=="number"||o instanceof Number}Q.number=t;function n(o){return o instanceof Error}Q.error=n;function i(o){return typeof o=="function"}Q.func=i;function s(o){return Array.isArray(o)}Q.array=s;function a(o){return s(o)&&o.every(l=>e(l))}return Q.stringArray=a,Q}var mt={},il;function rc(){if(il)return mt;il=1,Object.defineProperty(mt,"__esModule",{value:!0}),mt.Emitter=mt.Event=void 0;const r=tc();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(mt.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,u=this._callbacks.length;l<u;l++)if(this._callbacks[l]===s)if(this._contexts[l]===a){this._callbacks.splice(l,1),this._contexts.splice(l,1);return}else o=!0;if(o)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],o=this._callbacks.slice(0),l=this._contexts.slice(0);for(let u=0,c=o.length;u<c;u++)try{a.push(o[u].apply(l[u],s))}catch(d){(0,r.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class n{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,o)=>{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=n._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return mt.Emitter=n,n._noop=function(){},mt}var sl;function Cm(){if(sl)return pt;sl=1,Object.defineProperty(pt,"__esModule",{value:!0}),pt.CancellationTokenSource=pt.CancellationToken=void 0;const r=tc(),e=Sm(),t=rc();var n;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(u){const c=u;return c&&(c===o.None||c===o.Cancelled||e.boolean(c.isCancellationRequested)&&!!c.onCancellationRequested)}o.is=l})(n||(pt.CancellationToken=n={}));const i=Object.freeze(function(o,l){const u=(0,r.default)().timer.setTimeout(o.bind(l),0);return{dispose(){u.dispose()}}});class s{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?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=n.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=n.None}}return pt.CancellationTokenSource=a,pt}var K=Cm();function Nm(){return new Promise(r=>{typeof setImmediate>"u"?setTimeout(r,0):setImmediate(r)})}let Rn=0,wm=10;function Lm(){return Rn=performance.now(),new K.CancellationTokenSource}const zn=Symbol("OperationCancelled");function ci(r){return r===zn}async function $e(r){if(r===K.CancellationToken.None)return;const e=performance.now();if(e-Rn>=wm&&(Rn=e,await Nm(),Rn=performance.now()),r.isCancellationRequested)throw zn}class da{constructor(){this.promise=new Promise((e,t)=>{this.resolve=n=>(e(n),this),this.reject=n=>(t(n),this)})}}class Pr{constructor(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const n of e)if(Pr.isIncremental(n)){const i=ic(n.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+n.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let u=this._lineOffsets;const c=al(n.text,!1,s);if(l-o===c.length)for(let f=0,h=c.length;f<h;f++)u[f+o+1]=c[f];else c.length<1e4?u.splice(o+1,l-o,...c):this._lineOffsets=u=u.slice(0,o+1).concat(c,u.slice(l+1));const d=n.text.length-(a-s);if(d!==0)for(let f=o+1+c.length,h=u.length;f<h;f++)u[f]=u[f]+d}else if(Pr.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=al(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let n=0,i=t.length;if(i===0)return{line:0,character:e};for(;n<i;){const a=Math.floor((n+i)/2);t[a]>e?i=a:n=a+1}const s=n-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(n+e.character,i);return this.ensureBeforeEOL(s,n)}ensureBeforeEOL(e,t){for(;e>t&&nc(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var Ms;(function(r){function e(i,s,a,o){return new Pr(i,s,a,o)}r.create=e;function t(i,s,a){if(i instanceof Pr)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function n(i,s){const a=i.getText(),o=Ds(s.map(bm),(c,d)=>{const f=c.range.start.line-d.range.start.line;return f===0?c.range.start.character-d.range.start.character:f});let l=0;const u=[];for(const c of o){const d=i.offsetAt(c.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&u.push(a.substring(l,d)),c.newText.length&&u.push(c.newText),l=i.offsetAt(c.range.end)}return u.push(a.substr(l)),u.join("")}r.applyEdits=n})(Ms||(Ms={}));function Ds(r,e){if(r.length<=1)return r;const t=r.length/2|0,n=r.slice(0,t),i=r.slice(t);Ds(n,e),Ds(i,e);let s=0,a=0,o=0;for(;s<n.length&&a<i.length;)e(n[s],i[a])<=0?r[o++]=n[s++]:r[o++]=i[a++];for(;s<n.length;)r[o++]=n[s++];for(;a<i.length;)r[o++]=i[a++];return r}function al(r,e,t=0){const n=e?[t]:[];for(let i=0;i<r.length;i++){const s=r.charCodeAt(i);nc(s)&&(s===13&&i+1<r.length&&r.charCodeAt(i+1)===10&&i++,n.push(t+i+1))}return n}function nc(r){return r===13||r===10}function ic(r){const e=r.start,t=r.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function bm(r){const e=ic(r.range);return e!==r.range?{newText:r.newText,range:e}:r}var sc;(()=>{var r={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,u){for(var c,d="",f=0,h=-1,m=0,g=0;g<=l.length;++g){if(g<l.length)c=l.charCodeAt(g);else{if(c===47)break;c=47}if(c===47){if(!(h===g-1||m===1))if(h!==g-1&&m===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var A=d.lastIndexOf("/");if(A!==d.length-1){A===-1?(d="",f=0):f=(d=d.slice(0,A)).length-1-d.lastIndexOf("/"),h=g,m=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=g,m=0;continue}}u&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+l.slice(h+1,g):d=l.slice(h+1,g),f=g-h-1;h=g,m=0}else c===46&&m!==-1?++m:m=-1}return d}var o={resolve:function(){for(var l,u="",c=!1,d=arguments.length-1;d>=-1&&!c;d--){var f;d>=0?f=arguments[d]:(l===void 0&&(l=process.cwd()),f=l),s(f),f.length!==0&&(u=f+"/"+u,c=f.charCodeAt(0)===47)}return u=a(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(s(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=a(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u<arguments.length;++u){var c=arguments[u];s(c),c.length>0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":o.normalize(l)},relative:function(l,u){if(s(l),s(u),l===u||(l=o.resolve(l))===(u=o.resolve(u)))return"";for(var c=1;c<l.length&&l.charCodeAt(c)===47;++c);for(var d=l.length,f=d-c,h=1;h<u.length&&u.charCodeAt(h)===47;++h);for(var m=u.length-h,g=f<m?f:m,A=-1,R=0;R<=g;++R){if(R===g){if(m>g){if(u.charCodeAt(h+R)===47)return u.slice(h+R+1);if(R===0)return u.slice(h+R)}else f>g&&(l.charCodeAt(c+R)===47?A=R:R===0&&(A=0));break}var $=l.charCodeAt(c+R);if($!==u.charCodeAt(h+R))break;$===47&&(A=R)}var T="";for(R=c+A+1;R<=d;++R)R!==d&&l.charCodeAt(R)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+u.slice(h+A):(h+=A,u.charCodeAt(h)===47&&++h,u.slice(h))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,d=-1,f=!0,h=l.length-1;h>=1;--h)if((u=l.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?c?"/":".":c&&d===1?"//":l.slice(0,d)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(l);var c,d=0,f=-1,h=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var m=u.length-1,g=-1;for(c=l.length-1;c>=0;--c){var A=l.charCodeAt(c);if(A===47){if(!h){d=c+1;break}}else g===-1&&(h=!1,g=c+1),m>=0&&(A===u.charCodeAt(m)?--m==-1&&(f=c):(m=-1,f=g))}return d===f?f=g:f===-1&&(f=l.length),l.slice(d,f)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!h){d=c+1;break}}else f===-1&&(h=!1,f=c+1);return f===-1?"":l.slice(d,f)},extname:function(l){s(l);for(var u=-1,c=0,d=-1,f=!0,h=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)d===-1&&(f=!1,d=m+1),g===46?u===-1?u=m:h!==1&&(h=1):u!==-1&&(h=-1);else if(!f){c=m+1;break}}return u===-1||d===-1||h===0||h===1&&u===d-1&&u===c+1?"":l.slice(u,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(u,c){var d=c.dir||c.root,f=c.base||(c.name||"")+(c.ext||"");return d?d===c.root?d+f:d+"/"+f:f}(0,l)},parse:function(l){s(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,d=l.charCodeAt(0),f=d===47;f?(u.root="/",c=1):c=0;for(var h=-1,m=0,g=-1,A=!0,R=l.length-1,$=0;R>=c;--R)if((d=l.charCodeAt(R))!==47)g===-1&&(A=!1,g=R+1),d===46?h===-1?h=R:$!==1&&($=1):h!==-1&&($=-1);else if(!A){m=R+1;break}return h===-1||g===-1||$===0||$===1&&h===g-1&&h===m+1?g!==-1&&(u.base=u.name=m===0&&f?l.slice(1,g):l.slice(m,g)):(m===0&&f?(u.name=l.slice(1,h),u.base=l.slice(1,g)):(u.name=l.slice(m,h),u.base=l.slice(m,g)),u.ext=l.slice(h,g)),m>0?u.dir=l.slice(0,m-1):f&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return r[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>f,Utils:()=>Se}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(E,y){if(!E.scheme&&y)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${E.authority}", path: "${E.path}", query: "${E.query}", fragment: "${E.fragment}"}`);if(E.scheme&&!s.test(E.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(E.path){if(E.authority){if(!a.test(E.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(E.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",c="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{constructor(y,S,x,_,b,L=!1){ht(this,"scheme"),ht(this,"authority"),ht(this,"path"),ht(this,"query"),ht(this,"fragment"),typeof y=="object"?(this.scheme=y.scheme||u,this.authority=y.authority||u,this.path=y.path||u,this.query=y.query||u,this.fragment=y.fragment||u):(this.scheme=function(Te,Y){return Te||Y?Te:"file"}(y,L),this.authority=S||u,this.path=function(Te,Y){switch(Te){case"https":case"http":case"file":Y?Y[0]!==c&&(Y=c+Y):Y=c}return Y}(this.scheme,x||u),this.query=_||u,this.fragment=b||u,l(this,L))}static isUri(y){return y instanceof f||!!y&&typeof y.authority=="string"&&typeof y.fragment=="string"&&typeof y.path=="string"&&typeof y.query=="string"&&typeof y.scheme=="string"&&typeof y.fsPath=="string"&&typeof y.with=="function"&&typeof y.toString=="function"}get fsPath(){return $(this)}with(y){if(!y)return this;let{scheme:S,authority:x,path:_,query:b,fragment:L}=y;return S===void 0?S=this.scheme:S===null&&(S=u),x===void 0?x=this.authority:x===null&&(x=u),_===void 0?_=this.path:_===null&&(_=u),b===void 0?b=this.query:b===null&&(b=u),L===void 0?L=this.fragment:L===null&&(L=u),S===this.scheme&&x===this.authority&&_===this.path&&b===this.query&&L===this.fragment?this:new m(S,x,_,b,L)}static parse(y,S=!1){const x=d.exec(y);return x?new m(x[2]||u,ie(x[4]||u),ie(x[5]||u),ie(x[7]||u),ie(x[9]||u),S):new m(u,u,u,u,u)}static file(y){let S=u;if(i&&(y=y.replace(/\\/g,c)),y[0]===c&&y[1]===c){const x=y.indexOf(c,2);x===-1?(S=y.substring(2),y=c):(S=y.substring(2,x),y=y.substring(x)||c)}return new m("file",S,y,u,u)}static from(y){const S=new m(y.scheme,y.authority,y.path,y.query,y.fragment);return l(S,!0),S}toString(y=!1){return T(this,y)}toJSON(){return this}static revive(y){if(y){if(y instanceof f)return y;{const S=new m(y);return S._formatted=y.external,S._fsPath=y._sep===h?y.fsPath:null,S}}return y}}const h=i?1:void 0;class m extends f{constructor(){super(...arguments),ht(this,"_formatted",null),ht(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=$(this)),this._fsPath}toString(y=!1){return y?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){const y={$mid:1};return this._fsPath&&(y.fsPath=this._fsPath,y._sep=h),this._formatted&&(y.external=this._formatted),this.path&&(y.path=this.path),this.scheme&&(y.scheme=this.scheme),this.authority&&(y.authority=this.authority),this.query&&(y.query=this.query),this.fragment&&(y.fragment=this.fragment),y}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(E,y,S){let x,_=-1;for(let b=0;b<E.length;b++){const L=E.charCodeAt(b);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||y&&L===47||S&&L===91||S&&L===93||S&&L===58)_!==-1&&(x+=encodeURIComponent(E.substring(_,b)),_=-1),x!==void 0&&(x+=E.charAt(b));else{x===void 0&&(x=E.substr(0,b));const Te=g[L];Te!==void 0?(_!==-1&&(x+=encodeURIComponent(E.substring(_,b)),_=-1),x+=Te):_===-1&&(_=b)}}return _!==-1&&(x+=encodeURIComponent(E.substring(_))),x!==void 0?x:E}function R(E){let y;for(let S=0;S<E.length;S++){const x=E.charCodeAt(S);x===35||x===63?(y===void 0&&(y=E.substr(0,S)),y+=g[x]):y!==void 0&&(y+=E[S])}return y!==void 0?y:E}function $(E,y){let S;return S=E.authority&&E.path.length>1&&E.scheme==="file"?`//${E.authority}${E.path}`:E.path.charCodeAt(0)===47&&(E.path.charCodeAt(1)>=65&&E.path.charCodeAt(1)<=90||E.path.charCodeAt(1)>=97&&E.path.charCodeAt(1)<=122)&&E.path.charCodeAt(2)===58?E.path[1].toLowerCase()+E.path.substr(2):E.path,i&&(S=S.replace(/\//g,"\\")),S}function T(E,y){const S=y?R:A;let x="",{scheme:_,authority:b,path:L,query:Te,fragment:Y}=E;if(_&&(x+=_,x+=":"),(b||_==="file")&&(x+=c,x+=c),b){let V=b.indexOf("@");if(V!==-1){const ct=b.substr(0,V);b=b.substr(V+1),V=ct.lastIndexOf(":"),V===-1?x+=S(ct,!1,!1):(x+=S(ct.substr(0,V),!1,!1),x+=":",x+=S(ct.substr(V+1),!1,!0)),x+="@"}b=b.toLowerCase(),V=b.lastIndexOf(":"),V===-1?x+=S(b,!1,!0):(x+=S(b.substr(0,V),!1,!0),x+=b.substr(V))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){const V=L.charCodeAt(1);V>=65&&V<=90&&(L=`/${String.fromCharCode(V+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){const V=L.charCodeAt(0);V>=65&&V<=90&&(L=`${String.fromCharCode(V+32)}:${L.substr(2)}`)}x+=S(L,!0,!1)}return Te&&(x+="?",x+=S(Te,!1,!1)),Y&&(x+="#",x+=y?Y:A(Y,!1,!1)),x}function I(E){try{return decodeURIComponent(E)}catch{return E.length>3?E.substr(0,3)+I(E.substr(3)):E}}const G=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ie(E){return E.match(G)?E.replace(G,y=>I(y)):E}var Le=t(470);const ye=Le.posix||Le,Fe="/";var Se;(function(E){E.joinPath=function(y,...S){return y.with({path:ye.join(y.path,...S)})},E.resolvePath=function(y,...S){let x=y.path,_=!1;x[0]!==Fe&&(x=Fe+x,_=!0);let b=ye.resolve(x,...S);return _&&b[0]===Fe&&!y.authority&&(b=b.substring(1)),y.with({path:b})},E.dirname=function(y){if(y.path.length===0||y.path===Fe)return y;let S=ye.dirname(y.path);return S.length===1&&S.charCodeAt(0)===46&&(S=""),y.with({path:S})},E.basename=function(y){return ye.basename(y.path)},E.extname=function(y){return ye.extname(y.path)}})(Se||(Se={}))})(),sc=n})();const{URI:Et,Utils:Yt}=sc;var nt;(function(r){r.basename=Yt.basename,r.dirname=Yt.dirname,r.extname=Yt.extname,r.joinPath=Yt.joinPath,r.resolvePath=Yt.resolvePath;function e(i,s){return(i==null?void 0:i.toString())===(s==null?void 0:s.toString())}r.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(h=>h.length>0),u=o.split("/").filter(h=>h.length>0);let c=0;for(;c<l.length&&l[c]===u[c];c++);const d="../".repeat(l.length-c),f=u.slice(c).join("/");return d+f}r.relative=t;function n(i){return Et.parse(i.toString()).toString()}r.normalize=n})(nt||(nt={}));var U;(function(r){r[r.Changed=0]="Changed",r[r.Parsed=1]="Parsed",r[r.IndexedContent=2]="IndexedContent",r[r.ComputedScopes=3]="ComputedScopes",r[r.Linked=4]="Linked",r[r.IndexedReferences=5]="IndexedReferences",r[r.Validated=6]="Validated"})(U||(U={}));class _m{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=K.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=t??Et.parse(e.uri),K.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return K.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"){const i=this.parse(e,t,n);return this.createLangiumDocument(i,e,void 0,t)}else if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,t.getText(),n);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,n){if(typeof t=="string"){const i=await this.parseAsync(e,t,n);return this.createLangiumDocument(i,e,void 0,t)}else{const i=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,n,i){let s;if(n)s={parseResult:e,uri:t,state:U.Parsed,references:[],textDocument:n};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:U.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var n,i;const s=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=U.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){const n=this.serviceRegistry;let i;return()=>i??(i=Ms.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Om{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return ee(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const 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(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=U.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=U.Changed,this.documentMap.delete(t)),n}}const Ci=Symbol("ref_resolving");class Pm{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=K.CancellationToken.None){for(const n of bt(e.parseResult.value))await $e(t),jl(n).forEach(i=>this.doLink(i,e))}doLink(e,t){var n;const i=e.reference;if(i._ref===void 0){i._ref=Ci;try{const s=this.getCandidate(e);if(hn(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(n=s.message)!==null&&n!==void 0?n:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const 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,i){const s=this,a={$refNode:n,$refText:i,get ref(){var o;if(ae(this._ref))return this._ref;if(yd(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=Ci;const l=os(e).$document,u=s.getLinkedNode({reference:a,container:e,property:t});if(u.error&&l&&l.state<U.ComputedScopes)return this._ref=void 0;this._ref=(o=u.node)!==null&&o!==void 0?o:u.error,this._nodeDescription=u.descr,l==null||l.references.push(this)}else if(this._ref===Ci)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${i}')`);return ae(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return hn(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const n=this.getCandidate(e);if(hn(n))return{error:n};const i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(e,n)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const i=(t=n.message)!==null&&t!==void 0?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const n=os(e.container).$document;n&&n.state<U.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}}function Mm(r){return typeof r.name=="string"}class Dm{getName(e){if(Mm(e))return e.name}getNameNode(e){return ql(e.$cstNode,"name")}}class Fm{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=cf(e),n=e.astNode;if(t&&n){const i=n[t.feature];if(Ge(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Ge(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(n){const i=this.nameProvider.getNameNode(n);if(i&&(i===e||Rd(e,i)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t!=null&&t.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(e,t){const n=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&n.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>nt.equals(s.sourceUri,t.documentUri))),n.push(...i),ee(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=Ze(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Nn(t),local:!0}}}}class Yn{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return is.sum(ee(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const n=this.map.get(e);if(n){const i=n.indexOf(t);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{const 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(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ee(this.map.entries()).flatMap(([e,t])=>t.map(n=>[e,n]))}keys(){return ee(this.map.keys())}values(){return ee(this.map.values()).flat()}entriesGroupedByKey(){return ee(this.map.entries())}}class ol{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[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){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class Um{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=K.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=zs,i=K.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of n(e))await $e(i),this.exportNode(a,s,t);return s}exportNode(e,t,n){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,t=K.CancellationToken.None){const n=e.parseResult.value,i=new Yn;for(const s of Fr(n))await $e(t),this.processNode(s,e,i);return i}processNode(e,t,n){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&n.add(i,this.descriptions.createDescription(e,s,t))}}}class ll{constructor(e,t,n){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class Gm{constructor(e,t,n){var i;this.elements=new Map,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const 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=ee(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class ac{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Bm extends ac{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){const 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()}}class Km extends ac{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}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();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(n){const s=n();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class Vm extends Bm{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class jm{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 Vm(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),i=Ze(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(ee(o).filter(l=>this.reflection.isSubtype(l.type,n))),a=a.$container}while(a)}let s=this.getGlobalScope(n,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,n){return new ll(ee(e),t,n)}createScopeForNodes(e,t,n){const i=ee(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new ll(i,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Gm(this.indexManager.allElements(e)))}}function Hm(r){return typeof r.$comment=="string"}function ul(r){return typeof r=="object"&&!!r&&("$ref"in r||"$error"in r)}class Wm{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){const n=t??{},i=t==null?void 0:t.replacer,s=(o,l)=>this.replacer(o,l,n),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=Ze(e),JSON.stringify(e,a,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=t??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,t,{refText:n,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,u,c,d;if(!this.ignoreProperties.has(e))if(Ge(t)){const f=t.ref,h=n?t.$refText:void 0;if(f){const m=Ze(f);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());const A=this.astNodeLocator.getAstNodePath(f);return{$ref:`${g}#${A}`,$refText:h}}else return{$error:(u=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:h}}else if(ae(t)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&f!=null&&f.$textRegion&&(f.$textRegion.documentURI=(c=this.currentDocument)===null||c===void 0?void 0:c.uri.toString())),i&&!e&&(f??(f=Object.assign({},t)),f.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){f??(f=Object.assign({},t));const h=this.commentProvider.getComment(t);h&&(f.$comment=h.replace(/\r/g,""))}return f??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=n=>({offset:n.offset,end:n.end,length:n.length,range:n.range});if(e.$cstNode){const n=e.$textRegion=t(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=of(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,n,i,s,a){for(const[l,u]of Object.entries(e))if(Array.isArray(u))for(let c=0;c<u.length;c++){const d=u[c];ul(d)?u[c]=this.reviveReference(e,l,t,d,n):ae(d)&&this.linkNode(d,t,n,e,l,c)}else ul(u)?e[l]=this.reviveReference(e,l,t,u,n):ae(u)&&this.linkNode(u,t,n,e,l);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,n,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const l=this.getRefNode(n,i.$ref,s.uriConverter);if(ae(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,n){try{const i=t.indexOf("#");if(i===0)return this.astNodeLocator.getAstNode(e,t.substring(1))||"Could not resolve path: "+t;if(i<0){const l=n?n(t):Et.parse(t),u=this.langiumDocuments.getDocument(l);return u?u.parseResult.value:"Could not find document for URI: "+t}const s=n?n(t.substring(0,i)):Et.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);return a?i===t.length-1?a.parseResult.value:this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1))||"Could not resolve URI: "+t:"Could not find document for URI: "+t}catch(i){return String(i)}}}class zm{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e==null?void 0:e.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const 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){var t,n;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(n=(t=this.textDocuments)===null||t===void 0?void 0:t.get(e))===null||n===void 0?void 0:n.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=nt.extname(e),a=this.fileExtensionMap.get(s);if(!a)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Ir(r){return{code:r}}var qn;(function(r){r.all=["fast","slow","built-in"]})(qn||(qn={}));class Ym{constructor(e){this.entries=new Yn,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const l={check:this.wrapValidationException(o,t),category:n};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:n};this.addEntry(i,o)}else Dr()}}wrapValidationException(e,t){return async(n,i,s)=>{await this.handleException(()=>e.call(t,n,i,s),"An error occurred during validation",i,n)}}async handleException(e,t,n,i){try{await e()}catch(s){if(ci(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);n("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t)}getChecks(e,t){let n=ee(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(i=>t.includes(i.category))),n.map(i=>i.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(i,s,a,o)=>{await this.handleException(()=>e.call(n,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class qm{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=K.CancellationToken.None){const i=e.parseResult,s=[];if(await $e(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_e.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,n))}catch(a){if(ci(a))throw a;console.error("An error occurred during validation:",a)}return await $e(n),s}processLexingErrors(e,t,n){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const u=(a=l.severity)!==null&&a!==void 0?a:"error",c={severity:Ni(u),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:Qm(u),source:this.getSource()};t.push(c)}}processParsingErrors(e,t,n){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=as(i.token);if(s){const a={severity:Ni("error"),range:s,message:i.message,data:Ir(_e.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,n){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:_e.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,n=K.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,t,s,n),await this.validateAstNodes(e,t,s,n),await this.validateAstAfter(e,t,s,n),i}async validateAstBefore(e,t,n,i=K.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await $e(i),await o(e,n,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,n,i=K.CancellationToken.None){await Promise.all(bt(e).map(async s=>{await $e(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,n,i)}))}async validateAstAfter(e,t,n,i=K.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await $e(i),await o(e,n,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,n){return{message:t,range:Xm(n),severity:Ni(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 Xm(r){if(r.range)return r.range;let e;return typeof r.property=="string"?e=ql(r.node.$cstNode,r.property,r.index):typeof r.keyword=="string"&&(e=lf(r.node.$cstNode,r.keyword,r.index)),e??(e=r.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Ni(r){switch(r){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+r)}}function Qm(r){switch(r){case"error":return Ir(_e.LexingError);case"warning":return Ir(_e.LexingWarning);case"info":return Ir(_e.LexingInfo);case"hint":return Ir(_e.LexingHint);default:throw new Error("Invalid diagnostic severity: "+r)}}var _e;(function(r){r.LexingError="lexing-error",r.LexingWarning="lexing-warning",r.LexingInfo="lexing-info",r.LexingHint="lexing-hint",r.ParsingError="parsing-error",r.LinkingError="linking-error"})(_e||(_e={}));class Jm{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const i=n??Ze(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=Nn((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Nn(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class Zm{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=K.CancellationToken.None){const n=[],i=e.parseResult.value;for(const s of bt(i))await $e(t),jl(s).filter(a=>!hn(a)).forEach(a=>{const o=this.createDescription(a);o&&n.push(o)});return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const i=Ze(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Nn(n),local:nt.equals(t.documentUri,i)}}}class eg{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((n,i)=>{if(!n||i.length===0)return n;const s=i.indexOf(this.indexSeparator);if(s>0){const a=i.substring(0,s),o=parseInt(i.substring(s+1)),l=n[a];return l==null?void 0:l[o]}return n[i]},e)}}var tg=rc();class rg{constructor(e){this._ready=new da,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new tg.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=(n=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,n[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const 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;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Lr;(function(r){function e(t){return{dispose:async()=>await t()}}r.create=e})(Lr||(Lr={}));class ng{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Yn,this.documentPhaseListeners=new Yn,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=U.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=K.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===U.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=U.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),u=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(u){const c=((s=t.validation.categories)!==null&&s!==void 0?s:qn.all).filter(d=>!u.includes(d));c.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:c})},result:l.result}),a.state=U.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=U.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=K.CancellationToken.None){this.currentState=U.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const o=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);o.state=U.Changed,this.langiumDocuments.addDocument(o)}this.buildState.delete(a.toString())}const i=ee(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,U.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await $e(n);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<U.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,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){var t;return!!(!((t=this.textDocuments)===null||t===void 0)&&t.get(e.uri))}shouldRelink(e,t){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Lr.create(()=>{const 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,U.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,U.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,U.ComputedScopes,n,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,n)}),await this.runCancelable(e,U.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(e,U.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,U.Validated,n,s=>this.validate(s,n));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const n of e){const i=n.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s==null?void 0:s.result})}}async runCancelable(e,t,n,i){const s=e.filter(o=>o.state<t);for(const o of s)await $e(n),await i(o),o.state=t,await this.notifyDocumentPhase(o,t,n);const a=e.filter(o=>o.state===t);await this.notifyBuildPhase(a,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Lr.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Lr.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let i;if(t&&"path"in t?i=t:n=t,n??(n=K.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(zn):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u==null?void 0:u.uri)}else s(void 0)}),l=n.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(zn)})})}async notifyDocumentPhase(e,t,n){const i=this.documentPhaseListeners.get(t).slice();for(const s of i)try{await s(e,n)}catch(a){if(!ci(a))throw a}}async notifyBuildPhase(e,t,n){if(e.length===0)return;const i=this.buildPhaseListeners.get(t).slice();for(const s of i)await $e(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const u=this.buildState.get(e.uri.toString());if(u){(n=u.result)!==null&&n!==void 0||(u.result={});const c=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:qn.all;u.result.validationChecks?u.result.validationChecks.push(...c):u.result.validationChecks=[...c]}}getBuildOptions(e){var t,n;return(n=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&n!==void 0?n:{}}}class ig{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Km,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=Ze(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{nt.equals(a.targetUri,n)&&a.targetPath===t&&i.push(a)})}),ee(i)}allElements(e,t){let n=ee(this.symbolIndex.keys());return t&&(n=n.filter(i=>!t||t.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var i;return((i=this.symbolIndex.get(e))!==null&&i!==void 0?i:[]).filter(s=>this.astReflection.isSubtype(s.type,t))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=K.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=K.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class sg{constructor(e){this.initialBuildOptions={},this._ready=new da,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],t)})}async initializeWorkspace(e,t=K.CancellationToken.None){const n=await this.performStartup(e);await $e(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),n=[],i=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return Et.parse(e.uri)}async traverseFolder(e,t,n,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,n)){if(a.isDirectory)await this.traverseFolder(e,a.uri,n,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,n){const i=nt.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=nt.extname(t.uri);return n.includes(s)}return!1}}class ag{buildUnexpectedCharactersMessage(e,t,n,i,s){return fs.buildUnexpectedCharactersMessage(e,t,n,i,s)}buildUnableToPopLexerModeMessage(e){return fs.buildUnableToPopLexerModeMessage(e)}}const og={mode:"full"};class lg{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=cl(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new fe(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=og){var n,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(n=a.groups.hidden)!==null&&n!==void 0?n:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(cl(e))return e;const t=oc(e)?Object.values(e.modes).flat():e,n={};return t.forEach(i=>n[i.name]=i),n}}function ug(r){return Array.isArray(r)&&(r.length===0||"name"in r[0])}function oc(r){return r&&"modes"in r&&"defaultMode"in r}function cl(r){return!ug(r)&&!oc(r)}function cg(r,e,t){let n,i;typeof r=="string"?(i=e,n=t):(i=r.range.start,n=e),i||(i=P.create(0,0));const s=lc(r),a=fa(n),o=hg({lines:s,position:i,options:a});return Tg({index:0,tokens:o,position:i})}function dg(r,e){const t=fa(e),n=lc(r);if(n.length===0)return!1;const i=n[0],s=n[n.length-1],a=t.start,o=t.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function lc(r){let e="";return typeof r=="string"?e=r:e=r.text,e.split(Yd)}const dl=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,fg=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function hg(r){var e,t,n;const i=[];let s=r.position.line,a=r.position.character;for(let o=0;o<r.lines.length;o++){const l=o===0,u=o===r.lines.length-1;let c=r.lines[o],d=0;if(l&&r.options.start){const f=(e=r.options.start)===null||e===void 0?void 0:e.exec(c);f&&(d=f.index+f[0].length)}else{const f=(t=r.options.line)===null||t===void 0?void 0:t.exec(c);f&&(d=f.index+f[0].length)}if(u){const f=(n=r.options.end)===null||n===void 0?void 0:n.exec(c);f&&(c=c.substring(0,f.index))}if(c=c.substring(0,yg(c)),Fs(c,d)>=c.length){if(i.length>0){const f=P.create(s,a);i.push({type:"break",content:"",range:O.create(f,f)})}}else{dl.lastIndex=d;const f=dl.exec(c);if(f){const h=f[0],m=f[1],g=P.create(s,a+d),A=P.create(s,a+d+h.length);i.push({type:"tag",content:m,range:O.create(g,A)}),d+=h.length,d=Fs(c,d)}if(d<c.length){const h=c.substring(d),m=Array.from(h.matchAll(fg));i.push(...pg(m,h,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function pg(r,e,t,n){const i=[];if(r.length===0){const s=P.create(t,n),a=P.create(t,n+e.length);i.push({type:"text",content:e,range:O.create(s,a)})}else{let s=0;for(const o of r){const l=o.index,u=e.substring(s,l);u.length>0&&i.push({type:"text",content:e.substring(s,l),range:O.create(P.create(t,s+n),P.create(t,l+n))});let c=u.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:O.create(P.create(t,s+c+n),P.create(t,s+c+d.length+n))}),c+=d.length,o.length===4){c+=o[2].length;const f=o[3];i.push({type:"text",content:f,range:O.create(P.create(t,s+c+n),P.create(t,s+c+f.length+n))})}else i.push({type:"text",content:"",range:O.create(P.create(t,s+c+n),P.create(t,s+c+n))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:O.create(P.create(t,s+n),P.create(t,s+n+a.length))})}return i}const mg=/\S/,gg=/\s*$/;function Fs(r,e){const t=r.substring(e).match(mg);return t?e+t.index:r.length}function yg(r){const e=r.match(gg);if(e&&typeof e.index=="number")return e.index}function Tg(r){var e,t,n,i;const s=P.create(r.position.line,r.position.character);if(r.tokens.length===0)return new fl([],O.create(s,s));const a=[];for(;r.index<r.tokens.length;){const u=vg(r,a[a.length-1]);u&&a.push(u)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(n=a[a.length-1])===null||n===void 0?void 0:n.range.end)!==null&&i!==void 0?i:s;return new fl(a,O.create(o,l))}function vg(r,e){const t=r.tokens[r.index];if(t.type==="tag")return cc(r,!1);if(t.type==="text"||t.type==="inline-tag")return uc(r);Rg(t,e),r.index++}function Rg(r,e){if(e){const t=new fc("",r.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function uc(r){let e=r.tokens[r.index];const t=e;let n=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push($g(r)),n=e,e=r.tokens[r.index];return new Us(i,O.create(t.range.start,n.range.end))}function $g(r){return r.tokens[r.index].type==="inline-tag"?cc(r,!0):dc(r)}function cc(r,e){const t=r.tokens[r.index++],n=t.content.substring(1),i=r.tokens[r.index];if((i==null?void 0:i.type)==="text")if(e){const s=dc(r);return new Li(n,new Us([s],s.range),e,O.create(t.range.start,s.range.end))}else{const s=uc(r);return new Li(n,s,e,O.create(t.range.start,s.range.end))}else{const s=t.range;return new Li(n,new Us([],s),e,s)}}function dc(r){const e=r.tokens[r.index++];return new fc(e.content,e.range)}function fa(r){if(!r)return fa({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:n}=r;return{start:wi(e,!0),end:wi(t,!1),line:wi(n,!0)}}function wi(r,e){if(typeof r=="string"||typeof r=="object"){const t=typeof r=="string"?ri(r):r.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return r}class fl{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(const t of this.elements)if(e.length===0)e=t.toString();else{const n=t.toString();e+=hl(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(t.length===0)t=n.toMarkdown(e);else{const i=n.toMarkdown(e);t+=hl(t)+i}return t.trim()}}class Li{constructor(e,t,n,i){this.name=e,this.content=t,this.inline=n,this.range=i}toString(){let e=`@${this.name}`;const t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}
118
118
  ${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return(n=(t=e==null?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=Eg(this.name,t,e??{});if(typeof s=="string")return s}let n="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?n="*":(e==null?void 0:e.tag)==="bold"?n="**":(e==null?void 0:e.tag)==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} — ${t}`:this.content.inlines.length>1&&(i=`${i}
119
119
  ${t}`),this.inline?`{${i}}`:i}}function Eg(r,e,t){var n,i;if(r==="linkplain"||r==="linkcode"||r==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const o=Fs(e,s);a=e.substring(o),e=e.substring(0,s)}return(r==="linkcode"||r==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(n=t.renderLink)===null||n===void 0?void 0:n.call(t,e,a))!==null&&i!==void 0?i:kg(e,a)}}function kg(r,e){try{return Et.parse(r,!0),`[${e}](${r})`}catch{return r}}class Us{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const n=this.inlines[t],i=this.inlines[t+1];e+=n.toString(),i&&i.range.start.line>n.range.start.line&&(e+=`
120
120
  `)}return e}toMarkdown(e){let t="";for(let n=0;n<this.inlines.length;n++){const i=this.inlines[n],s=this.inlines[n+1];t+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(t+=`
@@ -122,7 +122,7 @@ ${t}`),this.inline?`{${i}}`:i}}function Eg(r,e,t){var n,i;if(r==="linkplain"||r=
122
122
  `)?`
123
123
  `:`
124
124
 
125
- `}class Ag{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&dg(t))return cg(t).toMarkdown({renderLink:(n,i)=>this.documentationLinkRenderer(e,n,i),renderTag:n=>this.documentationTagRenderer(e,n)})}documentationLinkRenderer(e,t,n){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const n=Ze(e).precomputedScopes;if(!n)return;let i=e;do{const s=n.get(i).find(a=>a.name===t);if(s)return s;i=i.$container}while(i)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(n=>n.name===t)}}class xg{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return Hm(e)?e.$comment:(t=Ad(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Ig{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Sg{constructor(){this.previousTokenSource=new B.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=Lm();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=B.CancellationToken.None){const i=new da,s={action:t,deferred:i,cancellationToken:n};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:n,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));n.resolve(s)}catch(s){ci(s)?n.resolve(void 0):n.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Cg{constructor(e){this.grammarElementIdMap=new ol,this.tokenTypeIdMap=new ol,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(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,n=new Map;for(const i of bt(e))t.set(i,{});if(e.$cstNode)for(const i of ss(e.$cstNode))n.set(i,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const 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(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];n[i]=a;for(const o of s)ae(o)?a.push(this.dehydrateAstNode(o,t)):Ge(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ae(s)?n[i]=this.dehydrateAstNode(s,t):Ge(s)?n[i]=this.dehydrateReference(s,t):s!==void 0&&(n[i]=s);return n}dehydrateReference(e,t){const n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);return Ml(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),_r(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,t)):Pl(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){const 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){const t=new Map,n=new Map;for(const s of bt(e))t.set(s,{});let i;if(e.$cstNode)for(const s of ss(e.$cstNode)){let a;"fullText"in s?(a=new Hu(s.fullText),i=a):"content"in s?a=new ua:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(n.set(s,a),a.root=i)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const 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(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];n[i]=a;for(const o of s)ae(o)?a.push(this.setParent(this.hydrateAstNode(o,t),n)):Ge(o)?a.push(this.hydrateReference(o,n,i,t)):a.push(o)}else ae(s)?n[i]=this.setParent(this.hydrateAstNode(s,t),n):Ge(s)?n[i]=this.hydrateReference(s,n,i,t):s!==void 0&&(n[i]=s);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,i){return this.linker.buildReference(t,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),_r(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,n++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),n=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,u=e.hidden;return new _s(n,i,{start:{line:s,character:a},end:{line:o,character:l}},t,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of bt(this.grammar))Id(t)&&this.grammarElementIdMap.set(t,e++)}}function at(r){return{documentation:{CommentProvider:e=>new xg(e),DocumentationProvider:e=>new Ag(e)},parser:{AsyncParser:e=>new Ig(e),GrammarConfig:e=>Tf(e),LangiumParser:e=>xm(e),CompletionParser:e=>Am(e),ValueConverter:()=>new ec,TokenBuilder:()=>new Zu,Lexer:e=>new lg(e),ParserErrorMessageProvider:()=>new Yu,LexerErrorMessageProvider:()=>new ag},workspace:{AstNodeLocator:()=>new eg,AstNodeDescriptionProvider:e=>new Jm(e),ReferenceDescriptionProvider:e=>new Zm(e)},references:{Linker:e=>new Pm(e),NameProvider:()=>new Dm,ScopeProvider:e=>new jm(e),ScopeComputation:e=>new Um(e),References:e=>new Fm(e)},serializer:{Hydrator:e=>new Cg(e),JsonSerializer:e=>new Wm(e)},validation:{DocumentValidator:e=>new qm(e),ValidationRegistry:e=>new Ym(e)},shared:()=>r.shared}}function ot(r){return{ServiceRegistry:e=>new zm(e),workspace:{LangiumDocuments:e=>new Om(e),LangiumDocumentFactory:e=>new _m(e),DocumentBuilder:e=>new ng(e),IndexManager:e=>new ig(e),WorkspaceManager:e=>new sg(e),FileSystemProvider:e=>r.fileSystemProvider(e),WorkspaceLock:()=>new Sg,ConfigurationProvider:e=>new rg(e)}}}var pl;(function(r){r.merge=(e,t)=>Xn(Xn({},e),t)})(pl||(pl={}));function oe(r,e,t,n,i,s,a,o,l){const u=[r,e,t,n,i,s,a,o,l].reduce(Xn,{});return hc(u)}const Ng=Symbol("isProxy");function hc(r,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(n,i)=>i===Ng?!0:gl(n,i,r,e||t),getOwnPropertyDescriptor:(n,i)=>(gl(n,i,r,e||t),Object.getOwnPropertyDescriptor(n,i)),has:(n,i)=>i in r,ownKeys:()=>[...Object.getOwnPropertyNames(r)]});return t}const ml=Symbol();function gl(r,e,t,n){if(e in r){if(r[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:r[e]});if(r[e]===ml)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return r[e]}else if(e in t){const i=t[e];r[e]=ml;try{r[e]=typeof i=="function"?i(n):hc(i,n)}catch(s){throw r[e]=s instanceof Error?s:void 0,s}return r[e]}else return}function Xn(r,e){if(e){for(const[t,n]of Object.entries(e))if(n!==void 0){const i=r[t];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?r[t]=Xn(i,n):r[t]=n}}return r}class wg{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const lt={fileSystemProvider:()=>new wg},Lg={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},bg={AstReflection:()=>new Vl};function _g(){const r=oe(ot(lt),bg),e=oe(at({shared:r}),Lg);return r.ServiceRegistry.register(e),e}function It(r){var e;const t=_g(),n=t.serializer.JsonSerializer.deserialize(r);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Et.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var Og=Object.defineProperty,v=(r,e)=>Og(r,"name",{value:e,configurable:!0}),yl="Statement",$n="Architecture";function Pg(r){return De.isInstance(r,$n)}v(Pg,"isArchitecture");var an="Axis",Sr="Branch";function Mg(r){return De.isInstance(r,Sr)}v(Mg,"isBranch");var on="Checkout",ln="CherryPicking",bi="ClassDefStatement",Cr="Commit";function Dg(r){return De.isInstance(r,Cr)}v(Dg,"isCommit");var _i="Curve",Oi="Edge",Pi="Entry",Nr="GitGraph";function Fg(r){return De.isInstance(r,Nr)}v(Fg,"isGitGraph");var Mi="Group",En="Info";function Ug(r){return De.isInstance(r,En)}v(Ug,"isInfo");var un="Item",Di="Junction",wr="Merge";function Gg(r){return De.isInstance(r,wr)}v(Gg,"isMerge");var Fi="Option",kn="Packet";function Kg(r){return De.isInstance(r,kn)}v(Kg,"isPacket");var An="PacketBlock";function Bg(r){return De.isInstance(r,An)}v(Bg,"isPacketBlock");var xn="Pie";function Vg(r){return De.isInstance(r,xn)}v(Vg,"isPie");var In="PieSection";function jg(r){return De.isInstance(r,In)}v(jg,"isPieSection");var Ui="Radar",Gi="Service",Sn="Treemap";function Hg(r){return De.isInstance(r,Sn)}v(Hg,"isTreemap");var Ki="TreemapRow",cn="Direction",dn="Leaf",fn="Section",Bi,pc=(Bi=class extends Ol{getAllTypes(){return[$n,an,Sr,on,ln,bi,Cr,_i,cn,Oi,Pi,Nr,Mi,En,un,Di,dn,wr,Fi,kn,An,xn,In,Ui,fn,Gi,yl,Sn,Ki]}computeIsSubtype(r,e){switch(r){case Sr:case on:case ln:case Cr:case wr:return this.isSubtype(yl,e);case cn:return this.isSubtype(Nr,e);case dn:case fn:return this.isSubtype(un,e);default:return!1}}getReferenceType(r){const e=`${r.container.$type}:${r.property}`;switch(e){case"Entry:axis":return an;default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(r){switch(r){case $n:return{name:$n,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case an:return{name:an,properties:[{name:"label"},{name:"name"}]};case Sr:return{name:Sr,properties:[{name:"name"},{name:"order"}]};case on:return{name:on,properties:[{name:"branch"}]};case ln:return{name:ln,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"className"},{name:"styleText"}]};case Cr:return{name:Cr,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case _i:return{name:_i,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Oi:return{name:Oi,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 Pi:return{name:Pi,properties:[{name:"axis"},{name:"value"}]};case Nr:return{name:Nr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Mi:return{name:Mi,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case En:return{name:En,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case un:return{name:un,properties:[{name:"classSelector"},{name:"name"}]};case Di:return{name:Di,properties:[{name:"id"},{name:"in"}]};case wr:return{name:wr,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case Fi:return{name:Fi,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case kn:return{name:kn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case An:return{name:An,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case xn:return{name:xn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case In:return{name:In,properties:[{name:"label"},{name:"value"}]};case Ui:return{name:Ui,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Gi:return{name:Gi,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Sn:return{name:Sn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Ki:return{name:Ki,properties:[{name:"indent"},{name:"item"}]};case cn:return{name:cn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case dn:return{name:dn,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case fn:return{name:fn,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:r,properties:[]}}}},v(Bi,"MermaidAstReflection"),Bi),De=new pc,Tl,Wg=v(()=>Tl??(Tl=It(`{"$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"),vl,zg=v(()=>vl??(vl=It(`{"$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"),Rl,Yg=v(()=>Rl??(Rl=It(`{"$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"),$l,qg=v(()=>$l??($l=It(`{"$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"),El,Xg=v(()=>El??(El=It(`{"$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"),kl,Qg=v(()=>kl??(kl=It(`{"$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"),Al,Jg=v(()=>Al??(Al=It(`{"$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"),Zg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ey={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ty={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ry={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ny={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},iy={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},sy={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},St={AstReflection:v(()=>new pc,"AstReflection")},ay={Grammar:v(()=>Wg(),"Grammar"),LanguageMetaData:v(()=>Zg,"LanguageMetaData"),parser:{}},oy={Grammar:v(()=>zg(),"Grammar"),LanguageMetaData:v(()=>ey,"LanguageMetaData"),parser:{}},ly={Grammar:v(()=>Yg(),"Grammar"),LanguageMetaData:v(()=>ty,"LanguageMetaData"),parser:{}},uy={Grammar:v(()=>qg(),"Grammar"),LanguageMetaData:v(()=>ry,"LanguageMetaData"),parser:{}},cy={Grammar:v(()=>Xg(),"Grammar"),LanguageMetaData:v(()=>ny,"LanguageMetaData"),parser:{}},dy={Grammar:v(()=>Qg(),"Grammar"),LanguageMetaData:v(()=>iy,"LanguageMetaData"),parser:{}},fy={Grammar:v(()=>Jg(),"Grammar"),LanguageMetaData:v(()=>sy,"LanguageMetaData"),parser:{}},hy=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,py=/accTitle[\t ]*:([^\n\r]*)/,my=/title([\t ][^\n\r]*|)/,gy={ACC_DESCR:hy,ACC_TITLE:py,TITLE:my},Vi,di=(Vi=class extends ec{runConverter(r,e,t){let n=this.runCommonConverter(r,e,t);return n===void 0&&(n=this.runCustomConverter(r,e,t)),n===void 0?super.runConverter(r,e,t):n}runCommonConverter(r,e,t){const n=gy[r.name];if(n===void 0)return;const i=n.exec(e);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,`
125
+ `}class Ag{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&dg(t))return cg(t).toMarkdown({renderLink:(n,i)=>this.documentationLinkRenderer(e,n,i),renderTag:n=>this.documentationTagRenderer(e,n)})}documentationLinkRenderer(e,t,n){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const n=Ze(e).precomputedScopes;if(!n)return;let i=e;do{const s=n.get(i).find(a=>a.name===t);if(s)return s;i=i.$container}while(i)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(n=>n.name===t)}}class xg{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return Hm(e)?e.$comment:(t=Ad(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Ig{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Sg{constructor(){this.previousTokenSource=new K.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=Lm();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=K.CancellationToken.None){const i=new da,s={action:t,deferred:i,cancellationToken:n};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:n,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));n.resolve(s)}catch(s){ci(s)?n.resolve(void 0):n.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Cg{constructor(e){this.grammarElementIdMap=new ol,this.tokenTypeIdMap=new ol,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(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,n=new Map;for(const i of bt(e))t.set(i,{});if(e.$cstNode)for(const i of ss(e.$cstNode))n.set(i,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const 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(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];n[i]=a;for(const o of s)ae(o)?a.push(this.dehydrateAstNode(o,t)):Ge(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ae(s)?n[i]=this.dehydrateAstNode(s,t):Ge(s)?n[i]=this.dehydrateReference(s,t):s!==void 0&&(n[i]=s);return n}dehydrateReference(e,t){const n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);return Ml(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),_r(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,t)):Pl(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){const 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){const t=new Map,n=new Map;for(const s of bt(e))t.set(s,{});let i;if(e.$cstNode)for(const s of ss(e.$cstNode)){let a;"fullText"in s?(a=new Hu(s.fullText),i=a):"content"in s?a=new ua:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(n.set(s,a),a.root=i)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const 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(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];n[i]=a;for(const o of s)ae(o)?a.push(this.setParent(this.hydrateAstNode(o,t),n)):Ge(o)?a.push(this.hydrateReference(o,n,i,t)):a.push(o)}else ae(s)?n[i]=this.setParent(this.hydrateAstNode(s,t),n):Ge(s)?n[i]=this.hydrateReference(s,n,i,t):s!==void 0&&(n[i]=s);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,i){return this.linker.buildReference(t,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),_r(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,n++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),n=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,u=e.hidden;return new _s(n,i,{start:{line:s,character:a},end:{line:o,character:l}},t,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of bt(this.grammar))Id(t)&&this.grammarElementIdMap.set(t,e++)}}function at(r){return{documentation:{CommentProvider:e=>new xg(e),DocumentationProvider:e=>new Ag(e)},parser:{AsyncParser:e=>new Ig(e),GrammarConfig:e=>Tf(e),LangiumParser:e=>xm(e),CompletionParser:e=>Am(e),ValueConverter:()=>new ec,TokenBuilder:()=>new Zu,Lexer:e=>new lg(e),ParserErrorMessageProvider:()=>new Yu,LexerErrorMessageProvider:()=>new ag},workspace:{AstNodeLocator:()=>new eg,AstNodeDescriptionProvider:e=>new Jm(e),ReferenceDescriptionProvider:e=>new Zm(e)},references:{Linker:e=>new Pm(e),NameProvider:()=>new Dm,ScopeProvider:e=>new jm(e),ScopeComputation:e=>new Um(e),References:e=>new Fm(e)},serializer:{Hydrator:e=>new Cg(e),JsonSerializer:e=>new Wm(e)},validation:{DocumentValidator:e=>new qm(e),ValidationRegistry:e=>new Ym(e)},shared:()=>r.shared}}function ot(r){return{ServiceRegistry:e=>new zm(e),workspace:{LangiumDocuments:e=>new Om(e),LangiumDocumentFactory:e=>new _m(e),DocumentBuilder:e=>new ng(e),IndexManager:e=>new ig(e),WorkspaceManager:e=>new sg(e),FileSystemProvider:e=>r.fileSystemProvider(e),WorkspaceLock:()=>new Sg,ConfigurationProvider:e=>new rg(e)}}}var pl;(function(r){r.merge=(e,t)=>Xn(Xn({},e),t)})(pl||(pl={}));function oe(r,e,t,n,i,s,a,o,l){const u=[r,e,t,n,i,s,a,o,l].reduce(Xn,{});return hc(u)}const Ng=Symbol("isProxy");function hc(r,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(n,i)=>i===Ng?!0:gl(n,i,r,e||t),getOwnPropertyDescriptor:(n,i)=>(gl(n,i,r,e||t),Object.getOwnPropertyDescriptor(n,i)),has:(n,i)=>i in r,ownKeys:()=>[...Object.getOwnPropertyNames(r)]});return t}const ml=Symbol();function gl(r,e,t,n){if(e in r){if(r[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:r[e]});if(r[e]===ml)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return r[e]}else if(e in t){const i=t[e];r[e]=ml;try{r[e]=typeof i=="function"?i(n):hc(i,n)}catch(s){throw r[e]=s instanceof Error?s:void 0,s}return r[e]}else return}function Xn(r,e){if(e){for(const[t,n]of Object.entries(e))if(n!==void 0){const i=r[t];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?r[t]=Xn(i,n):r[t]=n}}return r}class wg{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const lt={fileSystemProvider:()=>new wg},Lg={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},bg={AstReflection:()=>new Vl};function _g(){const r=oe(ot(lt),bg),e=oe(at({shared:r}),Lg);return r.ServiceRegistry.register(e),e}function It(r){var e;const t=_g(),n=t.serializer.JsonSerializer.deserialize(r);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Et.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var Og=Object.defineProperty,v=(r,e)=>Og(r,"name",{value:e,configurable:!0}),yl="Statement",$n="Architecture";function Pg(r){return De.isInstance(r,$n)}v(Pg,"isArchitecture");var an="Axis",Sr="Branch";function Mg(r){return De.isInstance(r,Sr)}v(Mg,"isBranch");var on="Checkout",ln="CherryPicking",bi="ClassDefStatement",Cr="Commit";function Dg(r){return De.isInstance(r,Cr)}v(Dg,"isCommit");var _i="Curve",Oi="Edge",Pi="Entry",Nr="GitGraph";function Fg(r){return De.isInstance(r,Nr)}v(Fg,"isGitGraph");var Mi="Group",En="Info";function Ug(r){return De.isInstance(r,En)}v(Ug,"isInfo");var un="Item",Di="Junction",wr="Merge";function Gg(r){return De.isInstance(r,wr)}v(Gg,"isMerge");var Fi="Option",kn="Packet";function Bg(r){return De.isInstance(r,kn)}v(Bg,"isPacket");var An="PacketBlock";function Kg(r){return De.isInstance(r,An)}v(Kg,"isPacketBlock");var xn="Pie";function Vg(r){return De.isInstance(r,xn)}v(Vg,"isPie");var In="PieSection";function jg(r){return De.isInstance(r,In)}v(jg,"isPieSection");var Ui="Radar",Gi="Service",Sn="Treemap";function Hg(r){return De.isInstance(r,Sn)}v(Hg,"isTreemap");var Bi="TreemapRow",cn="Direction",dn="Leaf",fn="Section",Ki,pc=(Ki=class extends Ol{getAllTypes(){return[$n,an,Sr,on,ln,bi,Cr,_i,cn,Oi,Pi,Nr,Mi,En,un,Di,dn,wr,Fi,kn,An,xn,In,Ui,fn,Gi,yl,Sn,Bi]}computeIsSubtype(r,e){switch(r){case Sr:case on:case ln:case Cr:case wr:return this.isSubtype(yl,e);case cn:return this.isSubtype(Nr,e);case dn:case fn:return this.isSubtype(un,e);default:return!1}}getReferenceType(r){const e=`${r.container.$type}:${r.property}`;switch(e){case"Entry:axis":return an;default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(r){switch(r){case $n:return{name:$n,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case an:return{name:an,properties:[{name:"label"},{name:"name"}]};case Sr:return{name:Sr,properties:[{name:"name"},{name:"order"}]};case on:return{name:on,properties:[{name:"branch"}]};case ln:return{name:ln,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"className"},{name:"styleText"}]};case Cr:return{name:Cr,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case _i:return{name:_i,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Oi:return{name:Oi,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 Pi:return{name:Pi,properties:[{name:"axis"},{name:"value"}]};case Nr:return{name:Nr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Mi:return{name:Mi,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case En:return{name:En,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case un:return{name:un,properties:[{name:"classSelector"},{name:"name"}]};case Di:return{name:Di,properties:[{name:"id"},{name:"in"}]};case wr:return{name:wr,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case Fi:return{name:Fi,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case kn:return{name:kn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case An:return{name:An,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case xn:return{name:xn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case In:return{name:In,properties:[{name:"label"},{name:"value"}]};case Ui:return{name:Ui,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Gi:return{name:Gi,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Sn:return{name:Sn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Bi:return{name:Bi,properties:[{name:"indent"},{name:"item"}]};case cn:return{name:cn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case dn:return{name:dn,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case fn:return{name:fn,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:r,properties:[]}}}},v(Ki,"MermaidAstReflection"),Ki),De=new pc,Tl,Wg=v(()=>Tl??(Tl=It(`{"$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"),vl,zg=v(()=>vl??(vl=It(`{"$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"),Rl,Yg=v(()=>Rl??(Rl=It(`{"$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"),$l,qg=v(()=>$l??($l=It(`{"$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"),El,Xg=v(()=>El??(El=It(`{"$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"),kl,Qg=v(()=>kl??(kl=It(`{"$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"),Al,Jg=v(()=>Al??(Al=It(`{"$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"),Zg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ey={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ty={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ry={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ny={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},iy={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},sy={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},St={AstReflection:v(()=>new pc,"AstReflection")},ay={Grammar:v(()=>Wg(),"Grammar"),LanguageMetaData:v(()=>Zg,"LanguageMetaData"),parser:{}},oy={Grammar:v(()=>zg(),"Grammar"),LanguageMetaData:v(()=>ey,"LanguageMetaData"),parser:{}},ly={Grammar:v(()=>Yg(),"Grammar"),LanguageMetaData:v(()=>ty,"LanguageMetaData"),parser:{}},uy={Grammar:v(()=>qg(),"Grammar"),LanguageMetaData:v(()=>ry,"LanguageMetaData"),parser:{}},cy={Grammar:v(()=>Xg(),"Grammar"),LanguageMetaData:v(()=>ny,"LanguageMetaData"),parser:{}},dy={Grammar:v(()=>Qg(),"Grammar"),LanguageMetaData:v(()=>iy,"LanguageMetaData"),parser:{}},fy={Grammar:v(()=>Jg(),"Grammar"),LanguageMetaData:v(()=>sy,"LanguageMetaData"),parser:{}},hy=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,py=/accTitle[\t ]*:([^\n\r]*)/,my=/title([\t ][^\n\r]*|)/,gy={ACC_DESCR:hy,ACC_TITLE:py,TITLE:my},Vi,di=(Vi=class extends ec{runConverter(r,e,t){let n=this.runCommonConverter(r,e,t);return n===void 0&&(n=this.runCustomConverter(r,e,t)),n===void 0?super.runConverter(r,e,t):n}runCommonConverter(r,e,t){const n=gy[r.name];if(n===void 0)return;const i=n.exec(e);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,`
126
126
  `)}}},v(Vi,"AbstractMermaidValueConverter"),Vi),ji,fi=(ji=class extends di{runCustomConverter(r,e,t){}},v(ji,"CommonValueConverter"),ji),Hi,ut=(Hi=class extends Zu{constructor(r){super(),this.keywords=new Set(r)}buildKeywordTokens(r,e,t){const n=super.buildKeywordTokens(r,e,t);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},v(Hi,"AbstractMermaidTokenBuilder"),Hi),xl;xl=class extends ut{},v(xl,"CommonTokenBuilder");var Wi,yy=(Wi=class extends ut{constructor(){super(["gitGraph"])}},v(Wi,"GitGraphTokenBuilder"),Wi),mc={parser:{TokenBuilder:v(()=>new yy,"TokenBuilder"),ValueConverter:v(()=>new fi,"ValueConverter")}};function gc(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),cy,mc);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}v(gc,"createGitGraphServices");var zi,Ty=(zi=class extends ut{constructor(){super(["info","showInfo"])}},v(zi,"InfoTokenBuilder"),zi),yc={parser:{TokenBuilder:v(()=>new Ty,"TokenBuilder"),ValueConverter:v(()=>new fi,"ValueConverter")}};function Tc(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),ay,yc);return e.ServiceRegistry.register(t),{shared:e,Info:t}}v(Tc,"createInfoServices");var Yi,vy=(Yi=class extends ut{constructor(){super(["packet"])}},v(Yi,"PacketTokenBuilder"),Yi),vc={parser:{TokenBuilder:v(()=>new vy,"TokenBuilder"),ValueConverter:v(()=>new fi,"ValueConverter")}};function Rc(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),oy,vc);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}v(Rc,"createPacketServices");var qi,Ry=(qi=class extends ut{constructor(){super(["pie","showData"])}},v(qi,"PieTokenBuilder"),qi),Xi,$y=(Xi=class extends di{runCustomConverter(r,e,t){if(r.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},v(Xi,"PieValueConverter"),Xi),$c={parser:{TokenBuilder:v(()=>new Ry,"TokenBuilder"),ValueConverter:v(()=>new $y,"ValueConverter")}};function Ec(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),ly,$c);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}v(Ec,"createPieServices");var Qi,Ey=(Qi=class extends ut{constructor(){super(["architecture"])}},v(Qi,"ArchitectureTokenBuilder"),Qi),Ji,ky=(Ji=class extends di{runCustomConverter(r,e,t){if(r.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(r.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(r.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},v(Ji,"ArchitectureValueConverter"),Ji),kc={parser:{TokenBuilder:v(()=>new Ey,"TokenBuilder"),ValueConverter:v(()=>new ky,"ValueConverter")}};function Ac(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),uy,kc);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}v(Ac,"createArchitectureServices");var Zi,Ay=(Zi=class extends ut{constructor(){super(["radar-beta"])}},v(Zi,"RadarTokenBuilder"),Zi),xc={parser:{TokenBuilder:v(()=>new Ay,"TokenBuilder"),ValueConverter:v(()=>new fi,"ValueConverter")}};function Ic(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),dy,xc);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}v(Ic,"createRadarServices");var es,xy=(es=class extends ut{constructor(){super(["treemap"])}},v(es,"TreemapTokenBuilder"),es),Iy=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,ts,Sy=(ts=class extends di{runCustomConverter(r,e,t){if(r.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(r.name==="SEPARATOR"||r.name==="STRING2")return e.substring(1,e.length-1);if(r.name==="INDENTATION")return e.length;if(r.name==="ClassDef"){if(typeof e!="string")return e;const n=Iy.exec(e);if(n)return{$type:"ClassDefStatement",className:n[1],styleText:n[2]||void 0}}}},v(ts,"TreemapValueConverter"),ts);function Sc(r){const e=r.validation.TreemapValidator,t=r.validation.ValidationRegistry;if(t){const n={Treemap:e.checkSingleRoot.bind(e)};t.register(n,e)}}v(Sc,"registerValidationChecks");var rs,Cy=(rs=class{checkSingleRoot(r,e){let t;for(const n of r.TreemapRows)n.item&&(t===void 0&&n.indent===void 0?t=0:n.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):t!==void 0&&t>=parseInt(n.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},v(rs,"TreemapValidator"),rs),Cc={parser:{TokenBuilder:v(()=>new xy,"TokenBuilder"),ValueConverter:v(()=>new Sy,"ValueConverter")},validation:{TreemapValidator:v(()=>new Cy,"TreemapValidator")}};function Nc(r=lt){const e=oe(ot(r),St),t=oe(at({shared:e}),fy,Cc);return e.ServiceRegistry.register(t),Sc(t),{shared:e,Treemap:t}}v(Nc,"createTreemapServices");var He={},Ny={info:v(async()=>{const{createInfoServices:r}=await ft(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>by);return{createInfoServices:t}},void 0),e=r().Info.parser.LangiumParser;He.info=e},"info"),packet:v(async()=>{const{createPacketServices:r}=await ft(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>_y);return{createPacketServices:t}},void 0),e=r().Packet.parser.LangiumParser;He.packet=e},"packet"),pie:v(async()=>{const{createPieServices:r}=await ft(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>Oy);return{createPieServices:t}},void 0),e=r().Pie.parser.LangiumParser;He.pie=e},"pie"),architecture:v(async()=>{const{createArchitectureServices:r}=await ft(async()=>{const{createArchitectureServices:t}=await Promise.resolve().then(()=>Py);return{createArchitectureServices:t}},void 0),e=r().Architecture.parser.LangiumParser;He.architecture=e},"architecture"),gitGraph:v(async()=>{const{createGitGraphServices:r}=await ft(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>My);return{createGitGraphServices:t}},void 0),e=r().GitGraph.parser.LangiumParser;He.gitGraph=e},"gitGraph"),radar:v(async()=>{const{createRadarServices:r}=await ft(async()=>{const{createRadarServices:t}=await Promise.resolve().then(()=>Dy);return{createRadarServices:t}},void 0),e=r().Radar.parser.LangiumParser;He.radar=e},"radar"),treemap:v(async()=>{const{createTreemapServices:r}=await ft(async()=>{const{createTreemapServices:t}=await Promise.resolve().then(()=>Fy);return{createTreemapServices:t}},void 0),e=r().Treemap.parser.LangiumParser;He.treemap=e},"treemap")};async function wy(r,e){const t=Ny[r];if(!t)throw new Error(`Unknown diagram type: ${r}`);He[r]||await t();const n=He[r].parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new Ly(n);return n.value}v(wy,"parse");var ns,Ly=(ns=class extends Error{constructor(r){const e=r.lexerErrors.map(n=>n.message).join(`
127
127
  `),t=r.parserErrors.map(n=>n.message).join(`
128
128
  `);super(`Parsing failed: ${e} ${t}`),this.result=r}},v(ns,"MermaidParseError"),ns);const by=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:yc,createInfoServices:Tc},Symbol.toStringTag,{value:"Module"})),_y=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:vc,createPacketServices:Rc},Symbol.toStringTag,{value:"Module"})),Oy=Object.freeze(Object.defineProperty({__proto__:null,PieModule:$c,createPieServices:Ec},Symbol.toStringTag,{value:"Module"})),Py=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:kc,createArchitectureServices:Ac},Symbol.toStringTag,{value:"Module"})),My=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:mc,createGitGraphServices:gc},Symbol.toStringTag,{value:"Module"})),Dy=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:xc,createRadarServices:Ic},Symbol.toStringTag,{value:"Module"})),Fy=Object.freeze(Object.defineProperty({__proto__:null,TreemapModule:Cc,createTreemapServices:Nc},Symbol.toStringTag,{value:"Module"}));export{wy as N};