@marimo-team/frontend 0.14.11-dev9 → 0.14.11

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 (150) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-uXz93dNS.js → ConnectedDataExplorerComponent-B9BmPz9a.js} +3 -3
  2. package/dist/assets/{ImageComparisonComponent-BKnsl2Lw.js → ImageComparisonComponent-CNTqLdnf.js} +1 -1
  3. package/dist/assets/{VegaLite-BaImNNv3.js → VegaLite-DLKRDJvl.js} +8 -8
  4. package/dist/assets/_baseEach-BjDLzUwG.js +1 -0
  5. package/dist/assets/_baseMap-CuZ-LBtv.js +1 -0
  6. package/dist/assets/_baseUniq-DqHaT24V.js +1 -0
  7. package/dist/assets/{_createAggregator-UP8Yzte5.js → _createAggregator-C_WhAECr.js} +1 -1
  8. package/dist/assets/{any-language-editor-DRrR5rXm.js → any-language-editor-DrZjy7mH.js} +1 -1
  9. package/dist/assets/arc-ZB5pDULS.js +1 -0
  10. package/dist/assets/architectureDiagram-NQ2NVSRB-DqJfNlvg.js +36 -0
  11. package/dist/assets/blockDiagram-PHRCVELO-BMyZ52bP.js +122 -0
  12. package/dist/assets/{c4Diagram-VJAJSXHY-CUi9TQC0.js → c4Diagram-6F6E4RAY-DveKwcb7.js} +2 -2
  13. package/dist/assets/channel-LYGgdr1R.js +1 -0
  14. package/dist/assets/{chunk-4BMEZGHF-D2t_7m-l.js → chunk-353BL4L5-DBdJb07A.js} +1 -1
  15. package/dist/assets/{chunk-D6G4REZN-PEhYQ7FV.js → chunk-67H74DCK-DG8iWVJ-.js} +1 -1
  16. package/dist/assets/chunk-6OLS64BW-Dmt4rYEQ.js +220 -0
  17. package/dist/assets/{chunk-XZIHB7SX-DVug_9TW.js → chunk-AACKK3MU-CDOdA9eC.js} +1 -1
  18. package/dist/assets/chunk-BFAMUDN2-Cf6198RO.js +1 -0
  19. package/dist/assets/chunk-E2GYISFI-fSvIEcyU.js +15 -0
  20. package/dist/assets/{chunk-A2AXSNBT-eJyrTwta.js → chunk-QEP2MXWD-D6FP1cQC.js} +4 -3
  21. package/dist/assets/chunk-SKB7J2MH-B7Z1FsaJ.js +1 -0
  22. package/dist/assets/{circle-play-Do5wdxBG.js → circle-play-CBftacWk.js} +2 -2
  23. package/dist/assets/classDiagram-BGRH5UQR-BQbZmSV-.js +1 -0
  24. package/dist/assets/classDiagram-v2-O24JOBDK-BQbZmSV-.js +1 -0
  25. package/dist/assets/clone-DD3sG0_1.js +1 -0
  26. package/dist/assets/compile-mbjlQ5nn.js +10 -0
  27. package/dist/assets/dagre-FFZHY6LT-DX9cGWLP.js +4 -0
  28. package/dist/assets/data-grid-overlay-editor-C4fyHnn1.js +1 -0
  29. package/dist/assets/diagram-3EMPZRKU-BwXQu6c-.js +24 -0
  30. package/dist/assets/diagram-5UYTHUR4-BgOShMim.js +24 -0
  31. package/dist/assets/diagram-ZTM2IBQH-m55tqkSF.js +43 -0
  32. package/dist/assets/edit-page-BMW2Fhcz.js +148 -0
  33. package/dist/assets/{erDiagram-Q7BY3M3F-B6F7ju5f.js → erDiagram-R3QVA2FD-B8SQvwhp.js} +1 -1
  34. package/dist/assets/flowDiagram-PKI6S5ZS-BTbZVZp0.js +162 -0
  35. package/dist/assets/ganttDiagram-EK5VF46D-Dkuqvb7b.js +267 -0
  36. package/dist/assets/gitGraphDiagram-GW3U2K7C-BMQ8L_am.js +65 -0
  37. package/dist/assets/glide-data-editor-BKZWFNVv.js +132 -0
  38. package/dist/assets/glide-data-editor-DcmjcDkq.css +1 -0
  39. package/dist/assets/{graph-wIsv4ssO.js → graph-CFDemIXQ.js} +1 -1
  40. package/dist/assets/home-page-DUbYTF9g.js +9 -0
  41. package/dist/assets/index-1az6nvpO.js +1 -0
  42. package/dist/assets/{index-CNd6d_Hy.js → index-B0-K_sX8.js} +1 -1
  43. package/dist/assets/{index-C2wmC6fr.js → index-B9WlbtVk.js} +1 -1
  44. package/dist/assets/index-BEQfoZiP.js +1 -0
  45. package/dist/assets/{index-Cpkva4YR.js → index-BWEPJWCF.js} +1 -1
  46. package/dist/assets/index-CE3mbf8H.js +1 -0
  47. package/dist/assets/{index-qUTVxT1L.js → index-CH2sakSJ.js} +1 -1
  48. package/dist/assets/{index-RZfe2xwT.js → index-CRY746sV.js} +1 -1
  49. package/dist/assets/index-C_e9XjpS.js +1 -0
  50. package/dist/assets/{index-CwKyWSy1.js → index-CaHkXpUp.js} +1 -1
  51. package/dist/assets/index-CfvA7bvb.js +1 -0
  52. package/dist/assets/{index-BRhVM8bV.js → index-ChVO1Vdj.js} +1 -1
  53. package/dist/assets/index-CsdFJkJw.css +1 -0
  54. package/dist/assets/{index-DnFPJYjY.js → index-CylrdBnG.js} +1 -1
  55. package/dist/assets/index-D3Er-byj.js +1 -0
  56. package/dist/assets/{index-CAMhb73a.js → index-D_Dmmo5g.js} +1 -1
  57. package/dist/assets/{index-DNQQBv-I.js → index-Drq4Lpl3.js} +1 -1
  58. package/dist/assets/{index-BRUyjTC9.js → index-MUMVp22V.js} +1 -1
  59. package/dist/assets/{index-gobDTezl.js → index-NLK5-sPO.js} +1 -1
  60. package/dist/assets/index-_lj65MZR.js +507 -0
  61. package/dist/assets/{index-DGgaTWAE.js → index-d0CXXxee.js} +2 -2
  62. package/dist/assets/infoDiagram-RLU2ROGC-DAW5X38W.js +2 -0
  63. package/dist/assets/journeyDiagram-EWQZEKCU--6lJjuiM.js +139 -0
  64. package/dist/assets/{kanban-definition-NDS4AKOZ-CHQtWsik.js → kanban-definition-ILFWEQ3N-CXNPWHB8.js} +9 -8
  65. package/dist/assets/{layout-DkXQ4_M1.js → layout-Jgv95YSr.js} +1 -1
  66. package/dist/assets/linear-DtgEMbrz.js +1 -0
  67. package/dist/assets/links-Bjf-1I2i.js +17 -0
  68. package/dist/assets/loro_wasm_bg-bPYKkGLG.wasm +0 -0
  69. package/dist/assets/mermaid-DCMac0Ai.js +152 -0
  70. package/dist/assets/min-VDyC-auF.js +1 -0
  71. package/dist/assets/{mindmap-definition-ALO5MXBD-B1X_X_4_.js → mindmap-definition-CZNETY7S-BEd6cR16.js} +4 -4
  72. package/dist/assets/number-overlay-editor-C3hemckO.js +9 -0
  73. package/dist/assets/{pieDiagram-IB7DONF6-BgMOnu-h.js → pieDiagram-NIOCPIFQ-B-zGF99A.js} +1 -1
  74. package/dist/assets/{quadrantDiagram-7GDLP6J5-BjE1BJSG.js → quadrantDiagram-2OG54O6I-2tF9b_2b.js} +1 -1
  75. package/dist/assets/{react-plotly-Hgniu5d7.js → react-plotly-CdJaKwaj.js} +1 -1
  76. package/dist/assets/{requirementDiagram-KVF5MWMF-DAYTGE0Y.js → requirementDiagram-SO3GGRV7-DEa34SeY.js} +3 -3
  77. package/dist/assets/run-page-Bg1x8WTa.js +1 -0
  78. package/dist/assets/{sankeyDiagram-QLVOVGJD-Dskrs1np.js → sankeyDiagram-4UZDY2LN-DUIUN-K8.js} +4 -4
  79. package/dist/assets/save-worker-B8gk1S9x.js +1 -0
  80. package/dist/assets/sequenceDiagram-ZIKVLSP4-BZGddaB9.js +122 -0
  81. package/dist/assets/slides-component-C2uc6kmf.js +1 -0
  82. package/dist/assets/sortBy-Bob7dKSt.js +1 -0
  83. package/dist/assets/stateDiagram-XX37X6EN-DUi_goR8.js +1 -0
  84. package/dist/assets/stateDiagram-v2-GD6S3NHB-CdRNmgeb.js +1 -0
  85. package/dist/assets/storage-CTvz5ejZ.js +25 -0
  86. package/dist/assets/{terminal-BwkkP8Z5.js → terminal-BkOhnp-S.js} +1 -1
  87. package/dist/assets/{time-4AULYytW.js → time-BXb9z1yv.js} +1 -1
  88. package/dist/assets/timeline-definition-RI47OAVP-CTWn3WQu.js +61 -0
  89. package/dist/assets/tracing-Z4QREdu3.js +2 -0
  90. package/dist/assets/trash-BWRVB_br.js +6 -0
  91. package/dist/assets/treemap-FKARHQ26-AlpUch0p.js +126 -0
  92. package/dist/assets/vega-component-CX_u3Hhp.js +1 -0
  93. package/dist/assets/worker-BYA2ASe8.js +1 -0
  94. package/dist/assets/worker-Ch6cKXnI.js +1 -0
  95. package/dist/assets/xychartDiagram-H2YORKM3-D0JoLNE8.js +7 -0
  96. package/dist/index.html +4 -2
  97. package/package.json +45 -44
  98. package/dist/assets/_baseEach-_Aph8Tu3.js +0 -1
  99. package/dist/assets/_baseMap-DLvObhA2.js +0 -1
  100. package/dist/assets/_baseUniq-ydsgt4N4.js +0 -1
  101. package/dist/assets/arc-CfyY4LWz.js +0 -1
  102. package/dist/assets/architectureDiagram-IEHRJDOE-uFOQEO33.js +0 -36
  103. package/dist/assets/blockDiagram-JOT3LUYC-DEvMFeRP.js +0 -121
  104. package/dist/assets/channel-0q_RQ8BB.js +0 -1
  105. package/dist/assets/chunk-AEK57VVT-DBCcQUkl.js +0 -220
  106. package/dist/assets/chunk-RZ5BOZE2-Ww9F4D19.js +0 -1
  107. package/dist/assets/classDiagram-GIVACNV2-CtATtfTL.js +0 -1
  108. package/dist/assets/classDiagram-v2-COTLJTTW-CtATtfTL.js +0 -1
  109. package/dist/assets/clone-WlurXIwI.js +0 -1
  110. package/dist/assets/compile-CS53SapK.js +0 -10
  111. package/dist/assets/dagre-OKDRZEBW-BnZptSaW.js +0 -4
  112. package/dist/assets/data-editor-CkjuKdYe.js +0 -142
  113. package/dist/assets/diagram-SSKATNLV-B1pf0a7a.js +0 -43
  114. package/dist/assets/diagram-VNBRO52H-Dwersrui.js +0 -24
  115. package/dist/assets/edit-page-FmqkTE0k.js +0 -144
  116. package/dist/assets/flowDiagram-4HSFHLVR-BZFM8dwO.js +0 -161
  117. package/dist/assets/ganttDiagram-APWFNJXF-C5tnuAdQ.js +0 -257
  118. package/dist/assets/gitGraphDiagram-7IBYFJ6S-CfB_wvgD.js +0 -65
  119. package/dist/assets/home-page-C4EqZnZ_.js +0 -9
  120. package/dist/assets/index-8IZtaDUn.css +0 -1
  121. package/dist/assets/index-B6FmCnnO.js +0 -1
  122. package/dist/assets/index-Brn5h-MN.js +0 -501
  123. package/dist/assets/index-CUP2IjKA.js +0 -1
  124. package/dist/assets/index-D6dKte92.js +0 -1
  125. package/dist/assets/index-D8WfHeCN.js +0 -1
  126. package/dist/assets/index-bmSr8I3W.js +0 -1
  127. package/dist/assets/infoDiagram-PH2N3AL5-BOyAI4Oa.js +0 -2
  128. package/dist/assets/journeyDiagram-U35MCT3I-BmSDnsgn.js +0 -138
  129. package/dist/assets/linear-CKa6tYxf.js +0 -1
  130. package/dist/assets/loro_wasm_bg-DHBNbovs.wasm +0 -0
  131. package/dist/assets/mermaid-CKYMkzSc.js +0 -152
  132. package/dist/assets/min-DPzXE2V0.js +0 -1
  133. package/dist/assets/radar-MK3ICKWK-BGF1Bvyn.js +0 -126
  134. package/dist/assets/run-page-DH3oskJG.js +0 -1
  135. package/dist/assets/save-worker-DZnx0AG9.js +0 -1
  136. package/dist/assets/sequenceDiagram-X6HHIX6F-CjFOqeNr.js +0 -122
  137. package/dist/assets/shutdown-button-T9XyTVKT.js +0 -17
  138. package/dist/assets/slides-component-B5LFcBlv.js +0 -1
  139. package/dist/assets/sortBy-w86K0CWQ.js +0 -1
  140. package/dist/assets/stateDiagram-DGXRK772-CPPjYL76.js +0 -1
  141. package/dist/assets/stateDiagram-v2-YXO3MK2T-3iPgv_dT.js +0 -1
  142. package/dist/assets/storage-BSuExvg_.js +0 -27
  143. package/dist/assets/timeline-definition-BDJGKUSR-CAO3o0Eo.js +0 -61
  144. package/dist/assets/tracing-DV52BG1x.js +0 -2
  145. package/dist/assets/vega-component-DbwTp9Hj.js +0 -1
  146. package/dist/assets/worker-BbdB3qWL.js +0 -1
  147. package/dist/assets/worker-CnoOKJWk.js +0 -1
  148. package/dist/assets/xychartDiagram-VJFVF3MP-Q0piBnso.js +0 -7
  149. /package/dist/assets/{shutdown-button-C1rhMrxo.css → links-C1rhMrxo.css} +0 -0
  150. /package/dist/assets/{transform-DetRMEbJ.js → transform-CDNfLgV5.js} +0 -0
@@ -1,126 +0,0 @@
1
- var Oc=Object.defineProperty;var _c=(n,e,t)=>e in n?Oc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Qe=(n,e,t)=>_c(n,typeof e!="symbol"?e+"":e,t);var Mt,Dt,Ut,Gt,Ft,Bt,Kt,Vt,jt,Ht,Wt,zt,Yt,qt;import{oe as bc,dj as Pc,x as Os,cP as Mc,P as Rt,d4 as Dc,d9 as Uc,da as Gc,H as Fc,K as _s,J as bs,bY as ai,of as Ps,Y as se,db as Bc,cY as Ms,og as Ds,aD as Kc,c_ as Us,aA as Vc,oh as jc,d5 as Hc,oi as Wc,dd as Ce,O as at,aC as Gs,ci as zc,oj as z,ok as Yc,ol as qc,om as Ee,$ as Et}from"./index-Brn5h-MN.js";import{b as Fs,a as Xt}from"./_baseEach-_Aph8Tu3.js";import{g as Xc,v as Y,h as Bs,j as Qc,k as Jc,a as Ks,c as I,i as Ve,r as le,f as Ae,n as q}from"./_baseUniq-ydsgt4N4.js";import{m as x,f as At,h as N,d as oi,l as kt,c as Zc}from"./min-DPzXE2V0.js";import{a9 as M}from"./mermaid-CKYMkzSc.js";import{c as J}from"./clone-WlurXIwI.js";import{c as el}from"./_createAggregator-UP8Yzte5.js";var tl=Object.prototype.hasOwnProperty,ke=bc(function(n,e){if(Pc(e)||Os(e))Mc(e,Rt(e),n);else for(var t in e)tl.call(e,t)&&Dc(n,t,e[t])});function Qt(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}var Yn=Fc(function(n,e){return _s(n)?function(t,r,i,s){var a=-1,o=Xc,c=!0,l=t.length,u=[],h=r.length;if(!l)return u;r.length>=200&&(o=Gc,c=!1,r=new Uc(r));e:for(;++a<l;){var d=t[a],f=d;if(d=d!==0?d:0,c&&f==f){for(var p=h;p--;)if(r[p]===f)continue e;u.push(d)}else o(r,f,s)||u.push(d)}return u}(n,bs(e,1,_s,!0)):[]});function Z(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:ai(e),Ps(n,e<0?0:e,r)):[]}function Jt(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:ai(e),Ps(n,0,(e=r-e)<0?0:e)):[]}function nl(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function rl(n,e){var t=!0;return Fs(n,function(r,i,s){return t=!!e(r,i,s)}),t}function _e(n,e,t){return(se(n)?nl:rl)(n,Xt(e))}function be(n){return n&&n.length?n[0]:void 0}function $e(n,e){return bs(x(n,e))}var il=Object.prototype.hasOwnProperty,sl=el(function(n,e,t){il.call(n,t)?n[t].push(e):Bc(n,t,[e])});function pe(n){return typeof n=="string"||!se(n)&&Ms(n)&&Ds(n)=="[object String]"}var al=Math.max;function ue(n,e,t,r){n=Os(n)?n:Y(n),t=t?ai(t):0;var i=n.length;return t<0&&(t=al(i+t,0)),pe(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Bs(n,e,t)>-1}function Vs(n,e,t){return n!=null&&n.length?Bs(n,e,0):-1}var js=Us&&Us.isRegExp,je=js?Kc(js):function(n){return Ms(n)&&Ds(n)=="[object RegExp]"};function Pe(n,e){if(n==null)return{};var t=Vc(Qc(n),function(r){return[r]});return e=Xt(e),jc(n,t,function(r,i){return e(r,i[0])})}function qn(n,e){return(se(n)?Hc:Jc)(n,function(t){if(typeof t!="function")throw new TypeError("Expected a function");return function(){var r=arguments;switch(r.length){case 0:return!t.call(this);case 1:return!t.call(this,r[0]);case 2:return!t.call(this,r[0],r[1]);case 3:return!t.call(this,r[0],r[1],r[2])}return!t.apply(this,r)}}(Xt(e)))}function ol(n,e){var t;return Fs(n,function(r,i,s){return!(t=e(r,i,s))}),!!t}function Hs(n,e,t){return(se(n)?Wc:ol)(n,Xt(e))}function ci(n){return n&&n.length?Ks(n):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function Xn(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Ws{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 r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Zt(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function zs(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Ys(n){return Zt(n)&&typeof n.fullText=="string"}class ne{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,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new ne(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return xe})}join(e=","){const t=this.iterator();let r,i="",s=!1;do r=t.next(),r.done||(s&&(i+=e),i+=cl(r.value)),s=!0;while(!r.done);return i}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new ne(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?xe:{done:!1,value:e(i)}})}filter(e){return new ne(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return xe})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i=i===void 0?s.value:e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new ne(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(!s.done)return s;t.iterator=void 0}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(!Qn(s))return{done:!1,value:s};t.iterator=s[Symbol.iterator]()}}while(t.iterator);return xe})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new ne(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(!a.done)return a;r.iterator=void 0}const{done:i,value:s}=t.nextFn(r.this);if(!i){if(!Qn(s))return{done:!1,value:s};r.iterator=s[Symbol.iterator]()}}while(r.iterator);return xe})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new ne(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new ne(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?xe:this.nextFn(t.state)))}distinct(e){return new ne(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return xe})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function cl(n){return typeof n=="string"?n:n===void 0?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Qn(n){return!!n&&typeof n[Symbol.iterator]=="function"}const ll=new ne(()=>{},()=>xe),xe=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof ne)return e;if(Qn(e))return new ne(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new ne(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:xe)}return n.length>1?new ne(()=>({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<n.length){const t=n[e.collIndex++];Qn(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return xe}):ll}class li extends ne{constructor(e,t,r){super(()=>({iterators:r!=null&&r.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)return i.iterators.push(t(s.value)[Symbol.iterator]()),s;i.iterators.pop()}return xe})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ui,He;function di(n){return new li(n,e=>Zt(e)?e.content:[],{includeRoot:!0})}function hi(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Jn(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}function ul(n,e){return function(r,i){if(r.end.line<i.start.line||r.end.line===i.start.line&&r.end.character<=i.start.character)return He.Before;if(r.start.line>i.end.line||r.start.line===i.end.line&&r.start.character>=i.end.character)return He.After;const s=r.start.line>i.start.line||r.start.line===i.start.line&&r.start.character>=i.start.character,a=r.end.line<i.end.line||r.end.line===i.end.line&&r.end.character<=i.end.character;return s&&a?He.Inside:s?He.OverlapBack:a?He.OverlapFront:He.Outside}(n,e)>He.After}(function(n){n.sum=function(e){return e.reduce((t,r)=>t+r,0)},n.product=function(e){return e.reduce((t,r)=>t*r,0)},n.min=function(e){return e.reduce((t,r)=>Math.min(t,r))},n.max=function(e){return e.reduce((t,r)=>Math.max(t,r))}})(ui||(ui={})),function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"}(He||(He={}));const dl=/^[\w\p{L}]$/u;function hl(n,e){if(n){const t=function(r,i=!0){for(;r.container;){const s=r.container;let a=s.content.indexOf(r);for(;a>0;){a--;const o=s.content[a];if(i||!o.hidden)return o}r=s}}(n,!0);if(t&&qs(t,e))return t;if(Ys(n))for(let r=n.content.findIndex(i=>!i.hidden)-1;r>=0;r--){const i=n.content[r];if(qs(i,e))return i}}}function qs(n,e){return zs(n)&&e.includes(n.tokenType.name)}class Xs extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function en(n){throw new Error("Error! The input value was not handled.")}const Zn="AbstractRule",er="AbstractType",fi="Condition",Qs="TypeDefinition",pi="ValueLiteral",tn="AbstractElement";function fl(n){return b.isInstance(n,tn)}const tr="ArrayLiteral",nr="ArrayType",nn="BooleanLiteral",rn="Conjunction",sn="Disjunction",rr="Grammar",mi="GrammarImport",an="InferredType";function Js(n){return b.isInstance(n,an)}const on="Interface";function Zs(n){return b.isInstance(n,on)}const gi="NamedArgument",cn="Negation",ir="NumberLiteral",sr="Parameter",ln="ParameterReference",un="ParserRule";function we(n){return b.isInstance(n,un)}const ar="ReferenceType",or="ReturnType",dn="SimpleType";function pl(n){return b.isInstance(n,dn)}const cr="StringLiteral",$t="TerminalRule";function ot(n){return b.isInstance(n,$t)}const hn="Type";function ea(n){return b.isInstance(n,hn)}const yi="TypeAttribute",lr="UnionType",fn="Action";function ur(n){return b.isInstance(n,fn)}const pn="Alternatives";function ta(n){return b.isInstance(n,pn)}const mn="Assignment";function ct(n){return b.isInstance(n,mn)}const gn="CharacterRange",yn="CrossReference";function Ti(n){return b.isInstance(n,yn)}const Tn="EndOfFile",vn="Group";function vi(n){return b.isInstance(n,vn)}const Rn="Keyword";function lt(n){return b.isInstance(n,Rn)}const En="NegatedToken",An="RegexToken",kn="RuleCall";function ut(n){return b.isInstance(n,kn)}const $n="TerminalAlternatives",xn="TerminalGroup",Sn="TerminalRuleCall",In="UnorderedGroup";function na(n){return b.isInstance(n,In)}const Nn="UntilToken",Cn="Wildcard";class ra extends Ws{getAllTypes(){return[tn,Zn,er,fn,pn,tr,nr,mn,nn,gn,fi,rn,yn,sn,Tn,rr,mi,vn,an,on,Rn,gi,En,cn,ir,sr,ln,un,ar,An,or,kn,dn,cr,$n,xn,$t,Sn,hn,yi,Qs,lr,In,Nn,pi,Cn]}computeIsSubtype(e,t){switch(e){case fn:case pn:case mn:case gn:case yn:case Tn:case vn:case Rn:case En:case An:case kn:case $n:case xn:case Sn:case In:case Nn:case Cn:return this.isSubtype(tn,t);case tr:case ir:case cr:return this.isSubtype(pi,t);case nr:case ar:case dn:case lr:return this.isSubtype(Qs,t);case nn:return this.isSubtype(fi,t)||this.isSubtype(pi,t);case rn:case sn:case cn:case ln:return this.isSubtype(fi,t);case an:case on:case hn:return this.isSubtype(er,t);case un:return this.isSubtype(Zn,t)||this.isSubtype(er,t);case $t:return this.isSubtype(Zn,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 er;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Zn;case"Grammar:usedGrammars":return rr;case"NamedArgument:parameter":case"ParameterReference:parameter":return sr;case"TerminalRuleCall:rule":return $t;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case tn:return{name:tn,properties:[{name:"cardinality"},{name:"lookahead"}]};case tr:return{name:tr,properties:[{name:"elements",defaultValue:[]}]};case nr:return{name:nr,properties:[{name:"elementType"}]};case nn:return{name:nn,properties:[{name:"true",defaultValue:!1}]};case rn:return{name:rn,properties:[{name:"left"},{name:"right"}]};case sn:return{name:sn,properties:[{name:"left"},{name:"right"}]};case rr:return{name:rr,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 mi:return{name:mi,properties:[{name:"path"}]};case an:return{name:an,properties:[{name:"name"}]};case on:return{name:on,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case gi:return{name:gi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case cn:return{name:cn,properties:[{name:"value"}]};case ir:return{name:ir,properties:[{name:"value"}]};case sr:return{name:sr,properties:[{name:"name"}]};case ln:return{name:ln,properties:[{name:"parameter"}]};case un:return{name:un,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 ar:return{name:ar,properties:[{name:"referenceType"}]};case or:return{name:or,properties:[{name:"name"}]};case dn:return{name:dn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case cr:return{name:cr,properties:[{name:"value"}]};case $t:return{name:$t,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case hn:return{name:hn,properties:[{name:"name"},{name:"type"}]};case yi:return{name:yi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case lr:return{name:lr,properties:[{name:"types",defaultValue:[]}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case pn:return{name:pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case mn:return{name:mn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case gn:return{name:gn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case yn:return{name:yn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Tn:return{name:Tn,properties:[{name:"cardinality"},{name:"lookahead"}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Rn:return{name:Rn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case kn:return{name:kn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const b=new ra;function dr(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Je(n){const e=Ri(n).$document;if(!e)throw new Error("AST node has no document.");return e}function Ri(n){for(;n.$container;)n=n.$container;return n}function Ei(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new ne(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ae(s)){if(r.keyIndex++,ia(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=s[r.arrayIndex++];if(ae(a)&&ia(a,t))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return xe})}function wn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new li(n,t=>Ei(t,e))}function xt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new li(n,t=>Ei(t,e),{includeRoot:!0})}function ia(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return!!r&&ul(r,e)}function sa(n){return new ne(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return xe})}function aa(n){return Array.isArray(n)?[...n.map(aa)]:n}function C(n){return n.charCodeAt(0)}function Ai(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Ln(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function St(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function oa(n){return n.type==="Character"}const hr=[];for(let n=C("0");n<=C("9");n++)hr.push(n);const fr=[C("_")].concat(hr);for(let n=C("a");n<=C("z");n++)fr.push(n);for(let n=C("A");n<=C("Z");n++)fr.push(n);const ca=[C(" "),C("\f"),C(`
2
- `),C("\r"),C(" "),C("\v"),C(" "),C("\xA0"),C("\u1680"),C("\u2000"),C("\u2001"),C("\u2002"),C("\u2003"),C("\u2004"),C("\u2005"),C("\u2006"),C("\u2007"),C("\u2008"),C("\u2009"),C("\u200A"),C("\u2028"),C("\u2029"),C("\u202F"),C("\u205F"),C("\u3000"),C("\uFEFF")],ml=/[0-9a-fA-F]/,pr=/[0-9]/,gl=/[1-9]/;class la{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 r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Ln(r,"global");break;case"i":Ln(r,"ignoreCase");break;case"m":Ln(r,"multiLine");break;case"u":Ln(r,"unicode");break;case"y":Ln(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,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"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}St(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const r=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("}")}if(e===!0&&t===void 0)return;St(t)}if(e!==!0||t!==void 0)return St(t)?(this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t):void 0}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()}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),St(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[C(`
3
- `),C("\r"),C("\u2028"),C("\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=hr;break;case"D":e=hr,t=!0;break;case"s":e=ca;break;case"S":e=ca,t=!0;break;case"w":e=fr;break;case"W":e=fr,t=!0}if(St(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=C("\f");break;case"n":e=C(`
4
- `);break;case"r":e=C("\r");break;case"t":e=C(" ");break;case"v":e=C("\v")}if(St(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:C("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:C(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
- `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:C(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,oa(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,oa(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Ai(r.value,e),e.push(C("-")),Ai(i.value,e)}else Ai(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
6
- `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:C("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(gl.test(e)===!1)throw Error("Expecting a positive integer");for(;pr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(pr.test(e)===!1)throw Error("Expecting an integer");for(;pr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
7
- `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:C(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return pr.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
8
- `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
9
- `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let r=0;r<e;r++){const i=this.popChar();if(ml.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 mr{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}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 yl=/\r?\n/gm,Tl=new la,ki=new class extends mr{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(n){this.multiline=!1,this.regex=n,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(n){n.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(n){const e=String.fromCharCode(n.value);if(this.multiline||e!==`
10
- `||(this.multiline=!0),n.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=gr(e);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitSet(n){if(!this.multiline){const e=this.regex.substring(n.loc.begin,n.loc.end),t=new RegExp(e);this.multiline=!!`
11
- `.match(t)}if(n.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const e=this.regex.substring(n.loc.begin,n.loc.end);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitChildren(n){n.type==="Group"&&n.quantifier||super.visitChildren(n)}};function vl(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),ki.reset(n),ki.visit(Tl.pattern(n)),ki.multiline}catch{return!1}}const Rl=`\f
12
- \r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function $i(n){const e=typeof n=="string"?new RegExp(n):n;return Rl.some(t=>e.test(t))}function gr(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function El(n,e){const t=function(i){typeof i=="string"&&(i=new RegExp(i));const s=i,a=i.source;let o=0;function c(){let l,u="";function h(f){u+=a.substr(o,f),o+=f}function d(f){u+="(?:"+a.substr(o,f)+"|$)",o+=f}for(;o<a.length;)switch(a[o]){case"\\":switch(a[o+1]){case"c":d(3);break;case"x":d(4);break;case"u":s.unicode?a[o+2]==="{"?d(a.indexOf("}",o)-o+1):d(6):d(2);break;case"p":case"P":s.unicode?d(a.indexOf("}",o)-o+1):d(2);break;case"k":d(a.indexOf(">",o)-o+1);break;default:d(2)}break;case"[":l=/\[(?:\\.|.)*?\]/g,l.lastIndex=o,l=l.exec(a)||[],d(l[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":h(1);break;case"{":l=/\{\d+,?\d*\}/g,l.lastIndex=o,l=l.exec(a),l?h(l[0].length):d(1);break;case"(":if(a[o+1]==="?")switch(a[o+2]){case":":u+="(?:",o+=3,u+=c()+"|$)";break;case"=":u+="(?=",o+=3,u+=c()+")";break;case"!":l=o,o+=3,c(),u+=a.substr(l,o-l);break;case"<":switch(a[o+3]){case"=":case"!":l=o,o+=4,c(),u+=a.substr(l,o-l);break;default:h(a.indexOf(">",o)-o+1),u+=c()+"|$)"}}else h(1),u+=c()+"|$)";break;case")":return++o,u;default:d(1)}return u}return new RegExp(c(),i.flags)}(n),r=e.match(t);return!!r&&r[0].length>0}function ua(n,e){const t=new Set,r=function(a){return a.rules.find(o=>we(o)&&o.entry)}(n);if(!r)return new Set(n.rules);const i=[r].concat(function(a){return a.rules.filter(o=>ot(o)&&o.hidden)}(n));for(const a of i)da(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||ot(a)&&a.hidden)&&s.add(a);return s}function da(n,e,t){e.add(n.name),wn(n).forEach(r=>{if(ut(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&da(i,e,t)}})}function Al(n){return n.hidden&&!$i(Ni(n))}function ha(n,e,t){if(!n||!e)return;const r=xi(n,e,n.astNode,!0);return r.length!==0?r[t=t!==void 0?Math.max(0,Math.min(t,r.length-1)):0]:void 0}function xi(n,e,t,r){if(!r){const i=dr(n.grammarSource,ct);if(i&&i.feature===e)return[n]}return Zt(n)&&n.astNode===t?n.content.flatMap(i=>xi(i,e,t,!1)):[]}function kl(n,e,t){if(!n)return;const r=function(i,s,a){if(i.astNode!==a)return[];if(lt(i.grammarSource)&&i.grammarSource.value===s)return[i];const o=di(i).iterator();let c;const l=[];do if(c=o.next(),!c.done){const u=c.value;u.astNode===a?lt(u.grammarSource)&&u.grammarSource.value===s&&l.push(u):o.prune()}while(!c.done);return l}(n,e,n==null?void 0:n.astNode);return r.length!==0?r[t=t!==void 0?Math.max(0,Math.min(t,r.length-1)):0]:void 0}function fa(n){let e=n;return Js(e)&&(ur(e.$container)?e=e.$container.$container:we(e.$container)?e=e.$container:en(e.$container)),pa(n,e,new Map)}function pa(n,e,t){var r;function i(s,a){let o;return dr(s,ct)||(o=pa(a,a,t)),t.set(n,o),o}if(t.has(n))return t.get(n);t.set(n,void 0);for(const s of wn(e)){if(ct(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(ut(s)&&we(s.rule.ref))return i(s,s.rule.ref);if(pl(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function ma(n){return ga(n,new Set)}function ga(n,e){if(e.has(n))return!0;e.add(n);for(const t of wn(n))if(ut(t)){if(!t.rule.ref||we(t.rule.ref)&&!ga(t.rule.ref,e))return!1}else if(ct(t)||ur(t))return!1;return!!n.definition}function Si(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e&&(we(e)||Zs(e)||ea(e)))return e.name}}function Ii(n){var e,t;if(we(n))return ma(n)?n.name:(e=Si(n))!==null&&e!==void 0?e:n.name;if(Zs(n)||ea(n)||(t=n,b.isInstance(t,or)))return n.name;if(ur(n)){const r=function(i){var s;if(i.inferredType)return i.inferredType.name;if(!((s=i.type)===null||s===void 0)&&s.ref)return Ii(i.type.ref)}(n);if(r)return r}else if(Js(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Ni(n){const e={s:!1,i:!1,u:!1},t=It(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Ci=/[\s\S]/.source;function It(n,e){if(s=n,b.isInstance(s,$n))return We((i=n).elements.map(a=>It(a)).join("|"),{cardinality:i.cardinality,lookahead:i.lookahead});if(function(a){return b.isInstance(a,xn)}(n))return We((r=n).elements.map(a=>It(a)).join(""),{cardinality:r.cardinality,lookahead:r.lookahead});if(function(a){return b.isInstance(a,gn)}(n))return function(a){return a.right?We(`[${wi(a.left)}-${wi(a.right)}]`,{cardinality:a.cardinality,lookahead:a.lookahead,wrap:!1}):We(wi(a.left),{cardinality:a.cardinality,lookahead:a.lookahead,wrap:!1})}(n);if(function(a){return b.isInstance(a,Sn)}(n)){const a=n.rule.ref;if(!a)throw new Error("Missing rule reference.");return We(It(a.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}if(function(a){return b.isInstance(a,En)}(n))return function(a){return We(`(?!${It(a.terminal)})${Ci}*?`,{cardinality:a.cardinality,lookahead:a.lookahead})}(n);if(function(a){return b.isInstance(a,Nn)}(n))return We(`${Ci}*?${It((t=n).terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead});if(function(a){return b.isInstance(a,An)}(n)){const a=n.regex.lastIndexOf("/"),o=n.regex.substring(1,a),c=n.regex.substring(a+1);return e&&(e.i=c.includes("i"),e.s=c.includes("s"),e.u=c.includes("u")),We(o,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}if(function(a){return b.isInstance(a,Cn)}(n))return We(Ci,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n==null?void 0:n.$type}`);var t,r,i,s}function wi(n){return gr(n.value)}function We(n,e){var t;return(e.wrap!==!1||e.lookahead)&&(n=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${n})`),e.cardinality?`${n}${e.cardinality}`:n}function Li(n){console&&console.error&&console.error(`Error: ${n}`)}function ya(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function Ta(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function va(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function $l(n){return pe((e=n).LABEL)&&e.LABEL!==""?n.LABEL:n.name;var e}class Ge{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),I(this.definition,t=>{t.accept(e)})}}class de extends Ge{constructor(e){super([]),this.idx=1,ke(this,Pe(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Nt extends Ge{constructor(e){super(e.definition),this.orgText="",ke(this,Pe(e,t=>t!==void 0))}}class me extends Ge{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,Pe(e,t=>t!==void 0))}}let te=class extends Ge{constructor(n){super(n.definition),this.idx=1,ke(this,Pe(n,e=>e!==void 0))}};class Se extends Ge{constructor(e){super(e.definition),this.idx=1,ke(this,Pe(e,t=>t!==void 0))}}class Ie extends Ge{constructor(e){super(e.definition),this.idx=1,ke(this,Pe(e,t=>t!==void 0))}}class V extends Ge{constructor(e){super(e.definition),this.idx=1,ke(this,Pe(e,t=>t!==void 0))}}class ge extends Ge{constructor(e){super(e.definition),this.idx=1,ke(this,Pe(e,t=>t!==void 0))}}class ye extends Ge{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,Pe(e,t=>t!==void 0))}}class D{constructor(e){this.idx=1,ke(this,Pe(e,t=>t!==void 0))}accept(e){e.visit(this)}}function yr(n){function e(t){return x(t,yr)}if(n instanceof de){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return pe(n.label)&&(t.label=n.label),t}if(n instanceof me)return{type:"Alternative",definition:e(n.definition)};if(n instanceof te)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Se)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof Ie)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:yr(new D({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ge)return{type:"RepetitionWithSeparator",idx:n.idx,separator:yr(new D({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof V)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof ye)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof D){const t={type:"Terminal",name:n.terminalType.name,label:$l(n.terminalType),idx:n.idx};pe(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=je(r)?r.source:r),t}if(n instanceof Nt)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}class Ct{visit(e){const t=e;switch(t.constructor){case de:return this.visitNonTerminal(t);case me:return this.visitAlternative(t);case te:return this.visitOption(t);case Se:return this.visitRepetitionMandatory(t);case Ie:return this.visitRepetitionMandatoryWithSeparator(t);case ge:return this.visitRepetitionWithSeparator(t);case V:return this.visitRepetition(t);case ye:return this.visitAlternation(t);case D:return this.visitTerminal(t);case Nt: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 Tr(n,e=[]){return n instanceof te||n instanceof V||n instanceof ge||(n instanceof ye?Hs(n.definition,t=>Tr(t,e)):!(n instanceof de&&ue(e,n))&&n instanceof Ge&&(n instanceof de&&e.push(n),_e(n.definition,t=>Tr(t,e))))}function Fe(n){if(n instanceof de)return"SUBRULE";if(n instanceof te)return"OPTION";if(n instanceof ye)return"OR";if(n instanceof Se)return"AT_LEAST_ONE";if(n instanceof Ie)return"AT_LEAST_ONE_SEP";if(n instanceof ge)return"MANY_SEP";if(n instanceof V)return"MANY";if(n instanceof D)return"CONSUME";throw Error("non exhaustive match")}class vr{walk(e,t=[]){I(e.definition,(r,i)=>{const s=Z(e.definition,i+1);if(r instanceof de)this.walkProdRef(r,s,t);else if(r instanceof D)this.walkTerminal(r,s,t);else if(r instanceof me)this.walkFlat(r,s,t);else if(r instanceof te)this.walkOption(r,s,t);else if(r instanceof Se)this.walkAtLeastOne(r,s,t);else if(r instanceof Ie)this.walkAtLeastOneSep(r,s,t);else if(r instanceof ge)this.walkManySep(r,s,t);else if(r instanceof V)this.walkMany(r,s,t);else{if(!(r instanceof ye))throw Error("non exhaustive match");this.walkOr(r,s,t)}})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){const i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){const i=[new te({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=Ra(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new te({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=Ra(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);I(e.definition,s=>{const a=new me({definition:[s]});this.walk(a,i)})}}function Ra(n,e,t){return[new te({definition:[new D({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function On(n){if(n instanceof de)return On(n.referencedRule);if(n instanceof D)return[n.terminalType];if(function(e){return e instanceof me||e instanceof te||e instanceof V||e instanceof Se||e instanceof Ie||e instanceof ge||e instanceof D||e instanceof Nt}(n))return function(e){let t=[];const r=e.definition;let i,s=0,a=r.length>s,o=!0;for(;a&&o;)i=r[s],o=Tr(i),t=t.concat(On(i)),s+=1,a=r.length>s;return ci(t)}(n);if(function(e){return e instanceof ye}(n))return function(e){const t=x(e.definition,r=>On(r));return ci(Ce(t))}(n);throw Error("non exhaustive match")}const Ea="_~IN~_";class xl extends vr{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const i=(s=e.referencedRule,a=e.idx,s.name+a+Ea+this.topProd.name);var s,a;const o=t.concat(r),c=On(new me({definition:o}));this.follows[i]=c}}let Rr={};const Sl=new la;function Er(n){const e=n.toString();if(Rr.hasOwnProperty(e))return Rr[e];{const t=Sl.pattern(e);return Rr[e]=t,t}}const Aa="Complement Sets are not supported for first char optimization",Ar=`Unable to use "first char" lexer optimizations:
13
- `;function Il(n,e=!1){try{const t=Er(n);return Oi(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Aa)e&&ya(`${Ar} Unable to optimize: < ${n.toString()} >
14
- Complement Sets cannot be automatically optimized.
15
- This will disable the lexer's first char optimizations.
16
- See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
17
- This will disable the lexer's first char optimizations.
18
- See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Li(`${Ar}
19
- Failed parsing: < ${n.toString()} >
20
- Using the @chevrotain/regexp-to-ast library
21
- Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Oi(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)Oi(n.value[i],e,t);break;case"Alternative":const r=n.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":kr(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(Aa);I(a.value,c=>{if(typeof c=="number")kr(c,e,t);else{const l=c;if(t===!0)for(let u=l.from;u<=l.to;u++)kr(u,e,t);else{for(let u=l.from;u<=l.to&&u<bn;u++)kr(u,e,t);if(l.to>=bn){const u=l.from>=bn?l.from:bn,h=l.to,d=Ze(u),f=Ze(h);for(let p=d;p<=f;p++)e[p]=p}}}});break;case"Group":Oi(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"&&_i(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return Y(e)}function kr(n,e,t){const r=Ze(n);e[r]=r,t===!0&&function(i,s){const a=String.fromCharCode(i),o=a.toUpperCase();if(o!==a){const c=Ze(o.charCodeAt(0));s[c]=c}else{const c=a.toLowerCase();if(c!==a){const l=Ze(c.charCodeAt(0));s[l]=l}}}(n,e)}function ka(n,e){return At(n.value,t=>{if(typeof t=="number")return ue(e,t);{const r=t;return At(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function _i(n){const e=n.quantifier;return!(!e||e.atLeast!==0)||!!n.value&&(se(n.value)?_e(n.value,_i):_i(n.value))}class Nl extends mr{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){ue(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?ka(e,this.targetCharCodes)===void 0&&(this.found=!0):ka(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function bi(n,e){if(e instanceof RegExp){const t=Er(e),r=new Nl(n);return r.visit(t),r.found}return At(e,t=>ue(n,t.charCodeAt(0)))!==void 0}const dt="PATTERN",_n="defaultMode",Pi="modes";let $a=typeof new RegExp("(?:)").sticky=="boolean";function Cl(n,e){const t=(e=oi(e,{useSticky:$a,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
- `],tracer:(y,T)=>T()})).tracer;let r;t("initCharCodeToOptimizedIndexMap",()=>{(function(){if(M($r)){$r=new Array(65536);for(let y=0;y<65536;y++)$r[y]=y>255?255+~~(y/255):y}})()}),t("Reject Lexer.NA",()=>{r=qn(n,y=>y[dt]===Te.NA)});let i,s,a,o,c,l,u,h,d,f,p,m=!1;t("Transform Patterns",()=>{m=!1,i=x(r,y=>{const T=y[dt];if(je(T)){const $=T.source;return $.length!==1||$==="^"||$==="$"||$==="."||T.ignoreCase?$.length!==2||$[0]!=="\\"||ue(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],$[1])?e.useSticky?Sa(T):xa(T):$[1]:$}if(at(T))return m=!0,{exec:T};if(typeof T=="object")return m=!0,T;if(typeof T=="string"){if(T.length===1)return T;{const $=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),_=new RegExp($);return e.useSticky?Sa(_):xa(_)}}throw Error("non exhaustive match")})}),t("misc mapping",()=>{s=x(r,y=>y.tokenTypeIdx),a=x(r,y=>{const T=y.GROUP;if(T!==Te.SKIPPED){if(pe(T))return T;if(Ve(T))return!1;throw Error("non exhaustive match")}}),o=x(r,y=>{const T=y.LONGER_ALT;if(T)return se(T)?x(T,$=>Vs(r,$)):[Vs(r,T)]}),c=x(r,y=>y.PUSH_MODE),l=x(r,y=>N(y,"POP_MODE"))}),t("Line Terminator Handling",()=>{const y=Ca(e.lineTerminatorCharacters);u=x(r,T=>!1),e.positionTracking!=="onlyOffset"&&(u=x(r,T=>N(T,"LINE_BREAKS")?!!T.LINE_BREAKS:Na(T,y)===!1&&bi(y,T.PATTERN)))}),t("Misc Mapping #2",()=>{h=x(r,Ia),d=x(i,bl),f=le(r,(y,T)=>{const $=T.GROUP;return pe($)&&$!==Te.SKIPPED&&(y[$]=[]),y},{}),p=x(i,(y,T)=>({pattern:i[T],longerAlt:o[T],canLineTerminator:u[T],isCustom:h[T],short:d[T],group:a[T],push:c[T],pop:l[T],tokenTypeIdx:s[T],tokenType:r[T]}))});let g=!0,v=[];return e.safeMode||t("First Char Optimization",()=>{v=le(r,(y,T,$)=>{if(typeof T.PATTERN=="string"){const _=Ze(T.PATTERN.charCodeAt(0));Mi(y,_,p[$])}else if(se(T.START_CHARS_HINT)){let _;I(T.START_CHARS_HINT,P=>{const U=Ze(typeof P=="string"?P.charCodeAt(0):P);_!==U&&(_=U,Mi(y,U,p[$]))})}else if(je(T.PATTERN))if(T.PATTERN.unicode)g=!1,e.ensureOptimizations&&Li(`${Ar} Unable to analyze < ${T.PATTERN.toString()} > pattern.
23
- The regexp unicode flag is not currently supported by the regexp-to-ast library.
24
- This will disable the lexer's first char optimizations.
25
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const _=Il(T.PATTERN,e.ensureOptimizations);M(_)&&(g=!1),I(_,P=>{Mi(y,P,p[$])})}else e.ensureOptimizations&&Li(`${Ar} TokenType: <${T.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
26
- This will disable the lexer's first char optimizations.
27
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return y},[])}),{emptyGroups:f,patternIdxToConfig:p,charCodeToPatternIdxToConfig:v,hasCustom:m,canBeOptimized:g}}function wl(n,e){let t=[];const r=function(a){const o=Ae(a,u=>!N(u,dt)),c=x(o,u=>({message:"Token Type: ->"+u.name+"<- missing static 'PATTERN' property",type:j.MISSING_PATTERN,tokenTypes:[u]})),l=Yn(a,o);return{errors:c,valid:l}}(n);t=t.concat(r.errors);const i=function(a){const o=Ae(a,u=>{const h=u[dt];return!(je(h)||at(h)||N(h,"exec")||pe(h))}),c=x(o,u=>({message:"Token Type: ->"+u.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:j.INVALID_PATTERN,tokenTypes:[u]})),l=Yn(a,o);return{errors:c,valid:l}}(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(function(a){let o=[];const c=Ae(a,l=>je(l[dt]));return o=o.concat(function(l){class u extends mr{constructor(){super(...arguments),this.found=!1}visitEndAnchor(p){this.found=!0}}const h=Ae(l,f=>{const p=f.PATTERN;try{const m=Er(p),g=new u;return g.visit(m),g.found}catch{return Ll.test(p.source)}});return x(h,f=>({message:`Unexpected RegExp Anchor Error:
28
- Token Type: ->`+f.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
- See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:j.EOI_ANCHOR_FOUND,tokenTypes:[f]}))}(c)),o=o.concat(function(l){class u extends mr{constructor(){super(...arguments),this.found=!1}visitStartAnchor(p){this.found=!0}}const h=Ae(l,f=>{const p=f.PATTERN;try{const m=Er(p),g=new u;return g.visit(m),g.found}catch{return Ol.test(p.source)}});return x(h,f=>({message:`Unexpected RegExp Anchor Error:
30
- Token Type: ->`+f.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
- See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:j.SOI_ANCHOR_FOUND,tokenTypes:[f]}))}(c)),o=o.concat(function(l){const u=Ae(l,d=>{const f=d[dt];return f instanceof RegExp&&(f.multiline||f.global)});return x(u,d=>({message:"Token Type: ->"+d.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:j.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[d]}))}(c)),o=o.concat(function(l){const u=[];let h=x(l,p=>le(l,(m,g)=>(p.PATTERN.source!==g.PATTERN.source||ue(u,g)||g.PATTERN===Te.NA||(u.push(g),m.push(g)),m),[]));h=Qt(h);const d=Ae(h,p=>p.length>1);return x(d,p=>{const m=x(p,g=>g.name);return{message:`The same RegExp pattern ->${be(p).PATTERN}<-has been used in all of the following Token Types: ${m.join(", ")} <-`,type:j.DUPLICATE_PATTERNS_FOUND,tokenTypes:p}})}(c)),o=o.concat(function(l){const u=Ae(l,d=>d.PATTERN.test(""));return x(u,d=>({message:"Token Type: ->"+d.name+"<- static 'PATTERN' must not match an empty string",type:j.EMPTY_MATCH_PATTERN,tokenTypes:[d]}))}(c)),o}(s)),t=t.concat(function(a){const o=Ae(a,l=>{if(!N(l,"GROUP"))return!1;const u=l.GROUP;return u!==Te.SKIPPED&&u!==Te.NA&&!pe(u)});return x(o,l=>({message:"Token Type: ->"+l.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:j.INVALID_GROUP_TYPE_FOUND,tokenTypes:[l]}))}(s)),t=t.concat(function(a,o){const c=Ae(a,u=>u.PUSH_MODE!==void 0&&!ue(o,u.PUSH_MODE));return x(c,u=>({message:`Token Type: ->${u.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${u.PUSH_MODE}<-which does not exist`,type:j.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[u]}))}(s,e)),t=t.concat(function(a){const o=[],c=le(a,(l,u,h)=>{const d=u.PATTERN;return d===Te.NA||(pe(d)?l.push({str:d,idx:h,tokenType:u}):je(d)&&(f=d,At([".","\\","[","]","|","^","$","(",")","?","*","+","{"],p=>f.source.indexOf(p)!==-1)===void 0)&&l.push({str:d.source,idx:h,tokenType:u})),l;var f},[]);return I(a,(l,u)=>{I(c,({str:h,idx:d,tokenType:f})=>{if(u<d&&function(p,m){if(je(m)){const g=m.exec(p);return g!==null&&g.index===0}if(at(m))return m(p,0,[],{});if(N(m,"exec"))return m.exec(p,0,[],{});if(typeof m=="string")return m===p;throw Error("non exhaustive match")}(h,l.PATTERN)){const p=`Token: ->${f.name}<- can never be matched.
32
- Because it appears AFTER the Token Type ->${l.name}<-in the lexer's definition.
33
- See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;o.push({message:p,type:j.UNREACHABLE_PATTERN,tokenTypes:[l,f]})}})}),o}(s)),t}const Ll=/[^\\][$]/,Ol=/[^\\[][\^]|^\^/;function xa(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function Sa(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function _l(n,e,t){const r=[];let i=!1;const s=qn(Qt(Ce(Y(n.modes))),o=>o[dt]===Te.NA),a=Ca(t);return e&&I(s,o=>{const c=Na(o,a);if(c!==!1){const l=function(h,d){if(d.issue===j.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
34
- The problem is in the <${h.name}> Token Type
35
- Root cause: ${d.errMsg}.
36
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(d.issue===j.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
37
- The problem is in the <${h.name}> Token Type
38
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(o,c),u={message:l,type:c.issue,tokenType:o};r.push(u)}else N(o,"LINE_BREAKS")?o.LINE_BREAKS===!0&&(i=!0):bi(a,o.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
39
- This Lexer has been defined to track line and column information,
40
- But none of the Token Types can be identified as matching a line terminator.
41
- See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
42
- for details.`,type:j.NO_LINE_BREAKS_FLAGS}),r}function Ia(n){const e=n.PATTERN;if(je(e))return!1;if(at(e)||N(e,"exec"))return!0;if(pe(e))return!1;throw Error("non exhaustive match")}function bl(n){return!(!pe(n)||n.length!==1)&&n.charCodeAt(0)}const Pl={test:function(n){const e=n.length;for(let t=this.lastIndex;t<e;t++){const r=n.charCodeAt(t);if(r===10)return this.lastIndex=t+1,!0;if(r===13)return n.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function Na(n,e){if(N(n,"LINE_BREAKS"))return!1;if(je(n.PATTERN)){try{bi(e,n.PATTERN)}catch(t){return{issue:j.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}if(pe(n.PATTERN))return!1;if(Ia(n))return{issue:j.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function Ca(n){return x(n,e=>pe(e)?e.charCodeAt(0):e)}function Mi(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const bn=256;let $r=[];function Ze(n){return n<bn?n:$r[n]}function Pn(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx||e.isParent===!0&&e.categoryMatchesMap[t]===!0}function xr(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let wa=1;const La={};function Mn(n){const e=function(t){let r=J(t),i=t,s=!0;for(;s;){i=Qt(Ce(x(i,o=>o.CATEGORIES)));const a=Yn(i,r);r=r.concat(a),M(a)?s=!1:i=a}return r}(n);(function(t){I(t,r=>{_a(r)||(La[wa]=r,r.tokenTypeIdx=wa++),ba(r)&&!se(r.CATEGORIES)&&(r.CATEGORIES=[r.CATEGORIES]),ba(r)||(r.CATEGORIES=[]),N(r,"categoryMatches")||(r.categoryMatches=[]),function(i){return N(i,"categoryMatchesMap")}(r)||(r.categoryMatchesMap={})})})(e),function(t){I(t,r=>{Oa([],r)})}(e),function(t){I(t,r=>{r.categoryMatches=[],I(r.categoryMatchesMap,(i,s)=>{r.categoryMatches.push(La[s].tokenTypeIdx)})})}(e),I(e,t=>{t.isParent=t.categoryMatches.length>0})}function Oa(n,e){I(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),I(e.CATEGORIES,t=>{const r=n.concat(e);ue(r,t)||Oa(r,t)})}function _a(n){return N(n,"tokenTypeIdx")}function ba(n){return N(n,"CATEGORIES")}function Ml(n){return N(n,"tokenTypeIdx")}const Di={buildUnableToPopLexerModeMessage:n=>`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(n,e,t,r,i)=>`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`};var j;(function(n){n[n.MISSING_PATTERN=0]="MISSING_PATTERN",n[n.INVALID_PATTERN=1]="INVALID_PATTERN",n[n.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",n[n.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",n[n.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",n[n.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",n[n.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",n[n.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",n[n.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",n[n.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",n[n.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",n[n.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",n[n.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",n[n.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",n[n.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",n[n.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",n[n.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",n[n.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(j||(j={}));const Dn={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
43
- `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Di,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Dn);class Te{constructor(e,t=Dn){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:c}=Ta(s),l=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&l(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,c}return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
44
- a boolean 2nd argument is no longer supported`);this.config=ke({},Dn,t);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Dn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=Pl;else if(this.config.lineTerminatorCharacters===Dn.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
45
- 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),se(e)?i={modes:{defaultMode:J(e)},defaultMode:_n}:(s=!1,i=J(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(o){const c=[];return N(o,_n)||c.push({message:"A MultiMode Lexer cannot be initialized without a <"+_n+`> property in its definition
46
- `,type:j.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),N(o,Pi)||c.push({message:`A MultiMode Lexer cannot be initialized without a <modes> property in its definition
47
- `,type:j.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),N(o,Pi)&&N(o,_n)&&!N(o.modes,o.defaultMode)&&c.push({message:`A MultiMode Lexer cannot be initialized with a ${_n}: <${o.defaultMode}>which does not exist
48
- `,type:j.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),N(o,Pi)&&I(o.modes,(l,u)=>{I(l,(h,d)=>{if(Ve(h))c.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${u}> at index: <${d}>
49
- `,type:j.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(N(h,"LONGER_ALT")){const f=se(h.LONGER_ALT)?h.LONGER_ALT:[h.LONGER_ALT];I(f,p=>{Ve(p)||ue(l,p)||c.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${p.name}> on token <${h.name}> outside of mode <${u}>
50
- `,type:j.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),c}(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(_l(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},I(i.modes,(o,c)=>{i.modes[c]=qn(o,l=>Ve(l))});const a=Rt(i.modes);if(I(i.modes,(o,c)=>{this.TRACE_INIT(`Mode: <${c}> processing`,()=>{if(this.modes.push(c),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(wl(o,a))}),M(this.lexerDefinitionErrors)){let l;Mn(o),this.TRACE_INIT("analyzeTokenTypes",()=>{l=Cl(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[c]=l.patternIdxToConfig,this.charCodeToPatternIdxToConfig[c]=l.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,l.emptyGroups),this.hasCustom=l.hasCustom||this.hasCustom,this.canModeBeOptimized[c]=l.canBeOptimized}})}),this.defaultMode=i.defaultMode,!M(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const o=x(this.lexerDefinitionErrors,c=>c.message).join(`-----------------------
51
- `);throw new Error(`Errors detected in definition of Lexer:
52
- `+o)}I(this.lexerDefinitionWarning,o=>{ya(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if($a?(this.chopInput=Gs,this.match=this.matchWithTest):(this.updateLastIndex=q,this.match=this.matchWithExec),s&&(this.handleModes=q),this.trackStartLines===!1&&(this.computeNewColumn=Gs),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))throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}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,(c,l,u)=>(l===!1&&c.push(u),c),[]);if(t.ensureOptimizations&&!M(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
53
- Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
54
- Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Rr={}}),this.TRACE_INIT("toFastProperties",()=>{va(this)})})}tokenize(e,t=this.defaultMode){if(!M(this.lexerDefinitionErrors)){const r=x(this.lexerDefinitionErrors,i=>i.message).join(`-----------------------
55
- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
- `+r)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,c,l,u,h,d,f,p,m,g,v;const y=e,T=y.length;let $=0,_=0;const P=this.hasCustom?0:Math.floor(e.length/10),U=new Array(P),Q=[];let re=this.trackStartLines?1:void 0,fe=this.trackStartLines?1:void 0;const E=function(W){const oe={},Xe=Rt(W);return I(Xe,ce=>{const Oe=W[ce];if(!se(Oe))throw Error("non exhaustive match");oe[ce]=[]}),oe}(this.emptyGroups),R=this.trackStartLines,A=this.config.lineTerminatorsPattern;let S=0,O=[],L=[];const w=[],Re=[];let ie;function K(){return O}function it(W){const oe=Ze(W),Xe=L[oe];return Xe===void 0?Re:Xe}Object.freeze(Re);const Lc=W=>{if(w.length===1&&W.tokenType.PUSH_MODE===void 0){const oe=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(W);Q.push({offset:W.startOffset,line:W.startLine,column:W.startColumn,length:W.image.length,message:oe})}else{w.pop();const oe=kt(w);O=this.patternIdxToConfig[oe],L=this.charCodeToPatternIdxToConfig[oe],S=O.length;const Xe=this.canModeBeOptimized[oe]&&this.config.safeMode===!1;ie=L&&Xe?it:K}};function Cs(W){w.push(W),L=this.charCodeToPatternIdxToConfig[W],O=this.patternIdxToConfig[W],S=O.length,S=O.length;const oe=this.canModeBeOptimized[W]&&this.config.safeMode===!1;ie=L&&oe?it:K}let Le;Cs.call(this,t);const ws=this.config.recoveryEnabled;for(;$<T;){c=null;const W=y.charCodeAt($),oe=ie(W),Xe=oe.length;for(r=0;r<Xe;r++){Le=oe[r];const ce=Le.pattern;l=null;const Oe=Le.short;if(Oe!==!1?W===Oe&&(c=ce):Le.isCustom===!0?(v=ce.exec(y,$,U,E),v!==null?(c=v[0],v.payload!==void 0&&(l=v.payload)):c=null):(this.updateLastIndex(ce,$),c=this.match(ce,e,$)),c!==null){if(o=Le.longerAlt,o!==void 0){const Be=o.length;for(s=0;s<Be;s++){const Ke=O[o[s]],st=Ke.pattern;if(u=null,Ke.isCustom===!0?(v=st.exec(y,$,U,E),v!==null?(a=v[0],v.payload!==void 0&&(u=v.payload)):a=null):(this.updateLastIndex(st,$),a=this.match(st,e,$)),a&&a.length>c.length){c=a,l=u,Le=Ke;break}}}break}}if(c!==null){if(h=c.length,d=Le.group,d!==void 0&&(f=Le.tokenTypeIdx,p=this.createTokenInstance(c,$,f,Le.tokenType,re,fe,h),this.handlePayload(p,l),d===!1?_=this.addToken(U,_,p):E[d].push(p)),e=this.chopInput(e,h),$+=h,fe=this.computeNewColumn(fe,h),R===!0&&Le.canLineTerminator===!0){let ce,Oe,Be=0;A.lastIndex=0;do ce=A.test(c),ce===!0&&(Oe=A.lastIndex-1,Be++);while(ce===!0);Be!==0&&(re+=Be,fe=h-Oe,this.updateTokenEndLineColumnLocation(p,d,Oe,Be,re,fe,h))}this.handleModes(Le,Lc,Cs,p)}else{const ce=$,Oe=re,Be=fe;let Ke=ws===!1;for(;Ke===!1&&$<T;)for(e=this.chopInput(e,1),$++,i=0;i<S;i++){const st=O[i],si=st.pattern,Ls=st.short;if(Ls!==!1?y.charCodeAt($)===Ls&&(Ke=!0):st.isCustom===!0?Ke=si.exec(y,$,U,E)!==null:(this.updateLastIndex(si,$),Ke=si.exec(e)!==null),Ke===!0)break}if(m=$-ce,fe=this.computeNewColumn(fe,m),g=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(y,ce,m,Oe,Be),Q.push({offset:ce,line:Oe,column:Be,length:m,message:g}),ws===!1)break}}return this.hasCustom||(U.length=_),{tokens:U,groups:E,errors:Q}}handleModes(e,t,r,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,i,s,a,o){let c,l;t!==void 0&&(c=r===o-1,l=c?-1:0,i===1&&c===!0||(e.endLine=s+l,e.endColumn=a-1-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,i){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,t,r,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:r,tokenType:i}}createFullToken(e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,r){return e.test(t)===!0?t.substring(r,e.lastIndex):null}matchWithExec(e,t){const r=e.exec(t);return r!==null?r[0]:null}}function wt(n){return Pa(n)?n.LABEL:n.name}function Pa(n){return pe(n.LABEL)&&n.LABEL!==""}Te.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.",Te.NA=/NOT_APPLICABLE/;const Dl="parent",Ma="categories",Da="label",Ua="group",Ga="push_mode",Fa="pop_mode",Ba="longer_alt",Ka="line_breaks",Va="start_chars_hint";function ja(n){return function(e){const t=e.pattern,r={};if(r.name=e.name,Ve(t)||(r.PATTERN=t),N(e,Dl))throw`The parent property is no longer supported.
57
- See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return N(e,Ma)&&(r.CATEGORIES=e[Ma]),Mn([r]),N(e,Da)&&(r.LABEL=e[Da]),N(e,Ua)&&(r.GROUP=e[Ua]),N(e,Fa)&&(r.POP_MODE=e[Fa]),N(e,Ga)&&(r.PUSH_MODE=e[Ga]),N(e,Ba)&&(r.LONGER_ALT=e[Ba]),N(e,Ka)&&(r.LINE_BREAKS=e[Ka]),N(e,Va)&&(r.START_CHARS_HINT=e[Va]),r}(n)}const et=ja({name:"EOF",pattern:Te.NA});function Ui(n,e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:n.tokenTypeIdx,tokenType:n}}function Ha(n,e){return Pn(n,e)}Mn([et]);const Lt={buildMismatchTokenMessage:({expected:n,actual:e,previous:t,ruleName:r})=>`Expecting ${Pa(n)?`--> ${wt(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:n,ruleName:e})=>"Redundant input, expecting EOF but found: "+n.image,buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",a=`
58
- but found: '`+be(e).image+"'";if(r)return s+r+a;{const o=le(n,(l,u)=>l.concat(u),[]),c=x(o,l=>`[${x(l,u=>wt(u)).join(", ")}]`);return s+`one of these possible Token sequences:
59
- ${x(c,(l,u)=>` ${u+1}. ${l}`).join(`
60
- `)}`+a}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",s=`
61
- but found: '`+be(e).image+"'";return t?i+t+s:i+`expecting at least one iteration which starts with one of these possible Token sequences::
62
- <${x(n,a=>`[${x(a,o=>wt(o)).join(",")}]`).join(" ,")}>`+s}};Object.freeze(Lt);const Ul={buildRuleNotFoundError:(n,e)=>"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
- inside top level rule: ->`+n.name+"<-"},ht={buildDuplicateFoundError(n,e){const t=n.name,r=be(e),i=r.idx,s=Fe(r),a=(o=r)instanceof D?o.terminalType.name:o instanceof de?o.nonTerminalName:"";var o;let c=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}
64
- appears more than once (${e.length} times) in the top level rule: ->${t}<-.
65
- For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
66
- `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
67
- `),c},buildNamespaceConflictError:n=>`Namespace conflict found in grammar.
68
- The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${n.name}>.
69
- To resolve this make sure each Terminal and Non-Terminal names are unique
70
- This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
71
- and Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(n){const e=x(n.prefixPath,r=>wt(r)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix
72
- in <OR${t}> inside <${n.topLevelRule.name}> Rule,
73
- <${e}> may appears as a prefix path in all these alternatives.
74
- See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
75
- For Further details.`},buildAlternationAmbiguityError(n){const e=x(n.prefixPath,i=>wt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(" ,")}> in <OR${t}> inside <${n.topLevelRule.name}> Rule,
76
- <${e}> may appears as a prefix path in all these alternatives.
77
- `;return r+=`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
78
- For Further details.`,r},buildEmptyRepetitionError(n){let e=Fe(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens.
79
- This could lead to an infinite loop.`},buildTokenNameError:n=>"deprecated",buildEmptyAlternationError:n=>`Ambiguous empty alternative: <${n.emptyChoiceIdx+1}> in <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
80
- Only the last alternative may be an empty alternative.`,buildTooManyAlternativesError:n=>`An Alternation cannot have more than 256 alternatives:
81
- <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
82
- has ${n.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(n){const e=n.topLevelRule.name;return`Left Recursion found in grammar.
83
- rule: <${e}> can be invoked from itself (directly or indirectly)
84
- without consuming any Tokens. The grammar path that causes this is:
85
- ${`${e} --> ${x(n.leftRecursionPath,t=>t.name).concat([e]).join(" --> ")}`}
86
- To fix this refactor your grammar to remove the left recursion.
87
- see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:n=>"deprecated",buildDuplicateRuleNameError(n){let e;return e=n.topLevelRule instanceof Nt?n.topLevelRule.name:n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};class Gl extends Ct{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){I(Y(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:he.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Fl extends vr{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=J(this.path.ruleStack).reverse(),this.occurrenceStack=J(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,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){M(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Bl extends Fl{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,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(r),s=new me({definition:i});this.possibleTokTypes=On(s),this.found=!0}}}class Sr extends vr{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 Kl extends Sr{walkMany(e,t,r){if(e.idx===this.occurrence){const i=be(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof D&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class Wa extends Sr{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=be(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof D&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class Vl extends Sr{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=be(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof D&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class za extends Sr{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=be(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof D&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function Gi(n,e,t=[]){t=J(t);let r=[],i=0;function s(a){const o=Gi(a.concat(Z(n,i+1)),e,t);return r.concat(o)}for(;t.length<e&&i<n.length;){const a=n[i];if(a instanceof me||a instanceof de)return s(a.definition);if(a instanceof te)r=s(a.definition);else{if(a instanceof Se)return s(a.definition.concat([new V({definition:a.definition})]));if(a instanceof Ie)return s([new me({definition:a.definition}),new V({definition:[new D({terminalType:a.separator})].concat(a.definition)})]);if(a instanceof ge){const o=a.definition.concat([new V({definition:[new D({terminalType:a.separator})].concat(a.definition)})]);r=s(o)}else if(a instanceof V){const o=a.definition.concat([new V({definition:a.definition})]);r=s(o)}else{if(a instanceof ye)return I(a.definition,o=>{M(o.definition)===!1&&(r=s(o.definition))}),r;if(!(a instanceof D))throw Error("non exhaustive match");t.push(a.terminalType)}}i++}return r.push({partialPath:t,suffixDef:Z(n,i)}),r}function Ya(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const c=e.length,l=c-r-1,u=[],h=[];for(h.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!M(h);){const d=h.pop();if(d===a){o&&kt(h).idx<=l&&h.pop();continue}const f=d.def,p=d.idx,m=d.ruleStack,g=d.occurrenceStack;if(M(f))continue;const v=f[0];if(v===i){const y={idx:p,def:Z(f),ruleStack:Jt(m),occurrenceStack:Jt(g)};h.push(y)}else if(v instanceof D)if(p<c-1){const y=p+1;if(t(e[y],v.terminalType)){const T={idx:y,def:Z(f),ruleStack:m,occurrenceStack:g};h.push(T)}}else{if(p!==c-1)throw Error("non exhaustive match");u.push({nextTokenType:v.terminalType,nextTokenOccurrence:v.idx,ruleStack:m,occurrenceStack:g}),o=!0}else if(v instanceof de){const y=J(m);y.push(v.nonTerminalName);const T=J(g);T.push(v.idx);const $={idx:p,def:v.definition.concat(s,Z(f)),ruleStack:y,occurrenceStack:T};h.push($)}else if(v instanceof te){const y={idx:p,def:Z(f),ruleStack:m,occurrenceStack:g};h.push(y),h.push(a);const T={idx:p,def:v.definition.concat(Z(f)),ruleStack:m,occurrenceStack:g};h.push(T)}else if(v instanceof Se){const y=new V({definition:v.definition,idx:v.idx}),T={idx:p,def:v.definition.concat([y],Z(f)),ruleStack:m,occurrenceStack:g};h.push(T)}else if(v instanceof Ie){const y=new D({terminalType:v.separator}),T=new V({definition:[y].concat(v.definition),idx:v.idx}),$={idx:p,def:v.definition.concat([T],Z(f)),ruleStack:m,occurrenceStack:g};h.push($)}else if(v instanceof ge){const y={idx:p,def:Z(f),ruleStack:m,occurrenceStack:g};h.push(y),h.push(a);const T=new D({terminalType:v.separator}),$=new V({definition:[T].concat(v.definition),idx:v.idx}),_={idx:p,def:v.definition.concat([$],Z(f)),ruleStack:m,occurrenceStack:g};h.push(_)}else if(v instanceof V){const y={idx:p,def:Z(f),ruleStack:m,occurrenceStack:g};h.push(y),h.push(a);const T=new V({definition:v.definition,idx:v.idx}),$={idx:p,def:v.definition.concat([T],Z(f)),ruleStack:m,occurrenceStack:g};h.push($)}else if(v instanceof ye)for(let y=v.definition.length-1;y>=0;y--){const T={idx:p,def:v.definition[y].definition.concat(Z(f)),ruleStack:m,occurrenceStack:g};h.push(T),h.push(a)}else if(v instanceof me)h.push({idx:p,def:v.definition.concat(Z(f)),ruleStack:m,occurrenceStack:g});else{if(!(v instanceof Nt))throw Error("non exhaustive match");h.push(jl(v,p,m,g))}}return u}function jl(n,e,t,r){const i=J(t);i.push(n.name);const s=J(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var F;function Fi(n){if(n instanceof te||n==="Option")return F.OPTION;if(n instanceof V||n==="Repetition")return F.REPETITION;if(n instanceof Se||n==="RepetitionMandatory")return F.REPETITION_MANDATORY;if(n instanceof Ie||n==="RepetitionMandatoryWithSeparator")return F.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof ge||n==="RepetitionWithSeparator")return F.REPETITION_WITH_SEPARATOR;if(n instanceof ye||n==="Alternation")return F.ALTERNATION;throw Error("non exhaustive match")}function qa(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=Fi(r);return s===F.ALTERNATION?Ir(e,t,i):Nr(e,t,s,i)}function Hl(n,e,t,r){const i=n.length,s=_e(n,a=>_e(a,o=>o.length===1));if(e)return function(a){const o=x(a,c=>c.GATE);for(let c=0;c<i;c++){const l=n[c],u=l.length,h=o[c];if(h===void 0||h.call(this)!==!1)e:for(let d=0;d<u;d++){const f=l[d],p=f.length;for(let m=0;m<p;m++){const g=this.LA(m+1);if(t(g,f[m])===!1)continue e}return c}}};if(s&&!r){const a=x(n,c=>Ce(c)),o=le(a,(c,l,u)=>(I(l,h=>{N(c,h.tokenTypeIdx)||(c[h.tokenTypeIdx]=u),I(h.categoryMatches,d=>{N(c,d)||(c[d]=u)})}),c),{});return function(){const c=this.LA(1);return o[c.tokenTypeIdx]}}return function(){for(let a=0;a<i;a++){const o=n[a],c=o.length;e:for(let l=0;l<c;l++){const u=o[l],h=u.length;for(let d=0;d<h;d++){const f=this.LA(d+1);if(t(f,u[d])===!1)continue e}return a}}}}function Wl(n,e,t){const r=_e(n,s=>s.length===1),i=n.length;if(r&&!t){const s=Ce(n);if(s.length===1&&M(s[0].categoryMatches)){const a=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}{const a=le(s,(o,c,l)=>(o[c.tokenTypeIdx]=!0,I(c.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let c=0;c<o;c++){const l=this.LA(c+1);if(e(l,a[c])===!1)continue e}return!0}return!1}}(function(n){n[n.OPTION=0]="OPTION",n[n.REPETITION=1]="REPETITION",n[n.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",n[n.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",n[n.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",n[n.ALTERNATION=5]="ALTERNATION"})(F||(F={}));class zl extends vr{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(i),!0)}walkOption(e,t,r){this.checkIsTarget(e,F.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,F.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,F.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,F.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,F.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class Xa extends Ct{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,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,F.OPTION)}visitRepetition(e){this.checkIsTarget(e,F.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,F.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,F.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,F.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,F.ALTERNATION)}}function Qa(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function Bi(n){let e=[""];for(let t=0;t<n.length;t++){const r=n[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+r.tokenTypeIdx);for(let o=0;o<r.categoryMatches.length;o++){const c="_"+r.categoryMatches[o];i.push(a+c)}}e=i}return e}function Yl(n,e,t){for(let r=0;r<n.length;r++){if(r===t)continue;const i=n[r];for(let s=0;s<e.length;s++)if(i[e[s]]===!0)return!1}return!0}function Ja(n,e){const t=x(n,a=>Gi([a],1)),r=Qa(t.length),i=x(t,a=>{const o={};return I(a,c=>{const l=Bi(c.partialPath);I(l,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=Qa(o.length);for(let c=0;c<o.length;c++){const l=o[c];for(let u=0;u<l.length;u++){const h=l[u].partialPath,d=l[u].suffixDef,f=Bi(h);if(Yl(i,f,c)||M(d)||h.length===e){const p=r[c];if(Ki(p,h)===!1){p.push(h);for(let m=0;m<f.length;m++){const g=f[m];i[c][g]=!0}}}else{const p=Gi(d,a+1,h);s[c]=s[c].concat(p),I(p,m=>{const g=Bi(m.partialPath);I(g,v=>{i[c][v]=!0})})}}}}return r}function Ir(n,e,t,r){const i=new Xa(n,F.ALTERNATION,r);return e.accept(i),Ja(i.result,t)}function Nr(n,e,t,r){const i=new Xa(n,t);e.accept(i);const s=i.result,a=new zl(e,n,t).startWalking();return Ja([new me({definition:s}),new me({definition:a})],r)}function Ki(n,e){e:for(let t=0;t<n.length;t++){const r=n[t];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],a=r[i];if(!(s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0))continue e}return!0}}return!1}function Za(n){return _e(n,e=>_e(e,t=>_e(t,r=>M(r.categoryMatches))))}function ql(n,e,t,r){const i=$e(n,c=>function(l,u){const h=new Ql;l.accept(h);const d=h.allProductions,f=Pe(sl(d,Xl),m=>m.length>1);return x(Y(f),m=>{const g=be(m),v=u.buildDuplicateFoundError(l,m),y=Fe(g),T={message:v,type:he.DUPLICATE_PRODUCTIONS,ruleName:l.name,dslName:y,occurrence:g.idx},$=eo(g);return $&&(T.parameter=$),T})}(c,t)),s=function(c,l,u){const h=[],d=x(l,f=>f.name);return I(c,f=>{const p=f.name;if(ue(d,p)){const m=u.buildNamespaceConflictError(f);h.push({message:m,type:he.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:p})}}),h}(n,e,t),a=$e(n,c=>function(l,u){const h=new Vi;return l.accept(h),$e(h.alternations,f=>f.definition.length>255?[{message:u.buildTooManyAlternativesError({topLevelRule:l,alternation:f}),type:he.TOO_MANY_ALTS,ruleName:l.name,occurrence:f.idx}]:[])}(c,t)),o=$e(n,c=>function(l,u,h,d){const f=[];if(le(u,(m,g)=>g.name===l.name?m+1:m,0)>1){const m=d.buildDuplicateRuleNameError({topLevelRule:l,grammarName:h});f.push({message:m,type:he.DUPLICATE_RULE_NAME,ruleName:l.name})}return f}(c,n,r,t));return i.concat(s,a,o)}function Xl(n){return`${Fe(n)}_#_${n.idx}_#_${eo(n)}`}function eo(n){return n instanceof D?n.terminalType.name:n instanceof de?n.nonTerminalName:""}class Ql extends Ct{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 to(n,e,t,r=[]){const i=[],s=Cr(e.definition);if(M(s))return[];{const a=n.name;ue(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:he.LEFT_RECURSION,ruleName:a});const o=$e(Yn(s,r.concat([n])),c=>{const l=J(r);return l.push(c),to(n,c,t,l)});return i.concat(o)}}function Cr(n){let e=[];if(M(n))return e;const t=be(n);if(t instanceof de)e.push(t.referencedRule);else if(t instanceof me||t instanceof te||t instanceof Se||t instanceof Ie||t instanceof ge||t instanceof V)e=e.concat(Cr(t.definition));else if(t instanceof ye)e=Ce(x(t.definition,s=>Cr(s.definition)));else if(!(t instanceof D))throw Error("non exhaustive match");const r=Tr(t),i=n.length>1;if(r&&i){const s=Z(n);return e.concat(Cr(s))}return e}class Vi extends Ct{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Jl(n,e,t){const r=new Vi;n.accept(r);let i=r.alternations;return i=qn(i,a=>a.ignoreAmbiguities===!0),$e(i,a=>{const o=a.idx,c=a.maxLookahead||e,l=Ir(o,n,c,a),u=function(d,f,p,m){const g=[],v=le(d,(T,$,_)=>(f.definition[_].ignoreAmbiguities===!0||I($,P=>{const U=[_];I(d,(Q,re)=>{_!==re&&Ki(Q,P)&&f.definition[re].ignoreAmbiguities!==!0&&U.push(re)}),U.length>1&&!Ki(g,P)&&(g.push(P),T.push({alts:U,path:P}))}),T),[]);return x(v,T=>{const $=x(T.alts,_=>_+1);return{message:m.buildAlternationAmbiguityError({topLevelRule:p,alternation:f,ambiguityIndices:$,prefixPath:T.path}),type:he.AMBIGUOUS_ALTS,ruleName:p.name,occurrence:f.idx,alternatives:T.alts}})}(l,a,n,t),h=function(d,f,p,m){const g=le(d,(y,T,$)=>{const _=x(T,P=>({idx:$,path:P}));return y.concat(_)},[]);return Qt($e(g,y=>{if(f.definition[y.idx].ignoreAmbiguities===!0)return[];const T=y.idx,$=y.path,_=Ae(g,P=>{return f.definition[P.idx].ignoreAmbiguities!==!0&&P.idx<T&&(U=P.path,Q=$,U.length<Q.length&&_e(U,(re,fe)=>{const E=Q[fe];return re===E||E.categoryMatchesMap[re.tokenTypeIdx]}));var U,Q});return x(_,P=>{const U=[P.idx+1,T+1],Q=f.idx===0?"":f.idx;return{message:m.buildAlternationPrefixAmbiguityError({topLevelRule:p,alternation:f,ambiguityIndices:U,prefixPath:P.path}),type:he.AMBIGUOUS_PREFIX_ALTS,ruleName:p.name,occurrence:Q,alternatives:U}})}))}(l,a,n,t);return u.concat(h)})}class Zl extends Ct{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 eu(n){const e=oi(n,{errMsgProvider:Ul}),t={};return I(n.rules,r=>{t[r.name]=r}),function(r,i){const s=new Gl(r,i);return s.resolveRefs(),s.errors}(t,e.errMsgProvider)}const no="MismatchedTokenException",ro="NoViableAltException",io="EarlyExitException",so="NotAllInputParsedException",ao=[no,ro,io,so];function wr(n){return ue(ao,n.name)}Object.freeze(ao);class Lr 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 oo extends Lr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=no}}class tu extends Lr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=ro}}class nu extends Lr{constructor(e,t){super(e,t),this.name=so}}class ru extends Lr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=io}}const ji={},co="InRuleRecoveryException";class iu extends Error{constructor(e){super(e),this.name=co}}function su(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let c=this.firstAfterRepMap[o];if(c===void 0){const d=this.getCurrRuleFullName();c=new s(this.getGAstProductions()[d],i).startWalking(),this.firstAfterRepMap[o]=c}let l=c.token,u=c.occurrence;const h=c.isEndOfRule;this.RULE_STACK.length===1&&h&&l===void 0&&(l=et,u=1),l!==void 0&&u!==void 0&&this.shouldInRepetitionRecoveryBeTried(l,u,a)&&this.tryInRepetitionRecovery(n,e,t,l)}const Hi=1024,Wi=1280,Or=1536;function zi(n,e,t){return t|e|n}class Yi{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:ze.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(M(t)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...i,...s]}return t}validateNoLeftRecursion(e){return $e(e,t=>to(t,t,ht))}validateEmptyOrAlternatives(e){return $e(e,t=>function(r,i){const s=new Vi;return r.accept(s),$e(s.alternations,a=>$e(Jt(a.definition),(o,c)=>{const l=Ya([o],[],Pn,1);return M(l)?[{message:i.buildEmptyAlternationError({topLevelRule:r,alternation:a,emptyChoiceIdx:c}),type:he.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:a.idx,alternative:c+1}]:[]}))}(t,ht))}validateAmbiguousAlternationAlternatives(e,t){return $e(e,r=>Jl(r,t,ht))}validateSomeNonEmptyLookaheadPath(e,t){return function(r,i,s){const a=[];return I(r,o=>{const c=new Zl;o.accept(c);const l=c.allProductions;I(l,u=>{const h=Fi(u),d=u.maxLookahead||i,f=Nr(u.idx,o,h,d)[0];if(M(Ce(f))){const p=s.buildEmptyRepetitionError({topLevelRule:o,repetition:u});a.push({message:p,type:he.NO_NON_EMPTY_LOOKAHEAD,ruleName:o.name})}})}),a}(e,t,ht)}buildLookaheadForAlternation(e){return function(t,r,i,s,a,o){const c=Ir(t,r,i);return o(c,s,Za(c)?xr:Pn,a)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Hl)}buildLookaheadForOptional(e){return function(t,r,i,s,a,o){const c=Nr(t,r,a,i),l=Za(c)?xr:Pn;return o(c[0],l,s)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Fi(e.prodType),Wl)}}const _r=new class extends Ct{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(n){this.dslMethods.option.push(n)}visitRepetitionWithSeparator(n){this.dslMethods.repetitionWithSeparator.push(n)}visitRepetitionMandatory(n){this.dslMethods.repetitionMandatory.push(n)}visitRepetitionMandatoryWithSeparator(n){this.dslMethods.repetitionMandatoryWithSeparator.push(n)}visitRepetition(n){this.dslMethods.repetition.push(n)}visitAlternation(n){this.dslMethods.alternation.push(n)}};function lo(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function uo(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.startColumn=e.startColumn,n.startLine=e.startLine,n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine)}function ho(n,e){Object.defineProperty(n,"name",{enumerable:!1,configurable:!0,writable:!1,value:e})}function au(n,e){const t=Rt(n),r=t.length;for(let i=0;i<r;i++){const s=n[t[i]],a=s.length;for(let o=0;o<a;o++){const c=s[o];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}}function ou(n,e){const t=function(){};ho(t,n+"BaseSemantics");const r={visit:function(i,s){if(se(i)&&(i=i[0]),!Ve(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=function(s,a){return function(c,l){const u=Ae(l,d=>at(c[d])===!1),h=x(u,d=>({msg:`Missing visitor method: <${d}> on ${c.constructor.name} CST Visitor.`,type:qi.MISSING_METHOD,methodName:d}));return Qt(h)}(s,a)}(this,e);if(!M(i)){const s=x(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
88
- ${s.join(`
89
-
90
- `).replace(/\n/g,`
91
- `)}`)}}};return(t.prototype=r).constructor=t,t._RULE_NAMES=e,t}var qi;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(qi||(qi={}));const br={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(br);const fo=!0,po=Math.pow(2,8)-1,mo=ja({name:"RECORDING_PHASE_TOKEN",pattern:Te.NA});Mn([mo]);const go=Ui(mo,`This IToken indicates the Parser is in Recording Phase
92
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(go);const cu={name:`This CSTNode indicates the Parser is in Recording Phase
93
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};function Un(n,e,t,r=!1){Pr(t);const i=kt(this.recordingProdStack),s=at(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(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(),br}function lu(n,e){Pr(e);const t=kt(this.recordingProdStack),r=se(n)===!1,i=r===!1?n:n.DEF,s=new ye({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});N(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=Hs(i,o=>at(o.GATE));return s.hasPredicates=a,t.definition.push(s),I(i,o=>{const c=new me({definition:[]});s.definition.push(c),N(o,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:N(o,"GATE")&&(c.ignoreAmbiguities=!0),this.recordingProdStack.push(c),o.ALT.call(this),this.recordingProdStack.pop()}),br}function yo(n){return n===0?"":`${n}`}function Pr(n){if(n<0||n>po){const e=new Error(`Invalid DSL Method idx value: <${n}>
94
- Idx value must be a none negative value smaller than ${po+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}const Mr=Ui(et,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Mr);const ze=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Lt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Dr=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var he,Xi,To;function vo(n=void 0){return function(){return n}}(function(n){n[n.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",n[n.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",n[n.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",n[n.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",n[n.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",n[n.LEFT_RECURSION=5]="LEFT_RECURSION",n[n.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",n[n.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",n[n.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",n[n.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",n[n.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",n[n.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",n[n.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",n[n.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(he||(he={}));class Wn{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",()=>{va(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),I(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 r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=eu({rules:Y(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(M(r)&&this.skipValidations===!1){const s=(i={rules:Y(this.gastProductionsCache),tokenTypes:Y(this.tokensMap),errMsgProvider:ht,grammarName:t},ql((i=oi(i,{errMsgProvider:ht})).rules,i.tokenTypes,i.errMsgProvider,i.grammarName)),a=function(o){const c=o.lookaheadStrategy.validate({rules:o.rules,tokenTypes:o.tokenTypes,grammarName:o.grammarName});return x(c,l=>Object.assign({type:he.CUSTOM_LOOKAHEAD_VALIDATION},l))}({lookaheadStrategy:this.lookaheadStrategy,rules:Y(this.gastProductionsCache),tokenTypes:Y(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(s,a)}var i}),M(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=function(s){const a={};return I(s,o=>{const c=new xl(o).startWalking();ke(a,c)}),a}(Y(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:Y(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Y(this.gastProductionsCache))})),!Wn.DEFER_DEFINITION_ERRORS_HANDLING&&!M(this.definitionErrors))throw e=x(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
95
- ${e.join(`
96
- -------------------------------
97
- `)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),N(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
98
- Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
99
- See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
100
- For further details.`);this.skipValidations=N(t,"skipValidations")?t.skipValidations:ze.skipValidations}}Wn.DEFER_DEFINITION_ERRORS_HANDLING=!1,Xi=Wn,To=[class{initRecoverable(n){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=N(n,"recoveryEnabled")?n.recoveryEnabled:ze.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=su)}getTokenToInsert(n){const e=Ui(n,"",NaN,NaN,NaN,NaN,NaN,NaN);return e.isInsertedInRecovery=!0,e}canTokenTypeBeInsertedInRecovery(n){return!0}canTokenTypeBeDeletedInRecovery(n){return!0}tryInRepetitionRecovery(n,e,t,r){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const c=this.LA(1);let l=this.LA(1);const u=()=>{const h=this.LA(0),d=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:c,previous:h,ruleName:this.getCurrRuleFullName()}),f=new oo(d,c,this.LA(0));f.resyncedTokens=Jt(a),this.SAVE_ERROR(f)};for(;!o;){if(this.tokenMatcher(l,r))return void u();if(t.call(this))return u(),void n.apply(this,e);this.tokenMatcher(l,i)?o=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(n,e,t){return t!==!1&&!this.tokenMatcher(this.LA(1),n)&&!this.isBackTracking()&&!this.canPerformInRuleRecovery(n,this.getFollowsForInRuleRecovery(n,e))}getFollowsForInRuleRecovery(n,e){const t=this.getCurrentGrammarPath(n,e);return this.getNextPossibleTokenTypes(t)}tryInRuleRecovery(n,e){if(this.canRecoverWithSingleTokenInsertion(n,e))return this.getTokenToInsert(n);if(this.canRecoverWithSingleTokenDeletion(n)){const t=this.SKIP_TOKEN();return this.consumeToken(),t}throw new iu("sad sad panda")}canPerformInRuleRecovery(n,e){return this.canRecoverWithSingleTokenInsertion(n,e)||this.canRecoverWithSingleTokenDeletion(n)}canRecoverWithSingleTokenInsertion(n,e){if(!this.canTokenTypeBeInsertedInRecovery(n)||M(e))return!1;const t=this.LA(1);return At(e,r=>this.tokenMatcher(t,r))!==void 0}canRecoverWithSingleTokenDeletion(n){return!!this.canTokenTypeBeDeletedInRecovery(n)&&this.tokenMatcher(this.LA(2),n)}isInCurrentRuleReSyncSet(n){const e=this.getCurrFollowKey();return ue(this.getFollowSetFromFollowKey(e),n)}findReSyncTokenType(){const n=this.flattenFollowSet();let e=this.LA(1),t=2;for(;;){const r=At(n,i=>Ha(e,i));if(r!==void 0)return r;e=this.LA(t),t++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return ji;const n=this.getLastExplicitRuleShortName(),e=this.getLastExplicitRuleOccurrenceIndex(),t=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:e,inRule:this.shortRuleNameToFullName(t)}}buildFullFollowKeyStack(){const n=this.RULE_STACK,e=this.RULE_OCCURRENCE_STACK;return x(n,(t,r)=>r===0?ji:{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:e[r],inRule:this.shortRuleNameToFullName(n[r-1])})}flattenFollowSet(){const n=x(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return Ce(n)}getFollowSetFromFollowKey(n){if(n===ji)return[et];const e=n.ruleName+n.idxInCallingRule+Ea+n.inRule;return this.resyncFollows[e]}addToResyncTokens(n,e){return this.tokenMatcher(n,et)||e.push(n),e}reSyncTo(n){const e=[];let t=this.LA(1);for(;this.tokenMatcher(t,n)===!1;)t=this.SKIP_TOKEN(),this.addToResyncTokens(t,e);return Jt(e)}attemptInRepetitionRecovery(n,e,t,r,i,s,a){}getCurrentGrammarPath(n,e){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:J(this.RULE_OCCURRENCE_STACK),lastTok:n,lastTokOccurrence:e}}getHumanReadableRuleStack(){return x(this.RULE_STACK,n=>this.shortRuleNameToFullName(n))}},class{initLooksAhead(n){this.dynamicTokensEnabled=N(n,"dynamicTokensEnabled")?n.dynamicTokensEnabled:ze.dynamicTokensEnabled,this.maxLookahead=N(n,"maxLookahead")?n.maxLookahead:ze.maxLookahead,this.lookaheadStrategy=N(n,"lookaheadStrategy")?n.lookaheadStrategy:new Yi({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(n){I(n,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{const{alternation:t,repetition:r,option:i,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=function(c){_r.reset(),c.accept(_r);const l=_r.dslMethods;return _r.reset(),l}(e);I(t,c=>{const l=c.idx===0?"":c.idx;this.TRACE_INIT(`${Fe(c)}${l}`,()=>{const u=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:e,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=zi(this.fullRuleNameToShort[e.name],256,c.idx);this.setLaFuncCache(h,u)})}),I(r,c=>{this.computeLookaheadFunc(e,c.idx,768,"Repetition",c.maxLookahead,Fe(c))}),I(i,c=>{this.computeLookaheadFunc(e,c.idx,512,"Option",c.maxLookahead,Fe(c))}),I(s,c=>{this.computeLookaheadFunc(e,c.idx,Hi,"RepetitionMandatory",c.maxLookahead,Fe(c))}),I(a,c=>{this.computeLookaheadFunc(e,c.idx,Or,"RepetitionMandatoryWithSeparator",c.maxLookahead,Fe(c))}),I(o,c=>{this.computeLookaheadFunc(e,c.idx,Wi,"RepetitionWithSeparator",c.maxLookahead,Fe(c))})})})}computeLookaheadFunc(n,e,t,r,i,s){this.TRACE_INIT(`${s}${e===0?"":e}`,()=>{const a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:e,rule:n,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),o=zi(this.fullRuleNameToShort[n.name],t,e);this.setLaFuncCache(o,a)})}getKeyForAutomaticLookahead(n,e){return zi(this.getLastExplicitRuleShortName(),n,e)}getLaFuncFromCache(n){return this.lookAheadFuncsCache.get(n)}setLaFuncCache(n,e){this.lookAheadFuncsCache.set(n,e)}},class{initTreeBuilder(n){if(this.CST_STACK=[],this.outputCst=n.outputCst,this.nodeLocationTracking=N(n,"nodeLocationTracking")?n.nodeLocationTracking:ze.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=uo,this.setNodeLocationFromNode=uo,this.cstPostRule=q,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=lo,this.setNodeLocationFromNode=lo,this.cstPostRule=q,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid <nodeLocationTracking> config option: "${n.nodeLocationTracking}"`);this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=q,this.setInitialNodeLocation=q}else this.cstInvocationStateUpdate=q,this.cstFinallyStateUpdate=q,this.cstPostTerminal=q,this.cstPostNonTerminal=q,this.cstPostRule=q}setInitialNodeLocationOnlyOffsetRecovery(n){n.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(n){n.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(n){n.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(n){const e=this.LA(1);n.location={startOffset:e.startOffset,startLine:e.startLine,startColumn:e.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(n){const e={name:n,children:Object.create(null)};this.setInitialNodeLocation(e),this.CST_STACK.push(e)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(n){const e=this.LA(0),t=n.location;t.startOffset<=e.startOffset==1?(t.endOffset=e.endOffset,t.endLine=e.endLine,t.endColumn=e.endColumn):(t.startOffset=NaN,t.startLine=NaN,t.startColumn=NaN)}cstPostRuleOnlyOffset(n){const e=this.LA(0),t=n.location;t.startOffset<=e.startOffset==1?t.endOffset=e.endOffset:t.startOffset=NaN}cstPostTerminal(n,e){const t=this.CST_STACK[this.CST_STACK.length-1];var r,i,s;i=e,s=n,(r=t).children[s]===void 0?r.children[s]=[i]:r.children[s].push(i),this.setNodeLocationFromToken(t.location,e)}cstPostNonTerminal(n,e){const t=this.CST_STACK[this.CST_STACK.length-1];(function(r,i,s){r.children[i]===void 0?r.children[i]=[s]:r.children[i].push(s)})(t,e,n),this.setNodeLocationFromNode(t.location,n.location)}getBaseCstVisitorConstructor(){if(Ve(this.baseCstVisitorConstructor)){const n=ou(this.className,Rt(this.gastProductionsCache));return this.baseCstVisitorConstructor=n,n}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Ve(this.baseCstVisitorWithDefaultsConstructor)){const n=function(e,t,r){const i=function(){};ho(i,e+"BaseSemanticsWithDefaults");const s=Object.create(r.prototype);return I(t,a=>{s[a]=au}),(i.prototype=s).constructor=i,i}(this.className,Rt(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=n,n}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const n=this.RULE_STACK;return n[n.length-1]}getPreviousExplicitRuleShortName(){const n=this.RULE_STACK;return n[n.length-2]}getLastExplicitRuleOccurrenceIndex(){const n=this.RULE_OCCURRENCE_STACK;return n[n.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(n){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=n,this.tokVectorLength=n.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Mr}LA(n){const e=this.currIdx+n;return e<0||this.tokVectorLength<=e?Mr:this.tokVector[e]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(n){this.currIdx=n}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(n,e){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=xr,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},N(e,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
101
- See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
102
- For Further details.`);if(se(n)){if(M(n))throw Error(`A Token Vocabulary cannot be empty.
103
- Note that the first argument for the parser constructor
104
- is no longer a Token vector (since v4.0).`);if(typeof n[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
105
- See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
106
- For Further details.`)}if(se(n))this.tokensMap=le(n,(r,i)=>(r[i.name]=i,r),{});else if(N(n,"modes")&&_e(Ce(Y(n.modes)),Ml)){const r=ci(Ce(Y(n.modes)));this.tokensMap=le(r,(i,s)=>(i[s.name]=s,i),{})}else{if(!zc(n))throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=J(n)}this.tokensMap.EOF=et;const t=_e(N(n,"modes")?Ce(Y(n.modes)):Y(n),r=>M(r.categoryMatches));this.tokenMatcher=t?xr:Pn,Mn(Y(this.tokensMap))}defineRule(n,e,t){if(this.selfAnalysisDone)throw Error(`Grammar rule <${n}> may not be defined after the 'performSelfAnalysis' method has been called'
107
- Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const r=N(t,"resyncEnabled")?t.resyncEnabled:Dr.resyncEnabled,i=N(t,"recoveryValueFunc")?t.recoveryValueFunc:Dr.recoveryValueFunc,s=this.ruleShortNameIdx<<12;let a;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=n,this.fullRuleNameToShort[n]=s,a=this.outputCst===!0?function(...o){try{this.ruleInvocationStateUpdate(s,n,this.subruleIdx),e.apply(this,o);const c=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(c),c}catch(c){return this.invokeRuleCatch(c,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...o){try{return this.ruleInvocationStateUpdate(s,n,this.subruleIdx),e.apply(this,o)}catch(c){return this.invokeRuleCatch(c,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:n,originalGrammarAction:e})}invokeRuleCatch(n,e,t){const r=this.RULE_STACK.length===1,i=e&&!this.isBackTracking()&&this.recoveryEnabled;if(wr(n)){const s=n;if(i){const a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a)){if(s.resyncedTokens=this.reSyncTo(a),this.outputCst){const o=this.CST_STACK[this.CST_STACK.length-1];return o.recoveredNode=!0,o}return t(n)}if(this.outputCst){const o=this.CST_STACK[this.CST_STACK.length-1];o.recoveredNode=!0,s.partialCstResult=o}throw s}if(r)return this.moveToTerminatedState(),t(n);throw s}throw n}optionInternal(n,e){const t=this.getKeyForAutomaticLookahead(512,e);return this.optionInternalLogic(n,e,t)}optionInternalLogic(n,e,t){let r,i=this.getLaFuncFromCache(t);if(typeof n!="function"){r=n.DEF;const s=n.GATE;if(s!==void 0){const a=i;i=()=>s.call(this)&&a.call(this)}}else r=n;if(i.call(this)===!0)return r.call(this)}atLeastOneInternal(n,e){const t=this.getKeyForAutomaticLookahead(Hi,n);return this.atLeastOneInternalLogic(n,e,t)}atLeastOneInternalLogic(n,e,t){let r,i=this.getLaFuncFromCache(t);if(typeof e!="function"){r=e.DEF;const s=e.GATE;if(s!==void 0){const a=i;i=()=>s.call(this)&&a.call(this)}}else r=e;if(i.call(this)!==!0)throw this.raiseEarlyExitException(n,F.REPETITION_MANDATORY,e.ERR_MSG);{let s=this.doSingleRepetition(r);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(r)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[n,e],i,Hi,n,Vl)}atLeastOneSepFirstInternal(n,e){const t=this.getKeyForAutomaticLookahead(Or,n);this.atLeastOneSepFirstInternalLogic(n,e,t)}atLeastOneSepFirstInternalLogic(n,e,t){const r=e.DEF,i=e.SEP;if(this.getLaFuncFromCache(t).call(this)!==!0)throw this.raiseEarlyExitException(n,F.REPETITION_MANDATORY_WITH_SEPARATOR,e.ERR_MSG);{r.call(this);const s=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[n,i,s,r,za],s,Or,n,za)}}manyInternal(n,e){const t=this.getKeyForAutomaticLookahead(768,n);return this.manyInternalLogic(n,e,t)}manyInternalLogic(n,e,t){let r,i=this.getLaFuncFromCache(t);if(typeof e!="function"){r=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else r=e;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[n,e],i,768,n,Kl,s)}manySepFirstInternal(n,e){const t=this.getKeyForAutomaticLookahead(Wi,n);this.manySepFirstInternalLogic(n,e,t)}manySepFirstInternalLogic(n,e,t){const r=e.DEF,i=e.SEP;if(this.getLaFuncFromCache(t).call(this)===!0){r.call(this);const s=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[n,i,s,r,Wa],s,Wi,n,Wa)}}repetitionSepSecondInternal(n,e,t,r,i){for(;t();)this.CONSUME(e),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[n,e,t,r,i],t,Or,n,i)}doSingleRepetition(n){const e=this.getLexerPosition();return n.call(this),this.getLexerPosition()>e}orInternal(n,e){const t=this.getKeyForAutomaticLookahead(256,e),r=se(n)?n:n.DEF,i=this.getLaFuncFromCache(t).call(this,r);if(i!==void 0)return r[i].ALT.call(this);this.raiseNoAltException(e,n.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const n=this.LA(1),e=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:n,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new nu(e,n))}}subruleInternal(n,e,t){let r;try{const i=t!==void 0?t.ARGS:void 0;return this.subruleIdx=e,r=n.apply(this,i),this.cstPostNonTerminal(r,t!==void 0&&t.LABEL!==void 0?t.LABEL:n.ruleName),r}catch(i){throw this.subruleInternalError(i,t,n.ruleName)}}subruleInternalError(n,e,t){throw wr(n)&&n.partialCstResult!==void 0&&(this.cstPostNonTerminal(n.partialCstResult,e!==void 0&&e.LABEL!==void 0?e.LABEL:t),delete n.partialCstResult),n}consumeInternal(n,e,t){let r;try{const i=this.LA(1);this.tokenMatcher(i,n)===!0?(this.consumeToken(),r=i):this.consumeInternalError(n,i,t)}catch(i){r=this.consumeInternalRecovery(n,e,i)}return this.cstPostTerminal(t!==void 0&&t.LABEL!==void 0?t.LABEL:n.name,r),r}consumeInternalError(n,e,t){let r;const i=this.LA(0);throw r=t!==void 0&&t.ERR_MSG?t.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:e,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new oo(r,e,i))}consumeInternalRecovery(n,e,t){if(!this.recoveryEnabled||t.name!=="MismatchedTokenException"||this.isBackTracking())throw t;{const r=this.getFollowsForInRuleRecovery(n,e);try{return this.tryInRuleRecovery(n,r)}catch(i){throw i.name===co?t:i}}}saveRecogState(){const n=this.errors,e=J(this.RULE_STACK);return{errors:n,lexerState:this.exportLexerState(),RULE_STACK:e,CST_STACK:this.CST_STACK}}reloadRecogState(n){this.errors=n.errors,this.importLexerState(n.lexerState),this.RULE_STACK=n.RULE_STACK}ruleInvocationStateUpdate(n,e,t){this.RULE_OCCURRENCE_STACK.push(t),this.RULE_STACK.push(n),this.cstInvocationStateUpdate(e)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const n=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[n]}shortRuleNameToFullName(n){return this.shortRuleNameToFull[n]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),et)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(n){return n.call(this)}consume(n,e,t){return this.consumeInternal(e,n,t)}subrule(n,e,t){return this.subruleInternal(e,n,t)}option(n,e){return this.optionInternal(e,n)}or(n,e){return this.orInternal(e,n)}many(n,e){return this.manyInternal(n,e)}atLeastOne(n,e){return this.atLeastOneInternal(n,e)}CONSUME(n,e){return this.consumeInternal(n,0,e)}CONSUME1(n,e){return this.consumeInternal(n,1,e)}CONSUME2(n,e){return this.consumeInternal(n,2,e)}CONSUME3(n,e){return this.consumeInternal(n,3,e)}CONSUME4(n,e){return this.consumeInternal(n,4,e)}CONSUME5(n,e){return this.consumeInternal(n,5,e)}CONSUME6(n,e){return this.consumeInternal(n,6,e)}CONSUME7(n,e){return this.consumeInternal(n,7,e)}CONSUME8(n,e){return this.consumeInternal(n,8,e)}CONSUME9(n,e){return this.consumeInternal(n,9,e)}SUBRULE(n,e){return this.subruleInternal(n,0,e)}SUBRULE1(n,e){return this.subruleInternal(n,1,e)}SUBRULE2(n,e){return this.subruleInternal(n,2,e)}SUBRULE3(n,e){return this.subruleInternal(n,3,e)}SUBRULE4(n,e){return this.subruleInternal(n,4,e)}SUBRULE5(n,e){return this.subruleInternal(n,5,e)}SUBRULE6(n,e){return this.subruleInternal(n,6,e)}SUBRULE7(n,e){return this.subruleInternal(n,7,e)}SUBRULE8(n,e){return this.subruleInternal(n,8,e)}SUBRULE9(n,e){return this.subruleInternal(n,9,e)}OPTION(n){return this.optionInternal(n,0)}OPTION1(n){return this.optionInternal(n,1)}OPTION2(n){return this.optionInternal(n,2)}OPTION3(n){return this.optionInternal(n,3)}OPTION4(n){return this.optionInternal(n,4)}OPTION5(n){return this.optionInternal(n,5)}OPTION6(n){return this.optionInternal(n,6)}OPTION7(n){return this.optionInternal(n,7)}OPTION8(n){return this.optionInternal(n,8)}OPTION9(n){return this.optionInternal(n,9)}OR(n){return this.orInternal(n,0)}OR1(n){return this.orInternal(n,1)}OR2(n){return this.orInternal(n,2)}OR3(n){return this.orInternal(n,3)}OR4(n){return this.orInternal(n,4)}OR5(n){return this.orInternal(n,5)}OR6(n){return this.orInternal(n,6)}OR7(n){return this.orInternal(n,7)}OR8(n){return this.orInternal(n,8)}OR9(n){return this.orInternal(n,9)}MANY(n){this.manyInternal(0,n)}MANY1(n){this.manyInternal(1,n)}MANY2(n){this.manyInternal(2,n)}MANY3(n){this.manyInternal(3,n)}MANY4(n){this.manyInternal(4,n)}MANY5(n){this.manyInternal(5,n)}MANY6(n){this.manyInternal(6,n)}MANY7(n){this.manyInternal(7,n)}MANY8(n){this.manyInternal(8,n)}MANY9(n){this.manyInternal(9,n)}MANY_SEP(n){this.manySepFirstInternal(0,n)}MANY_SEP1(n){this.manySepFirstInternal(1,n)}MANY_SEP2(n){this.manySepFirstInternal(2,n)}MANY_SEP3(n){this.manySepFirstInternal(3,n)}MANY_SEP4(n){this.manySepFirstInternal(4,n)}MANY_SEP5(n){this.manySepFirstInternal(5,n)}MANY_SEP6(n){this.manySepFirstInternal(6,n)}MANY_SEP7(n){this.manySepFirstInternal(7,n)}MANY_SEP8(n){this.manySepFirstInternal(8,n)}MANY_SEP9(n){this.manySepFirstInternal(9,n)}AT_LEAST_ONE(n){this.atLeastOneInternal(0,n)}AT_LEAST_ONE1(n){return this.atLeastOneInternal(1,n)}AT_LEAST_ONE2(n){this.atLeastOneInternal(2,n)}AT_LEAST_ONE3(n){this.atLeastOneInternal(3,n)}AT_LEAST_ONE4(n){this.atLeastOneInternal(4,n)}AT_LEAST_ONE5(n){this.atLeastOneInternal(5,n)}AT_LEAST_ONE6(n){this.atLeastOneInternal(6,n)}AT_LEAST_ONE7(n){this.atLeastOneInternal(7,n)}AT_LEAST_ONE8(n){this.atLeastOneInternal(8,n)}AT_LEAST_ONE9(n){this.atLeastOneInternal(9,n)}AT_LEAST_ONE_SEP(n){this.atLeastOneSepFirstInternal(0,n)}AT_LEAST_ONE_SEP1(n){this.atLeastOneSepFirstInternal(1,n)}AT_LEAST_ONE_SEP2(n){this.atLeastOneSepFirstInternal(2,n)}AT_LEAST_ONE_SEP3(n){this.atLeastOneSepFirstInternal(3,n)}AT_LEAST_ONE_SEP4(n){this.atLeastOneSepFirstInternal(4,n)}AT_LEAST_ONE_SEP5(n){this.atLeastOneSepFirstInternal(5,n)}AT_LEAST_ONE_SEP6(n){this.atLeastOneSepFirstInternal(6,n)}AT_LEAST_ONE_SEP7(n){this.atLeastOneSepFirstInternal(7,n)}AT_LEAST_ONE_SEP8(n){this.atLeastOneSepFirstInternal(8,n)}AT_LEAST_ONE_SEP9(n){this.atLeastOneSepFirstInternal(9,n)}RULE(n,e,t=Dr){if(ue(this.definedRulesNames,n)){const i={message:ht.buildDuplicateRuleNameError({topLevelRule:n,grammarName:this.className}),type:he.DUPLICATE_RULE_NAME,ruleName:n};this.definitionErrors.push(i)}this.definedRulesNames.push(n);const r=this.defineRule(n,e,t);return this[n]=r,r}OVERRIDE_RULE(n,e,t=Dr){const r=function(s,a,o){const c=[];let l;return ue(a,s)||(l=`Invalid rule override, rule: ->${s}<- cannot be overridden in the grammar: ->${o}<-as it is not defined in any of the super grammars `,c.push({message:l,type:he.INVALID_RULE_OVERRIDE,ruleName:s})),c}(n,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(n,e,t);return this[n]=i,i}BACKTRACK(n,e){return function(){this.isBackTrackingStack.push(1);const t=this.saveRecogState();try{return n.apply(this,e),!0}catch(r){if(wr(r))return!1;throw r}finally{this.reloadRecogState(t),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return n=Y(this.gastProductionsCache),x(n,yr);var n}},class{initErrorHandler(n){this._errors=[],this.errorMessageProvider=N(n,"errorMessageProvider")?n.errorMessageProvider:ze.errorMessageProvider}SAVE_ERROR(n){if(wr(n))return n.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:J(this.RULE_OCCURRENCE_STACK)},this._errors.push(n),n;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return J(this._errors)}set errors(n){this._errors=n}raiseEarlyExitException(n,e,t){const r=this.getCurrRuleFullName(),i=Nr(n,this.getGAstProductions()[r],e,this.maxLookahead)[0],s=[];for(let o=1;o<=this.maxLookahead;o++)s.push(this.LA(o));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:t,ruleName:r});throw this.SAVE_ERROR(new ru(a,this.LA(1),this.LA(0)))}raiseNoAltException(n,e){const t=this.getCurrRuleFullName(),r=Ir(n,this.getGAstProductions()[t],this.maxLookahead),i=[];for(let o=1;o<=this.maxLookahead;o++)i.push(this.LA(o));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:r,actual:i,previous:s,customUserDescription:e,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new tu(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(n,e){const t=this.gastProductionsCache[n];if(Ve(t))throw Error(`Rule ->${n}<- does not exist in this grammar.`);return Ya([t],e,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(n){const e=be(n.ruleStack),t=this.getGAstProductions()[e];return new Bl(t,n).startWalking()}},class{initGastRecorder(n){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let n=0;n<10;n++){const e=n>0?n:"";this[`CONSUME${e}`]=function(t,r){return this.consumeInternalRecord(t,n,r)},this[`SUBRULE${e}`]=function(t,r){return this.subruleInternalRecord(t,n,r)},this[`OPTION${e}`]=function(t){return this.optionInternalRecord(t,n)},this[`OR${e}`]=function(t){return this.orInternalRecord(t,n)},this[`MANY${e}`]=function(t){this.manyInternalRecord(n,t)},this[`MANY_SEP${e}`]=function(t){this.manySepFirstInternalRecord(n,t)},this[`AT_LEAST_ONE${e}`]=function(t){this.atLeastOneInternalRecord(n,t)},this[`AT_LEAST_ONE_SEP${e}`]=function(t){this.atLeastOneSepFirstInternalRecord(n,t)}}this.consume=function(n,e,t){return this.consumeInternalRecord(e,n,t)},this.subrule=function(n,e,t){return this.subruleInternalRecord(e,n,t)},this.option=function(n,e){return this.optionInternalRecord(e,n)},this.or=function(n,e){return this.orInternalRecord(e,n)},this.many=function(n,e){this.manyInternalRecord(n,e)},this.atLeastOne=function(n,e){this.atLeastOneInternalRecord(n,e)},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 n=this;for(let e=0;e<10;e++){const t=e>0?e:"";delete n[`CONSUME${t}`],delete n[`SUBRULE${t}`],delete n[`OPTION${t}`],delete n[`OR${t}`],delete n[`MANY${t}`],delete n[`MANY_SEP${t}`],delete n[`AT_LEAST_ONE${t}`],delete n[`AT_LEAST_ONE_SEP${t}`]}delete n.consume,delete n.subrule,delete n.option,delete n.or,delete n.many,delete n.atLeastOne,delete n.ACTION,delete n.BACKTRACK,delete n.LA})}ACTION_RECORD(n){}BACKTRACK_RECORD(n,e){return()=>!0}LA_RECORD(n){return Mr}topLevelRuleRecord(n,e){try{const t=new Nt({definition:[],name:n});return t.name=n,this.recordingProdStack.push(t),e.call(this),this.recordingProdStack.pop(),t}catch(t){if(t.KNOWN_RECORDER_ERROR!==!0)try{t.message=t.message+`
108
- This error was thrown during the "grammar recording phase" For more info see:
109
- https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw t}throw t}}optionInternalRecord(n,e){return Un.call(this,te,n,e)}atLeastOneInternalRecord(n,e){Un.call(this,Se,e,n)}atLeastOneSepFirstInternalRecord(n,e){Un.call(this,Ie,e,n,fo)}manyInternalRecord(n,e){Un.call(this,V,e,n)}manySepFirstInternalRecord(n,e){Un.call(this,ge,e,n,fo)}orInternalRecord(n,e){return lu.call(this,n,e)}subruleInternalRecord(n,e,t){if(Pr(e),!n||N(n,"ruleName")===!1){const a=new Error(`<SUBRULE${yo(e)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(n)}>
110
- inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const r=kt(this.recordingProdStack),i=n.ruleName,s=new de({idx:e,nonTerminalName:i,label:t==null?void 0:t.LABEL,referencedRule:void 0});return r.definition.push(s),this.outputCst?cu:br}consumeInternalRecord(n,e,t){if(Pr(e),!_a(n)){const s=new Error(`<CONSUME${yo(e)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(n)}>
111
- inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}const r=kt(this.recordingProdStack),i=new D({idx:e,terminalType:n,label:t==null?void 0:t.LABEL});return r.definition.push(i),go}},class{initPerformanceTracer(n){if(N(n,"traceInitPerf")){const e=n.traceInitPerf,t=typeof e=="number";this.traceInitMaxIdent=t?e:1/0,this.traceInitPerf=t?e>0:e}else this.traceInitMaxIdent=0,this.traceInitPerf=ze.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(n,e){if(this.traceInitPerf===!0){this.traceInitIndent++;const t=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${t}--> <${n}>`);const{time:r,value:i}=Ta(e),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${t}<-- <${n}> time: ${r}ms`),this.traceInitIndent--,i}return e()}}],To.forEach(n=>{const e=n.prototype;Object.getOwnPropertyNames(e).forEach(t=>{if(t==="constructor")return;const r=Object.getOwnPropertyDescriptor(e,t);r&&(r.get||r.set)?Object.defineProperty(Xi.prototype,t,r):Xi.prototype[t]=n.prototype[t]})});class uu extends Wn{constructor(e,t=ze){const r=J(t);r.outputCst=!1,super(e,r)}}function Ot(n,e,t){return`${n.name}_${e}_${t}`}class Qi{constructor(e){this.target=e}isEpsilon(){return!1}}class Ji extends Qi{constructor(e,t){super(e),this.tokenType=t}}class Ro extends Qi{constructor(e){super(e)}isEpsilon(){return!0}}class Zi extends Qi{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function du(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};(function(r,i){const s=i.length;for(let a=0;a<s;a++){const o=i[a],c=X(r,o,void 0,{type:2}),l=X(r,o,void 0,{type:7});c.stop=l,r.ruleToStartState.set(o,c),r.ruleToStopState.set(o,l)}})(e,n);const t=n.length;for(let r=0;r<t;r++){const i=n[r],s=ft(e,i,i);s!==void 0&&hu(e,i,s)}return e}function Eo(n,e,t){return t instanceof D?es(n,e,t.terminalType,t):t instanceof de?function(r,i,s){const a=s.referencedRule,o=r.ruleToStartState.get(a),c=X(r,i,s,{type:1}),l=X(r,i,s,{type:1}),u=new Zi(o,a,l);return ts(c,u),{left:c,right:l}}(n,e,t):t instanceof ye?function(r,i,s){const a=X(r,i,s,{type:1});tt(r,a);const o=x(s.definition,l=>Eo(r,i,l));return _t(r,i,a,s,...o)}(n,e,t):t instanceof te?function(r,i,s){const a=X(r,i,s,{type:1});tt(r,a);const o=_t(r,i,a,s,ft(r,i,s));return function(c,l,u,h){const d=h.left,f=h.right;return H(d,f),c.decisionMap[Ot(l,"Option",u.idx)]=d,h}(r,i,s,o)}(n,e,t):t instanceof V?function(r,i,s){const a=X(r,i,s,{type:5});tt(r,a);const o=_t(r,i,a,s,ft(r,i,s));return ko(r,i,s,o)}(n,e,t):t instanceof ge?function(r,i,s){const a=X(r,i,s,{type:5});tt(r,a);const o=_t(r,i,a,s,ft(r,i,s)),c=es(r,i,s.separator,s);return ko(r,i,s,o,c)}(n,e,t):t instanceof Se?function(r,i,s){const a=X(r,i,s,{type:4});tt(r,a);const o=_t(r,i,a,s,ft(r,i,s));return Ao(r,i,s,o)}(n,e,t):t instanceof Ie?function(r,i,s){const a=X(r,i,s,{type:4});tt(r,a);const o=_t(r,i,a,s,ft(r,i,s)),c=es(r,i,s.separator,s);return Ao(r,i,s,o,c)}(n,e,t):ft(n,e,t)}function ft(n,e,t){const r=Ae(x(t.definition,i=>Eo(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:function(i,s){const a=s.length;for(let l=0;l<a-1;l++){const u=s[l];let h;u.left.transitions.length===1&&(h=u.left.transitions[0]);const d=h instanceof Zi,f=h,p=s[l+1].left;u.left.type===1&&u.right.type===1&&h!==void 0&&(d&&f.followState===u.right||h.target===u.right)?(d?f.followState=p:h.target=p,fu(i,u.right)):H(u.right,p)}const o=s[0],c=s[a-1];return{left:o.left,right:c.right}}(n,r)}function Ao(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:11});tt(n,o);const c=X(n,e,t,{type:12});return s.loopback=o,c.loopback=o,n.decisionMap[Ot(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,H(a,o),i===void 0?(H(o,s),H(o,c)):(H(o,c),H(o,i.left),H(i.right,s)),{left:s,right:c}}function ko(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:10});tt(n,o);const c=X(n,e,t,{type:12}),l=X(n,e,t,{type:9});return o.loopback=l,c.loopback=l,H(o,s),H(o,c),H(a,l),i!==void 0?(H(l,c),H(l,i.left),H(i.right,s)):H(l,o),n.decisionMap[Ot(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:c}}function tt(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function _t(n,e,t,r,...i){const s=X(n,e,r,{type:8,start:t});t.end=s;for(const o of i)o!==void 0?(H(t,o.left),H(o.right,s)):H(t,s);const a={left:t,right:s};return n.decisionMap[Ot(e,function(o){if(o instanceof ye)return"Alternation";if(o instanceof te)return"Option";if(o instanceof V)return"Repetition";if(o instanceof ge)return"RepetitionWithSeparator";if(o instanceof Se)return"RepetitionMandatory";if(o instanceof Ie)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}(r),r.idx)]=t,a}function es(n,e,t,r){const i=X(n,e,r,{type:1}),s=X(n,e,r,{type:1});return ts(i,new Ji(s,t)),{left:i,right:s}}function hu(n,e,t){const r=n.ruleToStartState.get(e);H(r,t.left);const i=n.ruleToStopState.get(e);return H(t.right,i),{left:r,right:i}}function H(n,e){ts(n,new Ro(e))}function X(n,e,t,r){const i=Object.assign({atn:n,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:n.states.length},r);return n.states.push(i),i}function ts(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function fu(n,e){n.states.splice(n.states.indexOf(e),1)}const Ur={};class ns{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=$o(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return x(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function $o(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function pu(n,e){const t={};return r=>{const i=r.toString();let s=t[i];return s!==void 0||(s={atnStartState:n,decision:e,states:{}},t[i]=s),s}}class xo{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 r=0;r<t;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const So=new xo;class mu extends Yi{constructor(e){var t;super(),this.logging=(t=e==null?void 0:e.logging)!==null&&t!==void 0?t:r=>console.log(r)}initialize(e){this.atn=du(e.rules),this.dfas=function(t){const r=t.decisionStates.length,i=Array(r);for(let s=0;s<r;s++)i[s]=pu(t.decisionStates[s],s);return i}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,c=Ot(r,"Alternation",t),l=this.atn.decisionMap[c].decision,u=x(qa({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),h=>x(h,d=>d[0]));if(Io(u,!1)&&!s){const h=le(u,(d,f,p)=>(I(f,m=>{m&&(d[m.tokenTypeIdx]=p,I(m.categoryMatches,g=>{d[g]=p}))}),d),{});return i?function(d){var f;const p=this.LA(1),m=h[p.tokenTypeIdx];if(d!==void 0&&m!==void 0){const g=(f=d[m])===null||f===void 0?void 0:f.GATE;if(g!==void 0&&g.call(this)===!1)return}return m}:function(){const d=this.LA(1);return h[d.tokenTypeIdx]}}return i?function(h){const d=new xo,f=h===void 0?0:h.length;for(let m=0;m<f;m++){const g=h==null?void 0:h[m].GATE;d.set(m,g===void 0||g.call(this))}const p=rs.call(this,a,l,d,o);return typeof p=="number"?p:void 0}:function(){const h=rs.call(this,a,l,So,o);return typeof h=="number"?h:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,c=Ot(r,i,t),l=this.atn.decisionMap[c].decision,u=x(qa({maxLookahead:1,occurrence:t,prodType:i,rule:r}),h=>x(h,d=>d[0]));if(Io(u)&&u[0][0]&&!s){const h=u[0],d=Ce(h);if(d.length===1&&M(d[0].categoryMatches)){const f=d[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===f}}{const f=le(d,(p,m)=>(m!==void 0&&(p[m.tokenTypeIdx]=!0,I(m.categoryMatches,g=>{p[g]=!0})),p),{});return function(){const p=this.LA(1);return f[p.tokenTypeIdx]===!0}}}return function(){const h=rs.call(this,a,l,So,o);return typeof h!="object"&&h===0}}}function Io(n,e=!0){const t=new Set;for(const r of n){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function rs(n,e,t,r){const i=n[e](t);let s=i.start;return s===void 0&&(s=wo(i,No(Au(i.atnStartState))),i.start=s),gu.apply(this,[i,s,t,r])}function gu(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let c=Ru(i,o);if(c===void 0&&(c=yu.apply(this,[n,i,o,s,t,r])),c===Ur)return vu(a,i,o);if(c.isAcceptState===!0)return c.prediction;i=c,a.push(o),o=this.LA(s++)}}function yu(n,e,t,r,i,s){const a=function(l,u,h){const d=new ns,f=[];for(const m of l.elements){if(h.is(m.alt)===!1)continue;if(m.state.type===7){f.push(m);continue}const g=m.state.transitions.length;for(let v=0;v<g;v++){const y=Eu(m.state.transitions[v],u);y!==void 0&&d.add({state:y,alt:m.alt,stack:m.stack})}}let p;if(f.length===0&&d.size===1&&(p=d),p===void 0){p=new ns;for(const m of d.elements)Gr(m,p)}if(f.length>0&&!function(m){for(const g of m.elements)if(g.state.type===7)return!0;return!1}(p))for(const m of f)p.add(m);return p}(e.configs,t,i);if(a.size===0)return Co(n,e,t,Ur),Ur;let o=No(a);const c=function(l,u){let h;for(const d of l.elements)if(u.is(d.alt)===!0){if(h===void 0)h=d.alt;else if(h!==d.alt)return}return h}(a,i);if(c!==void 0)o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c;else if(function(l){if(function(h){for(const d of h.elements)if(d.state.type!==7)return!1;return!0}(l))return!0;const u=function(h){const d=new Map;for(const f of h){const p=$o(f,!1);let m=d.get(p);m===void 0&&(m={},d.set(p,m)),m[f.alt]=!0}return d}(l.elements);return function(h){for(const d of Array.from(h.values()))if(Object.keys(d).length>1)return!0;return!1}(u)&&!function(h){for(const d of Array.from(h.values()))if(Object.keys(d).length===1)return!0;return!1}(u)}(a)){const l=Zc(a.alts);o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l,Tu.apply(this,[n,r,a.alts,s])}return o=Co(n,e,t,o),o}function Tu(n,e,t,r){const i=[];for(let a=1;a<=e;a++)i.push(this.LA(a).tokenType);const s=n.atnStartState;r(function(a){const o=x(a.prefixPath,u=>wt(u)).join(", "),c=a.production.idx===0?"":a.production.idx;let l=`Ambiguous Alternatives Detected: <${a.ambiguityIndices.join(", ")}> in <${function(u){if(u instanceof de)return"SUBRULE";if(u instanceof te)return"OPTION";if(u instanceof ye)return"OR";if(u instanceof Se)return"AT_LEAST_ONE";if(u instanceof Ie)return"AT_LEAST_ONE_SEP";if(u instanceof ge)return"MANY_SEP";if(u instanceof V)return"MANY";if(u instanceof D)return"CONSUME";throw Error("non exhaustive match")}(a.production)}${c}> inside <${a.topLevelRule.name}> Rule,
112
- <${o}> may appears as a prefix path in all these alternatives.
113
- `;return l+=`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
114
- For Further details.`,l}({topLevelRule:s.rule,ambiguityIndices:t,production:s.production,prefixPath:i}))}function vu(n,e,t){const r=$e(e.configs.elements,a=>a.state.transitions);var i,s;return{actualToken:t,possibleTokenTypes:(i=r.filter(a=>a instanceof Ji).map(a=>a.tokenType),s=a=>a.tokenTypeIdx,i&&i.length?Ks(i,Xt(s)):[]),tokenPath:n}}function Ru(n,e){return n.edges[e.tokenTypeIdx]}function Eu(n,e){if(n instanceof Ji&&Ha(e,n.tokenType))return n.target}function No(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function Co(n,e,t,r){return r=wo(n,r),e.edges[t.tokenTypeIdx]=r,r}function wo(n,e){if(e===Ur)return e;const t=e.configs.key,r=n.states[t];return r!==void 0?r:(e.configs.finalize(),n.states[t]=e,e)}function Au(n){const e=new ns,t=n.transitions.length;for(let r=0;r<t;r++)Gr({state:n.transitions[r].target,alt:r,stack:[]},e);return e}function Gr(n,e){const t=n.state;if(t.type===7){if(n.stack.length>0){const i=[...n.stack];Gr({state:i.pop(),alt:n.alt,stack:i},e)}else e.add(n);return}t.epsilonOnlyTransitions||e.add(n);const r=t.transitions.length;for(let i=0;i<r;i++){const s=ku(n,t.transitions[i]);s!==void 0&&Gr(s,e)}}function ku(n,e){if(e instanceof Ro)return{state:e.target,alt:n.alt,stack:n.stack};if(e instanceof Zi){const t=[...n.stack,e.followState];return{state:e.target,alt:n.alt,stack:t}}}class $u{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 Oo(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new ss;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new is(e.startOffset,e.image.length,hi(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const t=e.container;if(t){const r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new is(s.startOffset,s.image.length,hi(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let r=this.current,i=!1;if(r.content.length>0)r.content.push(...t);else{for(;r.container;){const s=r.container.content.indexOf(r);if(s>0){r.container.content.splice(s,0,...t),i=!0;break}r=r.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 r=this.nodeStack.pop();(r==null?void 0:r.content.length)===0&&this.removeNode(r)}}class Lo{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const r=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(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class is extends Lo{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,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=r}}class ss extends Lo{constructor(){super(...arguments),this.content=new Ns(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:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}return{start:z.create(0,0),end:z.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 Ns extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Ns.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(const t of e)t.container=this.parent}}class Oo extends ss{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const as=Symbol("Datatype");function os(n){return n.$type===as}const _o=n=>n.endsWith("\u200B")?n:n+"\u200B";class bo{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,r=e.LanguageMetaData.mode==="production";this.wrapper=new Cu(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,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 xu extends bo{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new $u,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 r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(_o(e.name),this.startImplementation(r,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(ma(e))return as;{const t=Si(e);return t??e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.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(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===as&&(a.value="")}let s;try{s=t(r)}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 r=e.startOffset;for(let i=0;i<t.length;i++)if(t[i].startOffset>r)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,r){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,r),{assignment:o,isCrossRef:c}=this.getAssignment(r),l=this.current;if(o){const u=lt(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,u,a,c)}else if(os(l)){let u=i.image;lt(r)||(u=this.converter.convert(u,a).toString()),l.value+=u}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i,s){let a;this.isRecording()||r||(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,r){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(os(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 r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);const i={$type:e};this.stack.push(i),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return function(t){for(const[r,i]of Object.entries(t))r.startsWith("$")||(Array.isArray(i)?i.forEach((s,a)=>{ae(s)&&(s.$container=t,s.$containerProperty=r,s.$containerIndex=a)}):ae(i)&&(i.$container=t,i.$containerProperty=r))}(e),this.nodeBuilder.construct(e),this.stack.pop(),os(e)?this.converter.convert(e.value,e.$cstNode):(function(t,r){const i=t.getTypeMetaData(r.$type),s=r;for(const a of i.properties)a.defaultValue!==void 0&&s[a.name]===void 0&&(s[a.name]=aa(a.defaultValue))}(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=dr(e,ct);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Ti(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(o=s&&typeof r=="string"?this.linker.buildReference(a,t,i,r):r,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 r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class Su{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 Po extends Su{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 Iu extends bo{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 r=this.wrapper.DEFINE_RULE(_o(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,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 Nu={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Po};class Cu extends uu{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Nu),{lookaheadStrategy:r?new Yi({maxLookahead:t.maxLookahead}):new mu({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,r){return this.subrule(e,t,{ARGS:[r]})}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 Mo(n,e,t){return function(r,i){const s=ua(i,!1),a=ee(i.rules).filter(we).filter(o=>s.has(o));for(const o of a){const c=Object.assign(Object.assign({},r),{consume:1,optional:1,subrule:1,many:1,or:1});r.parser.rule(o,pt(c,o.definition))}}({parser:e,tokens:t,ruleNames:new Map},n),e}function pt(n,e,t=!1){let r;if(lt(e))r=function(s,a){const o=s.consume++,c=s.tokens[a.value];if(!c)throw new Error("Could not find token for keyword: "+a.value);return()=>s.parser.consume(o,c,a)}(n,e);else if(ur(e))r=function(s,a){const o=Ii(a);return()=>s.parser.action(o,a)}(n,e);else if(ct(e))r=pt(n,e.terminal);else if(Ti(e))r=Do(n,e);else if(ut(e))r=function(s,a){const o=a.rule.ref;if(we(o)){const c=s.subrule++,l=o.fragment,u=a.arguments.length>0?function(h,d){const f=d.map(p=>Ye(p.value));return p=>{const m={};for(let g=0;g<f.length;g++){const v=h.parameters[g],y=f[g];m[v.name]=y(p)}return m}}(o,a.arguments):()=>({});return h=>s.parser.subrule(c,Go(s,o),l,a,u(h))}if(ot(o)){const c=s.consume++,l=cs(s,o.name);return()=>s.parser.consume(c,l,a)}if(!o)throw new Xs(a.$cstNode,`Undefined rule: ${a.rule.$refText}`);en()}(n,e);else if(ta(e))r=function(s,a){if(a.elements.length===1)return pt(s,a.elements[0]);{const o=[];for(const l of a.elements){const u={ALT:pt(s,l,!0)},h=Fr(l);h&&(u.GATE=Ye(h)),o.push(u)}const c=s.or++;return l=>s.parser.alternatives(c,o.map(u=>{const h={ALT:()=>u.ALT(l)},d=u.GATE;return d&&(h.GATE=()=>d(l)),h}))}}(n,e);else if(na(e))r=function(s,a){if(a.elements.length===1)return pt(s,a.elements[0]);const o=[];for(const d of a.elements){const f={ALT:pt(s,d,!0)},p=Fr(d);p&&(f.GATE=Ye(p)),o.push(f)}const c=s.or++,l=(d,f)=>`uGroup_${d}_${f.getRuleStack().join("-")}`,u=d=>s.parser.alternatives(c,o.map((f,p)=>{const m={ALT:()=>!0},g=s.parser;m.ALT=()=>{if(f.ALT(d),!g.isRecording()){const y=l(c,g);g.unorderedGroups.get(y)||g.unorderedGroups.set(y,[]);const T=g.unorderedGroups.get(y);(T==null?void 0:T[p])===void 0&&(T[p]=!0)}};const v=f.GATE;return m.GATE=v?()=>v(d):()=>{const y=g.unorderedGroups.get(l(c,g));return!(y!=null&&y[p])},m})),h=Uo(s,Fr(a),u,"*");return d=>{h(d),s.parser.isRecording()||s.parser.unorderedGroups.delete(l(c,s.parser))}}(n,e);else if(vi(e))r=function(s,a){const o=a.elements.map(c=>pt(s,c));return c=>o.forEach(l=>l(c))}(n,e);else{if(i=e,!b.isInstance(i,Tn))throw new Xs(e.$cstNode,`Unexpected element type: ${e.$type}`);{const s=n.consume++;r=()=>n.parser.consume(s,et,e)}}var i;return Uo(n,t?void 0:Fr(e),r,e.cardinality)}function Ye(n){if(e=n,b.isInstance(e,sn)){const t=Ye(n.left),r=Ye(n.right);return i=>t(i)||r(i)}if(function(t){return b.isInstance(t,rn)}(n)){const t=Ye(n.left),r=Ye(n.right);return i=>t(i)&&r(i)}if(function(t){return b.isInstance(t,cn)}(n)){const t=Ye(n.value);return r=>!t(r)}if(function(t){return b.isInstance(t,ln)}(n)){const t=n.parameter.ref.name;return r=>r!==void 0&&r[t]===!0}if(function(t){return b.isInstance(t,nn)}(n)){const t=!!n.true;return()=>t}var e;en()}function Fr(n){if(vi(n))return n.guardCondition}function Do(n,e,t=e.terminal){if(t){if(ut(t)&&we(t.rule.ref)){const r=t.rule.ref,i=n.subrule++;return s=>n.parser.subrule(i,Go(n,r),!1,e,s)}if(ut(t)&&ot(t.rule.ref)){const r=n.consume++,i=cs(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}if(lt(t)){const r=n.consume++,i=cs(n,t.value);return()=>n.parser.consume(r,i,e)}throw new Error("Could not build cross reference parser")}{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=fa(e.type.ref),i=r==null?void 0:r.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Ii(e.type.ref));return Do(n,e,i)}}function Uo(n,e,t,r){const i=e&&Ye(e);if(!r){if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:vo(),GATE:()=>!i(a)}])}return t}if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}if(r==="+"){const s=n.many++;if(i){const a=n.or++;return o=>n.parser.alternatives(a,[{ALT:()=>n.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:vo(),GATE:()=>!i(o)}])}return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}en()}function Go(n,e){const t=function(i,s){if(we(s))return s.name;if(i.ruleNames.has(s))return i.ruleNames.get(s);{let a=s,o=a.$container,c=s.$type;for(;!we(o);)(vi(o)||ta(o)||na(o))&&(c=o.elements.indexOf(a).toString()+":"+c),a=o,o=o.$container;return c=o.name+":"+c,i.ruleNames.set(s,c),c}}(n,e),r=n.parser.getRule(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function cs(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function wu(n){const e=function(t){const r=t.Grammar,i=t.parser.Lexer,s=new xu(t);return Mo(r,s,i.definition)}(n);return e.finalize(),e}class Fo{constructor(){this.diagnostics=[]}buildTokens(e,t){const r=ee(ua(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&$i(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(ot).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Ni(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=$i(t)?Te.SKIPPED:"hidden"),i}requiresCustomPattern(e){return!(!e.flags.includes("u")&&!e.flags.includes("s"))||!(!e.source.includes("?<=")&&!e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(we).flatMap(i=>wn(i).filter(lt)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(r!=null&&r.caseInsensitive)))}buildKeywordToken(e,t,r){const i=this.buildKeywordPattern(e,r),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(function(r){return Array.prototype.map.call(r,i=>/\w/.test(i)?`[${i.toLowerCase()}${i.toUpperCase()}]`:gr(i)).join("")}(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&El("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class Bo{convert(e,t){let r=t.grammarSource;if(Ti(r)&&(r=function(i){if(i.terminal)return i.terminal;if(i.type.ref){const s=fa(i.type.ref);return s==null?void 0:s.terminal}}(r)),ut(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,r){var i;switch(e.name.toUpperCase()){case"INT":return qe.convertInt(t);case"STRING":return qe.convertString(t);case"ID":return qe.convertID(t)}switch((i=function(s){var a,o,c;return ot(s)?(o=(a=s.type)===null||a===void 0?void 0:a.name)!==null&&o!==void 0?o:"string":(c=Si(s))!==null&&c!==void 0?c:s.name}(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return qe.convertNumber(t);case"boolean":return qe.convertBoolean(t);case"bigint":return qe.convertBigint(t);case"date":return qe.convertDate(t);default:return t}}}var qe;(function(n){function e(t){switch(t){case"b":return"\b";case"f":return"\f";case"n":return`
115
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return t}}n.convertString=function(t){let r="";for(let i=1;i<t.length-1;i++){const s=t.charAt(i);s==="\\"?r+=e(t.charAt(++i)):r+=s}return r},n.convertID=function(t){return t.charAt(0)==="^"?t.substring(1):t},n.convertInt=function(t){return parseInt(t)},n.convertBigint=function(t){return BigInt(t)},n.convertDate=function(t){return new Date(t)},n.convertNumber=function(t){return Number(t)},n.convertBoolean=function(t){return t.toLowerCase()==="true"}})(qe||(qe={}));var B=Yc();let Br=0;const Kr=Symbol("OperationCancelled");function Vr(n){return n===Kr}async function Ne(n){if(n===B.CancellationToken.None)return;const e=performance.now();if(e-Br>=10&&(Br=e,await new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)}),Br=performance.now()),n.isCancellationRequested)throw Kr}class ls{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class zn{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(const r of e)if(zn.isIncremental(r)){const i=Ho(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),c=Math.max(i.end.line,0);let l=this._lineOffsets;const u=Vo(r.text,!1,s);if(c-o===u.length)for(let d=0,f=u.length;d<f;d++)l[d+o+1]=u[d];else u.length<1e4?l.splice(o+1,c-o,...u):this._lineOffsets=l=l.slice(0,o+1).concat(u,l.slice(c+1));const h=r.text.length-(a-s);if(h!==0)for(let d=o+1+u.length,f=l.length;d<f;d++)l[d]=l[d]+h}else{if(!zn.isFull(r))throw new Error("Unknown change event received");this._content=r.text,this._lineOffsets=void 0}this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Vo(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let r=0,i=t.length;if(i===0)return{line:0,character:e};for(;r<i;){const a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}const s=r-1;return{line:s,character:(e=this.ensureBeforeEOL(e,t[s]))-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const r=t[e.line];if(e.character<=0)return r;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(r+e.character,i);return this.ensureBeforeEOL(s,r)}ensureBeforeEOL(e,t){for(;e>t&&jo(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 us,Ko;function ds(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);ds(r,e),ds(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;){const c=e(r[s],i[a]);n[o++]=c<=0?r[s++]:i[a++]}for(;s<r.length;)n[o++]=r[s++];for(;a<i.length;)n[o++]=i[a++];return n}function Vo(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);jo(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function jo(n){return n===13||n===10}function Ho(n){const e=n.start,t=n.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Lu(n){const e=Ho(n.range);return e!==n.range?{newText:n.newText,range:e}:n}(function(n){n.create=function(e,t,r,i){return new zn(e,t,r,i)},n.update=function(e,t,r){if(e instanceof zn)return e.update(t,r),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},n.applyEdits=function(e,t){const r=e.getText(),i=ds(t.map(Lu),(o,c)=>{const l=o.range.start.line-c.range.start.line;return l===0?o.range.start.character-c.range.start.character:l});let s=0;const a=[];for(const o of i){const c=e.offsetAt(o.range.start);if(c<s)throw new Error("Overlapping edit");c>s&&a.push(r.substring(s,c)),o.newText.length&&a.push(o.newText),s=e.offsetAt(o.range.end)}return a.push(r.substr(s)),a.join("")}})(us||(us={})),(()=>{var n={470:i=>{function s(c){if(typeof c!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(c))}function a(c,l){for(var u,h="",d=0,f=-1,p=0,m=0;m<=c.length;++m){if(m<c.length)u=c.charCodeAt(m);else{if(u===47)break;u=47}if(u===47){if(!(f===m-1||p===1))if(f!==m-1&&p===2){if(h.length<2||d!==2||h.charCodeAt(h.length-1)!==46||h.charCodeAt(h.length-2)!==46){if(h.length>2){var g=h.lastIndexOf("/");if(g!==h.length-1){g===-1?(h="",d=0):d=(h=h.slice(0,g)).length-1-h.lastIndexOf("/"),f=m,p=0;continue}}else if(h.length===2||h.length===1){h="",d=0,f=m,p=0;continue}}l&&(h.length>0?h+="/..":h="..",d=2)}else h.length>0?h+="/"+c.slice(f+1,m):h=c.slice(f+1,m),d=m-f-1;f=m,p=0}else u===46&&p!==-1?++p:p=-1}return h}var o={resolve:function(){for(var c,l="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var d;h>=0?d=arguments[h]:(c===void 0&&(c=process.cwd()),d=c),s(d),d.length!==0&&(l=d+"/"+l,u=d.charCodeAt(0)===47)}return l=a(l,!u),u?l.length>0?"/"+l:"/":l.length>0?l:"."},normalize:function(c){if(s(c),c.length===0)return".";var l=c.charCodeAt(0)===47,u=c.charCodeAt(c.length-1)===47;return(c=a(c,!l)).length!==0||l||(c="."),c.length>0&&u&&(c+="/"),l?"/"+c:c},isAbsolute:function(c){return s(c),c.length>0&&c.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var c,l=0;l<arguments.length;++l){var u=arguments[l];s(u),u.length>0&&(c===void 0?c=u:c+="/"+u)}return c===void 0?".":o.normalize(c)},relative:function(c,l){if(s(c),s(l),c===l||(c=o.resolve(c))===(l=o.resolve(l)))return"";for(var u=1;u<c.length&&c.charCodeAt(u)===47;++u);for(var h=c.length,d=h-u,f=1;f<l.length&&l.charCodeAt(f)===47;++f);for(var p=l.length-f,m=d<p?d:p,g=-1,v=0;v<=m;++v){if(v===m){if(p>m){if(l.charCodeAt(f+v)===47)return l.slice(f+v+1);if(v===0)return l.slice(f+v)}else d>m&&(c.charCodeAt(u+v)===47?g=v:v===0&&(g=0));break}var y=c.charCodeAt(u+v);if(y!==l.charCodeAt(f+v))break;y===47&&(g=v)}var T="";for(v=u+g+1;v<=h;++v)v!==h&&c.charCodeAt(v)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+l.slice(f+g):(f+=g,l.charCodeAt(f)===47&&++f,l.slice(f))},_makeLong:function(c){return c},dirname:function(c){if(s(c),c.length===0)return".";for(var l=c.charCodeAt(0),u=l===47,h=-1,d=!0,f=c.length-1;f>=1;--f)if((l=c.charCodeAt(f))===47){if(!d){h=f;break}}else d=!1;return h===-1?u?"/":".":u&&h===1?"//":c.slice(0,h)},basename:function(c,l){if(l!==void 0&&typeof l!="string")throw new TypeError('"ext" argument must be a string');s(c);var u,h=0,d=-1,f=!0;if(l!==void 0&&l.length>0&&l.length<=c.length){if(l.length===c.length&&l===c)return"";var p=l.length-1,m=-1;for(u=c.length-1;u>=0;--u){var g=c.charCodeAt(u);if(g===47){if(!f){h=u+1;break}}else m===-1&&(f=!1,m=u+1),p>=0&&(g===l.charCodeAt(p)?--p==-1&&(d=u):(p=-1,d=m))}return h===d?d=m:d===-1&&(d=c.length),c.slice(h,d)}for(u=c.length-1;u>=0;--u)if(c.charCodeAt(u)===47){if(!f){h=u+1;break}}else d===-1&&(f=!1,d=u+1);return d===-1?"":c.slice(h,d)},extname:function(c){s(c);for(var l=-1,u=0,h=-1,d=!0,f=0,p=c.length-1;p>=0;--p){var m=c.charCodeAt(p);if(m!==47)h===-1&&(d=!1,h=p+1),m===46?l===-1?l=p:f!==1&&(f=1):l!==-1&&(f=-1);else if(!d){u=p+1;break}}return l===-1||h===-1||f===0||f===1&&l===h-1&&l===u+1?"":c.slice(l,h)},format:function(c){if(c===null||typeof c!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof c);return function(l,u){var h=u.dir||u.root,d=u.base||(u.name||"")+(u.ext||"");return h?h===u.root?h+d:h+"/"+d:d}(0,c)},parse:function(c){s(c);var l={root:"",dir:"",base:"",ext:"",name:""};if(c.length===0)return l;var u,h=c.charCodeAt(0),d=h===47;d?(l.root="/",u=1):u=0;for(var f=-1,p=0,m=-1,g=!0,v=c.length-1,y=0;v>=u;--v)if((h=c.charCodeAt(v))!==47)m===-1&&(g=!1,m=v+1),h===46?f===-1?f=v:y!==1&&(y=1):f!==-1&&(y=-1);else if(!g){p=v+1;break}return f===-1||m===-1||y===0||y===1&&f===m-1&&f===p+1?m!==-1&&(l.base=l.name=p===0&&d?c.slice(1,m):c.slice(p,m)):(p===0&&d?(l.name=c.slice(1,f),l.base=c.slice(1,m)):(l.name=c.slice(p,f),l.base=c.slice(p,m)),l.ext=c.slice(f,m)),p>0?l.dir=c.slice(0,p-1):d&&(l.dir="/"),l},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 n[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 r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>d,Utils:()=>fe}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function c(E,R){if(!E.scheme&&R)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 l="",u="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{constructor(R,A,S,O,L,w=!1){Qe(this,"scheme");Qe(this,"authority");Qe(this,"path");Qe(this,"query");Qe(this,"fragment");typeof R=="object"?(this.scheme=R.scheme||l,this.authority=R.authority||l,this.path=R.path||l,this.query=R.query||l,this.fragment=R.fragment||l):(this.scheme=function(Re,ie){return Re||ie?Re:"file"}(R,w),this.authority=A||l,this.path=function(Re,ie){switch(Re){case"https":case"http":case"file":ie?ie[0]!==u&&(ie=u+ie):ie=u}return ie}(this.scheme,S||l),this.query=O||l,this.fragment=L||l,c(this,w))}static isUri(R){return R instanceof d||!!R&&typeof R.authority=="string"&&typeof R.fragment=="string"&&typeof R.path=="string"&&typeof R.query=="string"&&typeof R.scheme=="string"&&typeof R.fsPath=="string"&&typeof R.with=="function"&&typeof R.toString=="function"}get fsPath(){return y(this)}with(R){if(!R)return this;let{scheme:A,authority:S,path:O,query:L,fragment:w}=R;return A===void 0?A=this.scheme:A===null&&(A=l),S===void 0?S=this.authority:S===null&&(S=l),O===void 0?O=this.path:O===null&&(O=l),L===void 0?L=this.query:L===null&&(L=l),w===void 0?w=this.fragment:w===null&&(w=l),A===this.scheme&&S===this.authority&&O===this.path&&L===this.query&&w===this.fragment?this:new p(A,S,O,L,w)}static parse(R,A=!1){const S=h.exec(R);return S?new p(S[2]||l,P(S[4]||l),P(S[5]||l),P(S[7]||l),P(S[9]||l),A):new p(l,l,l,l,l)}static file(R){let A=l;if(i&&(R=R.replace(/\\/g,u)),R[0]===u&&R[1]===u){const S=R.indexOf(u,2);S===-1?(A=R.substring(2),R=u):(A=R.substring(2,S),R=R.substring(S)||u)}return new p("file",A,R,l,l)}static from(R){const A=new p(R.scheme,R.authority,R.path,R.query,R.fragment);return c(A,!0),A}toString(R=!1){return T(this,R)}toJSON(){return this}static revive(R){if(R){if(R instanceof d)return R;{const A=new p(R);return A._formatted=R.external,A._fsPath=R._sep===f?R.fsPath:null,A}}return R}}const f=i?1:void 0;class p extends d{constructor(){super(...arguments);Qe(this,"_formatted",null);Qe(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=y(this)),this._fsPath}toString(A=!1){return A?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){const A={$mid:1};return this._fsPath&&(A.fsPath=this._fsPath,A._sep=f),this._formatted&&(A.external=this._formatted),this.path&&(A.path=this.path),this.scheme&&(A.scheme=this.scheme),this.authority&&(A.authority=this.authority),this.query&&(A.query=this.query),this.fragment&&(A.fragment=this.fragment),A}}const m={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 g(E,R,A){let S,O=-1;for(let L=0;L<E.length;L++){const w=E.charCodeAt(L);if(w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===45||w===46||w===95||w===126||R&&w===47||A&&w===91||A&&w===93||A&&w===58)O!==-1&&(S+=encodeURIComponent(E.substring(O,L)),O=-1),S!==void 0&&(S+=E.charAt(L));else{S===void 0&&(S=E.substr(0,L));const Re=m[w];Re!==void 0?(O!==-1&&(S+=encodeURIComponent(E.substring(O,L)),O=-1),S+=Re):O===-1&&(O=L)}}return O!==-1&&(S+=encodeURIComponent(E.substring(O))),S!==void 0?S:E}function v(E){let R;for(let A=0;A<E.length;A++){const S=E.charCodeAt(A);S===35||S===63?(R===void 0&&(R=E.substr(0,A)),R+=m[S]):R!==void 0&&(R+=E[A])}return R!==void 0?R:E}function y(E,R){let A;return A=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&&(A=A.replace(/\//g,"\\")),A}function T(E,R){const A=R?v:g;let S="",{scheme:O,authority:L,path:w,query:Re,fragment:ie}=E;if(O&&(S+=O,S+=":"),(L||O==="file")&&(S+=u,S+=u),L){let K=L.indexOf("@");if(K!==-1){const it=L.substr(0,K);L=L.substr(K+1),K=it.lastIndexOf(":"),K===-1?S+=A(it,!1,!1):(S+=A(it.substr(0,K),!1,!1),S+=":",S+=A(it.substr(K+1),!1,!0)),S+="@"}L=L.toLowerCase(),K=L.lastIndexOf(":"),K===-1?S+=A(L,!1,!0):(S+=A(L.substr(0,K),!1,!0),S+=L.substr(K))}if(w){if(w.length>=3&&w.charCodeAt(0)===47&&w.charCodeAt(2)===58){const K=w.charCodeAt(1);K>=65&&K<=90&&(w=`/${String.fromCharCode(K+32)}:${w.substr(3)}`)}else if(w.length>=2&&w.charCodeAt(1)===58){const K=w.charCodeAt(0);K>=65&&K<=90&&(w=`${String.fromCharCode(K+32)}:${w.substr(2)}`)}S+=A(w,!0,!1)}return Re&&(S+="?",S+=A(Re,!1,!1)),ie&&(S+="#",S+=R?ie:g(ie,!1,!1)),S}function $(E){try{return decodeURIComponent(E)}catch{return E.length>3?E.substr(0,3)+$(E.substr(3)):E}}const _=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function P(E){return E.match(_)?E.replace(_,R=>$(R)):E}var U=t(470);const Q=U.posix||U,re="/";var fe;(function(E){E.joinPath=function(R,...A){return R.with({path:Q.join(R.path,...A)})},E.resolvePath=function(R,...A){let S=R.path,O=!1;S[0]!==re&&(S=re+S,O=!0);let L=Q.resolve(S,...A);return O&&L[0]===re&&!R.authority&&(L=L.substring(1)),R.with({path:L})},E.dirname=function(R){if(R.path.length===0||R.path===re)return R;let A=Q.dirname(R.path);return A.length===1&&A.charCodeAt(0)===46&&(A=""),R.with({path:A})},E.basename=function(R){return Q.basename(R.path)},E.extname=function(R){return Q.extname(R.path)}})(fe||(fe={}))})(),Ko=r})();const{URI:mt,Utils:Gn}=Ko;var nt,G;(function(n){n.basename=Gn.basename,n.dirname=Gn.dirname,n.extname=Gn.extname,n.joinPath=Gn.joinPath,n.resolvePath=Gn.resolvePath,n.equals=function(e,t){return(e==null?void 0:e.toString())===(t==null?void 0:t.toString())},n.relative=function(e,t){const r=typeof e=="string"?e:e.path,i=typeof t=="string"?t:t.path,s=r.split("/").filter(c=>c.length>0),a=i.split("/").filter(c=>c.length>0);let o=0;for(;o<s.length&&s[o]===a[o];o++);return"../".repeat(s.length-o)+a.slice(o).join("/")},n.normalize=function(e){return mt.parse(e.toString()).toString()}})(nt||(nt={})),function(n){n[n.Changed=0]="Changed",n[n.Parsed=1]="Parsed",n[n.IndexedContent=2]="IndexedContent",n[n.ComputedScopes=3]="ComputedScopes",n[n.Linked=4]="Linked",n[n.IndexedReferences=5]="IndexedReferences",n[n.Validated=6]="Validated"}(G||(G={}));class Ou{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=B.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??mt.parse(e.uri),B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if(typeof t=="string"){const i=this.parse(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}{const i=this.parse(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,r){if(typeof t=="string"){const i=await this.parseAsync(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}{const i=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,r,i){let s;if(r)s={parseResult:e,uri:t,state:G.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:G.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const c=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:c})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=G.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){const r=this.serviceRegistry;let i;return()=>i??(i=us.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class _u{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 r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).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(),r=this.documentMap.get(t);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=G.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=G.Changed,this.documentMap.delete(t)),r}}const hs=Symbol("ref_resolving");class bu{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 r of xt(e.parseResult.value))await Ne(t),sa(r).forEach(i=>this.doLink(i,e))}doLink(e,t){var r;const i=e.reference;if(i._ref===void 0){i._ref=hs;try{const s=this.getCandidate(e);if(Xn(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const t=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return t??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o,c;if(ae(this._ref))return this._ref;if(typeof(c=this._nodeDescription)=="object"&&c!==null&&typeof c.name=="string"&&typeof c.type=="string"&&typeof c.path=="string"){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=hs;const l=Ri(e).$document,u=s.getLinkedNode({reference:a,container:e,property:t});if(u.error&&l&&l.state<G.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===hs)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 Xn(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const r=this.getCandidate(e);if(Xn(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(t=r.message)!==null&&t!==void 0?t:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);return t?this.astNodeLocator.getAstNode(t.parseResult.value,e.path):void 0}createLinkingError(e,t){const r=Ri(e.container).$document;r&&r.state<G.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}}class Pu{getName(e){if(function(t){return typeof t.name=="string"}(e))return e.name}getNameNode(e){return ha(e.$cstNode,"name")}}class Mu{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=function(i){var s;const a=i.astNode;for(;a===((s=i.container)===null||s===void 0?void 0:s.astNode);){const o=dr(i.grammarSource,ct);if(o)return o;i=i.container}}(e),r=e.astNode;if(t&&r){const i=r[t.feature];if(Ue(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Ue(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||function(s,a){for(;s.container;)if((s=s.container)===a)return!0;return!1}(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t!=null&&t.$cstNode){const r=this.nameProvider.getNameNode(t);return r??t.$cstNode}}findReferences(e,t){const r=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.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))),r.push(...i),ee(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=Je(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:Jn(t),local:!0}}}}class jr{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return ui.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 r=this.map.get(e);if(r){const i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.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 r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}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,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ee(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return ee(this.map.keys())}values(){return ee(this.map.values()).flat()}entriesGroupedByKey(){return ee(this.map.entries())}}class Wo{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,r]of e)this.set(t,r)}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)}}class Du{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,r=Ei,i=B.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await Ne(i),this.exportNode(a,s,t);return s}exportNode(e,t,r){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,t=B.CancellationToken.None){const r=e.parseResult.value,i=new jr;for(const s of wn(r))await Ne(t),this.processNode(s,e,i);return i}processNode(e,t,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,t))}}}class zo{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0&&i}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){return(this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e))||(this.outerScope?this.outerScope.getElement(e):void 0)}}class Uu{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0&&i;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;return this.elements.get(t)||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=ee(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class Yo{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 Gu extends Yo{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 r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Fu extends Yo{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,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){const s=r();return i.set(t,s),s}}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 r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class Bu extends Gu{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class Ku{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 Bu(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=Je(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(ee(o).filter(c=>this.reflection.isSubtype(c.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,r){return new zo(ee(e),t,r)}createScopeForNodes(e,t,r){const i=ee(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new zo(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Uu(this.indexManager.allElements(e)))}}function qo(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class Vu{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 r=t??{},i=t==null?void 0:t.replacer,s=(o,c)=>this.replacer(o,c,r),a=i?(o,c)=>i(o,c,s):s;try{return this.currentDocument=Je(e),JSON.stringify(e,a,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const r=t??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,t,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var c,l,u,h;if(!this.ignoreProperties.has(e)){if(Ue(t)){const d=t.ref,f=r?t.$refText:void 0;if(d){const p=Je(d);let m="";return this.currentDocument&&this.currentDocument!==p&&(m=o?o(p.uri,t):p.uri.toString()),{$ref:`${m}#${this.astNodeLocator.getAstNodePath(d)}`,$refText:f}}return{$error:(l=(c=t.error)===null||c===void 0?void 0:c.message)!==null&&l!==void 0?l:"Could not resolve reference",$refText:f}}if(ae(t)){let d;if(s&&(d=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),e&&!t.$document||!(d!=null&&d.$textRegion)||(d.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(d!=null||(d=Object.assign({},t)),d.$sourceText=(h=t.$cstNode)===null||h===void 0?void 0:h.text),a){d!=null||(d=Object.assign({},t));const f=this.commentProvider.getComment(t);f&&(d.$comment=f.replace(/\r/g,""))}return d??t}return t}}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(i=>!i.startsWith("$")).forEach(i=>{const s=function(a,o){return a&&o?xi(a,o,a.astNode,!0):[]}(e.$cstNode,i).map(t);s.length!==0&&(r[i]=s)}),e}}linkNode(e,t,r,i,s,a){for(const[c,l]of Object.entries(e))if(Array.isArray(l))for(let u=0;u<l.length;u++){const h=l[u];qo(h)?l[u]=this.reviveReference(e,c,t,h,r):ae(h)&&this.linkNode(h,t,r,e,c,u)}else qo(l)?e[c]=this.reviveReference(e,c,t,l,r):ae(l)&&this.linkNode(l,t,r,e,c);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,r,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const c=this.getRefNode(r,i.$ref,s.uriConverter);if(ae(c))return a||(a=this.nameProvider.getName(c)),{$refText:a??"",ref:c};o=c}if(o){const c={$refText:a??""};return c.error={container:e,property:t,message:o,reference:c},c}}getRefNode(e,t,r){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 c=r?r(t):mt.parse(t),l=this.langiumDocuments.getDocument(c);return l?l.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):mt.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 ju{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 r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(t.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var t,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(t=this.textDocuments)===null||t===void 0?void 0:t.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=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 Fn(n){return{code:n}}var Hr,Me;(function(n){n.all=["fast","slow","built-in"]})(Hr||(Hr={}));class Hu{constructor(e){this.entries=new jr,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const c={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,c)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:r};this.addEntry(i,o)}else en()}}wrapValidationException(e,t){return async(r,i,s)=>{await this.handleException(()=>e.call(t,r,i,s),"An error occurred during validation",i,r)}}async handleException(e,t,r,i){try{await e()}catch(s){if(Vr(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack),r("error",`${t}: ${s instanceof Error?s.message:String(s)}`,{node:i})}}addEntry(e,t){if(e!=="AstNode")for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t);else this.entries.add("AstNode",t)}getChecks(e,t){let r=ee(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.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,r){return async(i,s,a,o)=>{await this.handleException(()=>e.call(r,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Wu{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=B.CancellationToken.None){const i=e.parseResult,s=[];if(await Ne(r),(!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)===Me.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)===Me.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)===Me.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(Vr(a))throw a;console.error("An error occurred during validation:",a)}return await Ne(r),s}processLexingErrors(e,t,r){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const c of o){const l=(a=c.severity)!==null&&a!==void 0?a:"error",u={severity:fs(l),range:{start:{line:c.line-1,character:c.column-1},end:{line:c.line-1,character:c.column+c.length-1}},message:c.message,data:Yu(l),source:this.getSource()};t.push(u)}}processParsingErrors(e,t,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=hi(i.token);if(s){const a={severity:fs("error"),range:s,message:i.message,data:Fn(Me.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:Me.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,r=B.CancellationToken.None){const i=[],s=(a,o,c)=>{i.push(this.toDiagnostic(a,o,c))};return await this.validateAstBefore(e,t,s,r),await this.validateAstNodes(e,t,s,r),await this.validateAstAfter(e,t,s,r),i}async validateAstBefore(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await Ne(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,r,i=B.CancellationToken.None){await Promise.all(xt(e).map(async s=>{await Ne(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,r,i)}))}async validateAstAfter(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await Ne(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,r){return{message:t,range:zu(r),severity:fs(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function zu(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=ha(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=kl(n.node.$cstNode,n.keyword,n.index)),e!=null||(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function fs(n){switch(n){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+n)}}function Yu(n){switch(n){case"error":return Fn(Me.LexingError);case"warning":return Fn(Me.LexingWarning);case"info":return Fn(Me.LexingInfo);case"hint":return Fn(Me.LexingHint);default:throw new Error("Invalid diagnostic severity: "+n)}}(function(n){n.LexingError="lexing-error",n.LexingWarning="lexing-warning",n.LexingInfo="lexing-info",n.LexingHint="lexing-hint",n.ParsingError="parsing-error",n.LinkingError="linking-error"})(Me||(Me={}));class qu{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){const i=r??Je(e);t!=null||(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 c;return a??(a=Jn((c=this.nameProvider.getNameNode(e))!==null&&c!==void 0?c:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Jn(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class Xu{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=B.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of xt(i))await Ne(t),sa(s).filter(a=>!Xn(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;const i=Je(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Jn(r),local:nt.equals(t.documentUri,i)}}}class Qu{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}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((r,i)=>{if(!r||i.length===0)return r;const s=i.indexOf(this.indexSeparator);if(s>0){const a=i.substring(0,s),o=parseInt(i.substring(s+1)),c=r[a];return c==null?void 0:c[o]}return r[i]},e)}}var Bn,Ju=qc();class Zu{constructor(e){this._ready=new ls,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Ju.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=(r=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&r!==void 0&&r}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const r=e.settings[t];this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}(function(n){n.create=function(e){return{dispose:async()=>await e()}}})(Bn||(Bn={}));class ed{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new jr,this.documentPhaseListeners=new jr,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=G.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={},r=B.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===G.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=G.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const c=this.buildState.get(o),l=(i=c==null?void 0:c.result)===null||i===void 0?void 0:i.validationChecks;if(l){const u=((s=t.validation.categories)!==null&&s!==void 0?s:Hr.all).filter(h=>!l.includes(h));u.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:u})},result:c.result}),a.state=G.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=G.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=B.CancellationToken.None){this.currentState=G.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=G.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,G.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await Ne(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<G.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],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(r=>r.error!==void 0)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Bn.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,G.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,G.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,G.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,G.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,G.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,G.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);s&&!s.completed||this.buildState.set(i,{completed:!1,options:t,result:s==null?void 0:s.result})}}async runCancelable(e,t,r,i){const s=e.filter(o=>o.state<t);for(const o of s)await Ne(r),await i(o),o.state=t,await this.notifyDocumentPhase(o,t,r);const a=e.filter(o=>o.state===t);await this.notifyBuildPhase(a,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Bn.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Bn.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r!=null||(r=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):r.isCancellationRequested?Promise.reject(Kr):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),c.dispose(),i){const l=this.langiumDocuments.getDocument(i);s(l==null?void 0:l.uri)}else s(void 0)}),c=r.onCancellationRequested(()=>{o.dispose(),c.dispose(),a(Kr)})})}async notifyDocumentPhase(e,t,r){const i=this.documentPhaseListeners.get(t).slice();for(const s of i)try{await s(e,r)}catch(a){if(!Vr(a))throw a}}async notifyBuildPhase(e,t,r){if(e.length===0)return;const i=this.buildPhaseListeners.get(t).slice();for(const s of i)await Ne(r),await s(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,c=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...c):e.diagnostics=c;const l=this.buildState.get(e.uri.toString());if(l){(r=l.result)!==null&&r!==void 0||(l.result={});const u=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:Hr.all;l.result.validationChecks?l.result.validationChecks.push(...u):l.result.validationChecks=[...u]}}getBuildOptions(e){var t,r;return(r=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&r!==void 0?r:{}}}class td{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Fu,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=Je(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{nt.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),ee(i)}allElements(e,t){let r=ee(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(a=>this.astReflection.isSubtype(a.type,t))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}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 r=this.serviceRegistry.getServices(e.uri),i=await r.references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=B.CancellationToken.None){const r=this.serviceRegistry.getServices(e.uri),i=await r.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){const r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(i=>!i.local&&t.has(i.targetUri.toString()))}}class nd{constructor(e){this.initialBuildOptions={},this._ready=new ls,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 r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],t)})}async initializeWorkspace(e,t=B.CancellationToken.None){const r=await this.performStartup(e);await Ne(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return mt.parse(e.uri)}async traverseFolder(e,t,r,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,r){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 r.includes(s)}return!1}}class rd{buildUnexpectedCharactersMessage(e,t,r,i,s){return Di.buildUnexpectedCharactersMessage(e,t,r,i,s)}buildUnableToPopLexerModeMessage(e){return Di.buildUnableToPopLexerModeMessage(e)}}const id={mode:"full"};class sd{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 r=Qo(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new Te(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=id){var r,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(r=a.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(Qo(e))return e;const t=Xo(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function Xo(n){return n&&"modes"in n&&"defaultMode"in n}function Qo(n){return!function(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}(n)&&!Xo(n)}function ad(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=z.create(0,0));const s=function(a){var o,c,l;const u=[];let h=a.position.line,d=a.position.character;for(let f=0;f<a.lines.length;f++){const p=f===0,m=f===a.lines.length-1;let g=a.lines[f],v=0;if(p&&a.options.start){const y=(o=a.options.start)===null||o===void 0?void 0:o.exec(g);y&&(v=y.index+y[0].length)}else{const y=(c=a.options.line)===null||c===void 0?void 0:c.exec(g);y&&(v=y.index+y[0].length)}if(m){const y=(l=a.options.end)===null||l===void 0?void 0:l.exec(g);y&&(g=g.substring(0,y.index))}if(g=g.substring(0,dd(g)),ps(g,v)>=g.length){if(u.length>0){const y=z.create(h,d);u.push({type:"break",content:"",range:Ee.create(y,y)})}}else{Zo.lastIndex=v;const y=Zo.exec(g);if(y){const T=y[0],$=y[1],_=z.create(h,d+v),P=z.create(h,d+v+T.length);u.push({type:"tag",content:$,range:Ee.create(_,P)}),v+=T.length,v=ps(g,v)}if(v<g.length){const T=g.substring(v),$=Array.from(T.matchAll(od));u.push(...cd($,T,h,d+v))}}h++,d=0}return u.length>0&&u[u.length-1].type==="break"?u.slice(0,-1):u}({lines:Jo(n),position:i,options:ms(r)});return function(a){var o,c,l,u;const h=z.create(a.position.line,a.position.character);if(a.tokens.length===0)return new rc([],Ee.create(h,h));const d=[];for(;a.index<a.tokens.length;){const m=hd(a,d[d.length-1]);m&&d.push(m)}const f=(c=(o=d[0])===null||o===void 0?void 0:o.range.start)!==null&&c!==void 0?c:h,p=(u=(l=d[d.length-1])===null||l===void 0?void 0:l.range.end)!==null&&u!==void 0?u:h;return new rc(d,Ee.create(f,p))}({index:0,tokens:s,position:i})}function Jo(n){let e="";return e=typeof n=="string"?n:n.text,e.split(yl)}const Zo=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,od=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function cd(n,e,t,r){const i=[];if(n.length===0){const s=z.create(t,r),a=z.create(t,r+e.length);i.push({type:"text",content:e,range:Ee.create(s,a)})}else{let s=0;for(const o of n){const c=o.index,l=e.substring(s,c);l.length>0&&i.push({type:"text",content:e.substring(s,c),range:Ee.create(z.create(t,s+r),z.create(t,c+r))});let u=l.length+1;const h=o[1];if(i.push({type:"inline-tag",content:h,range:Ee.create(z.create(t,s+u+r),z.create(t,s+u+h.length+r))}),u+=h.length,o.length===4){u+=o[2].length;const d=o[3];i.push({type:"text",content:d,range:Ee.create(z.create(t,s+u+r),z.create(t,s+u+d.length+r))})}else i.push({type:"text",content:"",range:Ee.create(z.create(t,s+u+r),z.create(t,s+u+r))});s=c+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:Ee.create(z.create(t,s+r),z.create(t,s+r+a.length))})}return i}const ld=/\S/,ud=/\s*$/;function ps(n,e){const t=n.substring(e).match(ld);return t?e+t.index:n.length}function dd(n){const e=n.match(ud);if(e&&typeof e.index=="number")return e.index}function hd(n,e){const t=n.tokens[n.index];return t.type==="tag"?tc(n,!1):t.type==="text"||t.type==="inline-tag"?ec(n):(function(r,i){if(i){const s=new ic("",r.range);"inlines"in i?i.inlines.push(s):i.content.inlines.push(s)}}(t,e),void n.index++)}function ec(n){let e=n.tokens[n.index];const t=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(fd(n)),r=e,e=n.tokens[n.index];return new Ts(i,Ee.create(t.range.start,r.range.end))}function fd(n){return n.tokens[n.index].type==="inline-tag"?tc(n,!0):nc(n)}function tc(n,e){const t=n.tokens[n.index++],r=t.content.substring(1),i=n.tokens[n.index];if((i==null?void 0:i.type)==="text"){if(e){const s=nc(n);return new ys(r,new Ts([s],s.range),e,Ee.create(t.range.start,s.range.end))}{const s=ec(n);return new ys(r,s,e,Ee.create(t.range.start,s.range.end))}}{const s=t.range;return new ys(r,new Ts([],s),e,s)}}function nc(n){const e=n.tokens[n.index++];return new ic(e.content,e.range)}function ms(n){if(!n)return ms({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:r}=n;return{start:gs(e,!0),end:gs(t,!1),line:gs(r,!0)}}function gs(n,e){if(typeof n=="string"||typeof n=="object"){const t=typeof n=="string"?gr(n):n.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}return n}class rc{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 r=t.toString();e+=sc(e)+r}return e.trim()}toMarkdown(e){let t="";for(const r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{const i=r.toMarkdown(e);t+=sc(t)+i}return t.trim()}}class ys{constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,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
- ${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return(r=(t=e==null?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=function(a,o,c){var l,u;if(a==="linkplain"||a==="linkcode"||a==="link"){const h=o.indexOf(" ");let d=o;if(h>0){const p=ps(o,h);d=o.substring(p),o=o.substring(0,h)}return(a==="linkcode"||a==="link"&&c.link==="code")&&(d=`\`${d}\``),(u=(l=c.renderLink)===null||l===void 0?void 0:l.call(c,o,d))!==null&&u!==void 0?u:function(p,m){try{return mt.parse(p,!0),`[${m}](${p})`}catch{return p}}(o,d)}}(this.name,t,e??{});if(typeof s=="string")return s}let r="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?r="*":(e==null?void 0:e.tag)==="bold"?r="**":(e==null?void 0:e.tag)==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} \u2014 ${t}`:this.content.inlines.length>1&&(i=`${i}
117
- ${t}`),this.inline?`{${i}}`:i}}class Ts{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const r=this.inlines[t],i=this.inlines[t+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
118
- `)}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];t+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(t+=`
119
- `)}return t}}class ic{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function sc(n){return n.endsWith(`
120
- `)?`
121
- `:`
122
-
123
- `}class pd{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&function(r,i){const s=ms(i),a=Jo(r);if(a.length===0)return!1;const o=a[0],c=a[a.length-1],l=s.start,u=s.end;return!!(l!=null&&l.exec(o))&&!!(u!=null&&u.exec(c))}(t))return ad(t).toMarkdown({renderLink:(r,i)=>this.documentationLinkRenderer(e,r,i),renderTag:r=>this.documentationTagRenderer(e,r)})}documentationLinkRenderer(e,t,r){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;return`[${r}](${s.documentUri.with({fragment:`L${a},${o}`}).toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const r=Je(e).precomputedScopes;if(!r)return;let i=e;do{const s=r.get(i).find(a=>a.name===t);if(s)return s;i=i.$container}while(i)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(r=>r.name===t)}}class md{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return function(r){return typeof r.$comment=="string"}(e)?e.$comment:(t=hl(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class gd{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class yd{constructor(){this.previousTokenSource=new B.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=(Br=performance.now(),new B.CancellationTokenSource);return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=B.CancellationToken.None){const i=new ls,s={action:t,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:t,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));r.resolve(s)}catch(s){Vr(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Td{constructor(e){this.grammarElementIdMap=new Wo,this.tokenTypeIdMap=new Wo,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,r=new Map;for(const i of xt(e))t.set(i,{});if(e.$cstNode)for(const i of di(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.dehydrateAstNode(o,t)):Ue(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ae(s)?r[i]=this.dehydrateAstNode(s,t):Ue(s)?r[i]=this.dehydrateReference(s,t):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,t){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){const r=t.cstNodes.get(e);return Ys(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),Zt(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):zs(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){const t=new Map,r=new Map;for(const s of xt(e))t.set(s,{});let i;if(e.$cstNode)for(const s of di(e.$cstNode)){let a;"fullText"in s?(a=new Oo(s.fullText),i=a):"content"in s?a=new ss:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):Ue(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else ae(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):Ue(s)?r[i]=this.hydrateReference(s,r,i,t):s!==void 0&&(r[i]=s);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=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),Zt(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,c=e.endColumn,l=e.hidden;return new is(r,i,{start:{line:s,character:a},end:{line:o,character:c}},t,l)}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 xt(this.grammar))fl(t)&&this.grammarElementIdMap.set(t,e++)}}function gt(n){return{documentation:{CommentProvider:e=>new md(e),DocumentationProvider:e=>new pd(e)},parser:{AsyncParser:e=>new gd(e),GrammarConfig:e=>function(t){const r=[],i=t.Grammar;for(const s of i.rules)ot(s)&&Al(s)&&vl(Ni(s))&&r.push(s.name);return{multilineCommentRules:r,nameRegexp:dl}}(e),LangiumParser:e=>wu(e),CompletionParser:e=>function(t){const r=t.Grammar,i=t.parser.Lexer,s=new Iu(t);return Mo(r,s,i.definition),s.finalize(),s}(e),ValueConverter:()=>new Bo,TokenBuilder:()=>new Fo,Lexer:e=>new sd(e),ParserErrorMessageProvider:()=>new Po,LexerErrorMessageProvider:()=>new rd},workspace:{AstNodeLocator:()=>new Qu,AstNodeDescriptionProvider:e=>new qu(e),ReferenceDescriptionProvider:e=>new Xu(e)},references:{Linker:e=>new bu(e),NameProvider:()=>new Pu,ScopeProvider:e=>new Ku(e),ScopeComputation:e=>new Du(e),References:e=>new Mu(e)},serializer:{Hydrator:e=>new Td(e),JsonSerializer:e=>new Vu(e)},validation:{DocumentValidator:e=>new Wu(e),ValidationRegistry:e=>new Hu(e)},shared:()=>n.shared}}function yt(n){return{ServiceRegistry:e=>new ju(e),workspace:{LangiumDocuments:e=>new _u(e),LangiumDocumentFactory:e=>new Ou(e),DocumentBuilder:e=>new ed(e),IndexManager:e=>new td(e),WorkspaceManager:e=>new nd(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new yd,ConfigurationProvider:e=>new Zu(e)}}}var ac;function ve(n,e,t,r,i,s,a,o,c){return oc([n,e,t,r,i,s,a,o,c].reduce(Wr,{}))}(function(n){n.merge=(e,t)=>Wr(Wr({},e),t)})(ac||(ac={}));const vd=Symbol("isProxy");function oc(n,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===vd||lc(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(lc(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Object.getOwnPropertyNames(n)]});return t}const cc=Symbol();function lc(n,e,t,r){if(e in n){if(n[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:n[e]});if(n[e]===cc)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return n[e]}if(e in t){const i=t[e];n[e]=cc;try{n[e]=typeof i=="function"?i(r):oc(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}}function Wr(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];n[t]=i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?Wr(i,r):r}}return n}class Rd{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const Tt={fileSystemProvider:()=>new Rd},Ed={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Ad={AstReflection:()=>new ra};function bt(n){var e;const t=function(){const i=ve(yt(Tt),Ad),s=ve(gt({shared:i}),Ed);return i.ServiceRegistry.register(s),s}(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,mt.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var kd=Object.defineProperty,k=(n,e)=>kd(n,"name",{value:e,configurable:!0}),uc="Statement",zr="Architecture";k(function(n){return De.isInstance(n,zr)},"isArchitecture");var Yr="Axis",Kn="Branch";k(function(n){return De.isInstance(n,Kn)},"isBranch");var qr="Checkout",Xr="CherryPicking",Vn="Commit";k(function(n){return De.isInstance(n,Vn)},"isCommit");var Qr="Common";k(function(n){return De.isInstance(n,Qr)},"isCommon");var vs="Curve",Rs="Edge",Es="Entry",jn="GitGraph";k(function(n){return De.isInstance(n,jn)},"isGitGraph");var As="Group",Jr="Info";k(function(n){return De.isInstance(n,Jr)},"isInfo");var ks="Junction",Hn="Merge";k(function(n){return De.isInstance(n,Hn)},"isMerge");var $s="Option",Zr="Packet";k(function(n){return De.isInstance(n,Zr)},"isPacket");var ei="PacketBlock";k(function(n){return De.isInstance(n,ei)},"isPacketBlock");var ti="Pie";k(function(n){return De.isInstance(n,ti)},"isPie");var ni="PieSection";k(function(n){return De.isInstance(n,ni)},"isPieSection");var dc,hc,fc,pc,mc,gc,xs="Radar",Ss="Service",ri="Direction",yc=(Mt=class extends Ws{getAllTypes(){return[zr,Yr,Kn,qr,Xr,Vn,Qr,vs,ri,Rs,Es,jn,As,Jr,ks,Hn,$s,Zr,ei,ti,ni,xs,Ss,uc]}computeIsSubtype(e,t){switch(e){case Kn:case qr:case Xr:case Vn:case Hn:return this.isSubtype(uc,t);case ri:return this.isSubtype(jn,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if(t==="Entry:axis")return Yr;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case zr:return{name:zr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case Yr:return{name:Yr,properties:[{name:"label"},{name:"name"}]};case Kn:return{name:Kn,properties:[{name:"name"},{name:"order"}]};case qr:return{name:qr,properties:[{name:"branch"}]};case Xr:return{name:Xr,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Vn:return{name:Vn,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Qr:return{name:Qr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case vs:return{name:vs,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Rs:return{name:Rs,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 Es:return{name:Es,properties:[{name:"axis"},{name:"value"}]};case jn:return{name:jn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case As:return{name:As,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case Jr:return{name:Jr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case ks:return{name:ks,properties:[{name:"id"},{name:"in"}]};case Hn:return{name:Hn,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case $s:return{name:$s,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case Zr:return{name:Zr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case ei:return{name:ei,properties:[{name:"end"},{name:"label"},{name:"start"}]};case ti:return{name:ti,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case ni:return{name:ni,properties:[{name:"label"},{name:"value"}]};case xs:return{name:xs,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Ss:return{name:Ss,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case ri:return{name:ri,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},k(Mt,"MermaidAstReflection"),Mt),De=new yc,$d=k(()=>dc??(dc=bt('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":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@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),xd=k(()=>hc??(hc=bt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":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":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":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@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),Sd=k(()=>fc??(fc=bt('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"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@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":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@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),Id=k(()=>pc??(pc=bt('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"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@15"},"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@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"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@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":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},{"$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":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Nd=k(()=>mc??(mc=bt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"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@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"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@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"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@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"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@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"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":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),Cd=k(()=>gc??(gc=bt(`{"$type":"Grammar","isDeclared":true,"name":"Radar","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@12"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"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@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"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@22"},"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@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"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@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"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@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@12"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"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@19"},"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@18"},"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@18"},"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@18"},"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@20"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":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":"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":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9\\\\-_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),wd={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ld={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Od={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},_d={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},bd={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Pd={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Pt={AstReflection:k(()=>new yc,"AstReflection")},Md={Grammar:k(()=>$d(),"Grammar"),LanguageMetaData:k(()=>wd,"LanguageMetaData"),parser:{}},Dd={Grammar:k(()=>xd(),"Grammar"),LanguageMetaData:k(()=>Ld,"LanguageMetaData"),parser:{}},Ud={Grammar:k(()=>Sd(),"Grammar"),LanguageMetaData:k(()=>Od,"LanguageMetaData"),parser:{}},Gd={Grammar:k(()=>Id(),"Grammar"),LanguageMetaData:k(()=>_d,"LanguageMetaData"),parser:{}},Fd={Grammar:k(()=>Nd(),"Grammar"),LanguageMetaData:k(()=>bd,"LanguageMetaData"),parser:{}},Bd={Grammar:k(()=>Cd(),"Grammar"),LanguageMetaData:k(()=>Pd,"LanguageMetaData"),parser:{}},Kd={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},Is=(Dt=class extends Bo{runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){const i=Kd[e.name];if(i===void 0)return;const s=i.exec(t);return s!==null?s[1]!==void 0?s[1].trim().replace(/[\t ]{2,}/gm," "):s[2]!==void 0?s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
124
- `):void 0:void 0}},k(Dt,"AbstractMermaidValueConverter"),Dt),ii=(Ut=class extends Is{runCustomConverter(e,t,r){}},k(Ut,"CommonValueConverter"),Ut),vt=(Gt=class extends Fo{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){const i=super.buildKeywordTokens(e,t,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},k(Gt,"AbstractMermaidTokenBuilder"),Gt);Ft=class extends vt{},k(Ft,"CommonTokenBuilder");var Vd=(Bt=class extends vt{constructor(){super(["gitGraph"])}},k(Bt,"GitGraphTokenBuilder"),Bt),Tc={parser:{TokenBuilder:k(()=>new Vd,"TokenBuilder"),ValueConverter:k(()=>new ii,"ValueConverter")}};function vc(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Fd,Tc);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}k(vc,"createGitGraphServices");var jd=(Kt=class extends vt{constructor(){super(["info","showInfo"])}},k(Kt,"InfoTokenBuilder"),Kt),Rc={parser:{TokenBuilder:k(()=>new jd,"TokenBuilder"),ValueConverter:k(()=>new ii,"ValueConverter")}};function Ec(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Md,Rc);return e.ServiceRegistry.register(t),{shared:e,Info:t}}k(Ec,"createInfoServices");var Hd=(Vt=class extends vt{constructor(){super(["packet-beta"])}},k(Vt,"PacketTokenBuilder"),Vt),Ac={parser:{TokenBuilder:k(()=>new Hd,"TokenBuilder"),ValueConverter:k(()=>new ii,"ValueConverter")}};function kc(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Dd,Ac);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}k(kc,"createPacketServices");var Wd=(jt=class extends vt{constructor(){super(["pie","showData"])}},k(jt,"PieTokenBuilder"),jt),zd=(Ht=class extends Is{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},k(Ht,"PieValueConverter"),Ht),$c={parser:{TokenBuilder:k(()=>new Wd,"TokenBuilder"),ValueConverter:k(()=>new zd,"ValueConverter")}};function xc(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Ud,$c);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}k(xc,"createPieServices");var Yd=(Wt=class extends vt{constructor(){super(["architecture"])}},k(Wt,"ArchitectureTokenBuilder"),Wt),qd=(zt=class extends Is{runCustomConverter(e,t,r){return e.name==="ARCH_ICON"?t.replace(/[()]/g,"").trim():e.name==="ARCH_TEXT_ICON"?t.replace(/["()]/g,""):e.name==="ARCH_TITLE"?t.replace(/[[\]]/g,"").trim():void 0}},k(zt,"ArchitectureValueConverter"),zt),Sc={parser:{TokenBuilder:k(()=>new Yd,"TokenBuilder"),ValueConverter:k(()=>new qd,"ValueConverter")}};function Ic(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Gd,Sc);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}k(Ic,"createArchitectureServices");var Xd=(Yt=class extends vt{constructor(){super(["radar-beta"])}},k(Yt,"RadarTokenBuilder"),Yt),Nc={parser:{TokenBuilder:k(()=>new Xd,"TokenBuilder"),ValueConverter:k(()=>new ii,"ValueConverter")}};function Cc(n=Tt){const e=ve(yt(n),Pt),t=ve(gt({shared:e}),Bd,Nc);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}k(Cc,"createRadarServices");var rt={},Qd={info:k(async()=>{const{createInfoServices:n}=await Et(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>Zd);return{createInfoServices:t}},void 0,import.meta.url),e=n().Info.parser.LangiumParser;rt.info=e},"info"),packet:k(async()=>{const{createPacketServices:n}=await Et(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>eh);return{createPacketServices:t}},void 0,import.meta.url),e=n().Packet.parser.LangiumParser;rt.packet=e},"packet"),pie:k(async()=>{const{createPieServices:n}=await Et(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>th);return{createPieServices:t}},void 0,import.meta.url),e=n().Pie.parser.LangiumParser;rt.pie=e},"pie"),architecture:k(async()=>{const{createArchitectureServices:n}=await Et(async()=>{const{createArchitectureServices:t}=await Promise.resolve().then(()=>nh);return{createArchitectureServices:t}},void 0,import.meta.url),e=n().Architecture.parser.LangiumParser;rt.architecture=e},"architecture"),gitGraph:k(async()=>{const{createGitGraphServices:n}=await Et(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>rh);return{createGitGraphServices:t}},void 0,import.meta.url),e=n().GitGraph.parser.LangiumParser;rt.gitGraph=e},"gitGraph"),radar:k(async()=>{const{createRadarServices:n}=await Et(async()=>{const{createRadarServices:t}=await Promise.resolve().then(()=>ih);return{createRadarServices:t}},void 0,import.meta.url),e=n().Radar.parser.LangiumParser;rt.radar=e},"radar")};async function wc(n,e){const t=Qd[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);rt[n]||await t();const r=rt[n].parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new Jd(r);return r.value}k(wc,"parse");var Jd=(qt=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(t=>t.message).join(`
125
- `)} ${e.parserErrors.map(t=>t.message).join(`
126
- `)}`),this.result=e}},k(qt,"MermaidParseError"),qt);const Zd=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:Rc,createInfoServices:Ec},Symbol.toStringTag,{value:"Module"})),eh=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:Ac,createPacketServices:kc},Symbol.toStringTag,{value:"Module"})),th=Object.freeze(Object.defineProperty({__proto__:null,PieModule:$c,createPieServices:xc},Symbol.toStringTag,{value:"Module"})),nh=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:Sc,createArchitectureServices:Ic},Symbol.toStringTag,{value:"Module"})),rh=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:Tc,createGitGraphServices:vc},Symbol.toStringTag,{value:"Module"})),ih=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:Nc,createRadarServices:Cc},Symbol.toStringTag,{value:"Module"}));export{wc as p};