@techie_doubts/tui.notes.2026 1.0.3

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 (127) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +69 -0
  3. package/bin/tui-notes-2026.js +148 -0
  4. package/dist/apple-touch-icon.png +0 -0
  5. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  6. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  7. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  10. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  11. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  12. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  13. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  16. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  17. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  18. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  19. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  20. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  21. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  22. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  23. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  24. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  25. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  26. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  27. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  28. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  29. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  30. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  31. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  32. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  33. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  34. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  35. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  36. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  37. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  44. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  45. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  46. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  47. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  48. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  49. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  50. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  51. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  52. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  53. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  54. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  55. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  56. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  57. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  58. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  59. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  60. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  61. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  62. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  63. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  64. package/dist/assets/_basePickBy-5vIZeqrx.js +1 -0
  65. package/dist/assets/_baseUniq-BKVPFJfn.js +1 -0
  66. package/dist/assets/arc-C9kP97l6.js +1 -0
  67. package/dist/assets/architectureDiagram-VXUJARFQ-Byi0I8ZG.js +36 -0
  68. package/dist/assets/blockDiagram-VD42YOAC-BJdE0zMh.js +122 -0
  69. package/dist/assets/c4Diagram-YG6GDRKO-S6X4gJvg.js +10 -0
  70. package/dist/assets/channel-BL5Gk2pQ.js +1 -0
  71. package/dist/assets/chunk-4BX2VUAB-CHk_Kmuf.js +1 -0
  72. package/dist/assets/chunk-55IACEB6-CSiI5l4y.js +1 -0
  73. package/dist/assets/chunk-B4BG7PRW-Pfyytvw2.js +165 -0
  74. package/dist/assets/chunk-DI55MBZ5-CzuT73QX.js +220 -0
  75. package/dist/assets/chunk-FMBD7UC4-CbFQZB09.js +15 -0
  76. package/dist/assets/chunk-QN33PNHL-BGfqR6oI.js +1 -0
  77. package/dist/assets/chunk-QZHKN3VN-BiwVWS1N.js +1 -0
  78. package/dist/assets/chunk-TZMSLE5B-DGFvEdJ1.js +1 -0
  79. package/dist/assets/classDiagram-2ON5EDUG-zBqgTI2V.js +1 -0
  80. package/dist/assets/classDiagram-v2-WZHVMYZB-zBqgTI2V.js +1 -0
  81. package/dist/assets/clone-BXJ7lx2k.js +1 -0
  82. package/dist/assets/clone-Ck-f8mTd.js +1 -0
  83. package/dist/assets/cose-bilkent-S5V4N54A-BW6K25gi.js +1 -0
  84. package/dist/assets/cytoscape.esm-5J0xJHOV.js +321 -0
  85. package/dist/assets/dagre-6UL2VRFP-rAcrKl8P.js +4 -0
  86. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  87. package/dist/assets/diagram-PSM6KHXK-CFW4LgFm.js +24 -0
  88. package/dist/assets/diagram-QEK2KX5R-iIAjQaRR.js +43 -0
  89. package/dist/assets/diagram-S2PKOQOG-B4sjOsw5.js +24 -0
  90. package/dist/assets/erDiagram-Q2GNP2WA-B0ZlvT_j.js +60 -0
  91. package/dist/assets/flowDiagram-NV44I4VS-CZpxVEIW.js +162 -0
  92. package/dist/assets/ganttDiagram-JELNMOA3-C5bV6Kyn.js +267 -0
  93. package/dist/assets/gitGraphDiagram-NY62KEGX-CKafq6Db.js +65 -0
  94. package/dist/assets/graph-CmWchtBt.js +1 -0
  95. package/dist/assets/index-Dru5s6C3.js +1622 -0
  96. package/dist/assets/index-Ds6rxr7w.css +1 -0
  97. package/dist/assets/infoDiagram-WHAUD3N6-CtuvmlxO.js +2 -0
  98. package/dist/assets/init-Gi6I4Gst.js +1 -0
  99. package/dist/assets/journeyDiagram-XKPGCS4Q-B2vQSg3r.js +139 -0
  100. package/dist/assets/kanban-definition-3W4ZIXB7-DGQcUq_x.js +89 -0
  101. package/dist/assets/katex-DhXJpUyf.js +261 -0
  102. package/dist/assets/layout-kmduQhmX.js +1 -0
  103. package/dist/assets/linear-pI_tPTfw.js +1 -0
  104. package/dist/assets/mindmap-definition-VGOIOE7T-BvU7po7V.js +68 -0
  105. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  106. package/dist/assets/pieDiagram-ADFJNKIX-Cg7CEjT2.js +30 -0
  107. package/dist/assets/quadrantDiagram-AYHSOK5B-DkHvKj4E.js +7 -0
  108. package/dist/assets/requirementDiagram-UZGBJVZJ-m_XuIi3W.js +64 -0
  109. package/dist/assets/sankeyDiagram-TZEHDZUN-C8kEeWyG.js +10 -0
  110. package/dist/assets/sequenceDiagram-WL72ISMW-h_Zue6Cz.js +145 -0
  111. package/dist/assets/stateDiagram-FKZM4ZOC-C1RkikhL.js +1 -0
  112. package/dist/assets/stateDiagram-v2-4FDKWEC3-K7OViiQB.js +1 -0
  113. package/dist/assets/timeline-definition-IT6M3QCI-BC6jnS9b.js +61 -0
  114. package/dist/assets/treemap-KMMF4GRG-B48L_Dxb.js +235 -0
  115. package/dist/assets/xychartDiagram-PRI3JC2R-CnqXWGjs.js +7 -0
  116. package/dist/favicon-32x32.png +0 -0
  117. package/dist/favicon.ico +0 -0
  118. package/dist/favicon.png +0 -0
  119. package/dist/favicon.svg +19 -0
  120. package/dist/index.html +19 -0
  121. package/dist/safari-pinned-tab.svg +4 -0
  122. package/package.json +80 -0
  123. package/patches/@techie_doubts+editor-plugin-chart+3.0.1.patch +42 -0
  124. package/patches/@techie_doubts+tui.editor.2026+3.2.2.patch +36 -0
  125. package/server/index.js +104 -0
  126. package/server/store.js +996 -0
  127. package/tui-notes.config.example.json +3 -0
@@ -0,0 +1,235 @@
1
+ import{aU as ai,bd as el,aQ as W,aR as jn,aY as Yn,be as zp,bf as jp,aM as fi,aP as Yp,b2 as Fd,bg as qp,bh as Ud,bi as Xp,bj as Gd,bk as Jp,bl as Bd,bm as Wl,aV as Vl,a_ as Hl,b1 as Qi,bn as Qp,bo as Zp,bp as Kd,bq as Rs,br as em,bs as Wd,bt as tm,bu as zl,bv as nm,aW as rm,aX as jl,bw as xa,bx as yn,by as j,bz as nn}from"./index-Dru5s6C3.js";import{k as St,a as Vd,s as im,g as sm,b as am,d as Yl,e as om,f as Hd,c as xe}from"./clone-BXJ7lx2k.js";import{l as lm,c as cm,r as um,y as tl,m as N,a as dm,z as fm,p as hm,f as st,v as qn,u as L,x as nl,w as ln,s as pm}from"./_basePickBy-5vIZeqrx.js";import{s as mm,p as zd,k as Xn,M as rl,K as ir,I as Se,a3 as gm,a4 as ym,a5 as Tm,b as Rm,d as ql,c as jd,B as Yd,X as qd,v as pe,a6 as Xd,D as Em,E as Xl,N as Am,a7 as vm,a8 as Im,a9 as km,a as Jd,h as _,i as Mt,f as Tn,r as Pe,j as z,g as nt,P as Jl,aa as ye,m as Sm}from"./_baseUniq-BKVPFJfn.js";import{c as Le}from"./clone-Ck-f8mTd.js";var Nm=Object.prototype,xm=Nm.hasOwnProperty,Qe=lm(function(n,e){if(mm(e)||zd(e)){cm(e,Xn(e),n);return}for(var t in e)xm.call(e,t)&&um(n,t,e[t])});function Qd(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function hi(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}function Cm(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function $m(n,e,t,r){return rl(n,function(i,s,a){e(r,i,t(i),a)}),r}function _m(n,e){return function(t,r){var i=Se(t)?Cm:$m,s=e?e():{};return i(t,n,ir(r),s)}}var Lm=200;function Om(n,e,t,r){var i=-1,s=ym,a=!0,o=n.length,l=[],c=e.length;if(!o)return l;e.length>=Lm&&(s=Tm,a=!1,e=new gm(e));e:for(;++i<o;){var u=n[i],d=u;if(u=u!==0?u:0,a&&d===d){for(var f=c;f--;)if(e[f]===d)continue e;l.push(u)}else s(e,d,r)||l.push(u)}return l}var Qs=Rm(function(n,e){return ql(n)?Om(n,jd(e,1,ql,!0)):[]});function Ae(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:tl(e),Qd(n,e<0?0:e,r)):[]}function oi(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:tl(e),e=r-e,Qd(n,0,e<0?0:e)):[]}function wm(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 Pm(n,e){var t=!0;return rl(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function dt(n,e,t){var r=Se(n)?wm:Pm;return r(n,ir(e))}function pt(n){return n&&n.length?n[0]:void 0}function Je(n,e){return jd(N(n,e))}var bm=Object.prototype,Mm=bm.hasOwnProperty,Dm=_m(function(n,e,t){Mm.call(n,t)?n[t].push(e):dm(n,t,[e])}),Fm="[object String]";function Ke(n){return typeof n=="string"||!Se(n)&&Yd(n)&&qd(n)==Fm}var Um=Math.max;function Fe(n,e,t,r){n=zd(n)?n:pe(n),t=t?tl(t):0;var i=n.length;return t<0&&(t=Um(i+t,0)),Ke(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Xd(n,e,t)>-1}function Ql(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Xd(n,e,i)}var Gm="[object RegExp]";function Bm(n){return Yd(n)&&qd(n)==Gm}var Zl=Xl&&Xl.isRegExp,Dt=Zl?Em(Zl):Bm,Km="Expected a function";function Wm(n){if(typeof n!="function")throw new TypeError(Km);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function gt(n,e){if(n==null)return{};var t=Am(fm(n),function(r){return[r]});return e=ir(e),hm(n,t,function(r,i){return e(r,i[0])})}function Zs(n,e){var t=Se(n)?vm:Im;return t(n,Wm(ir(e)))}function Vm(n,e){var t;return rl(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Zd(n,e,t){var r=Se(n)?km:Vm;return r(n,ir(e))}function il(n){return n&&n.length?Jd(n):[]}function Hm(n,e){return n&&n.length?Jd(n,ir(e)):[]}function _e(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function kt(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function zm(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Zi(n){return typeof n=="object"&&n!==null&&_e(n.container)&&kt(n.reference)&&typeof n.message=="string"}class ef{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return _e(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 li(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function tf(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function nf(n){return li(n)&&typeof n.fullText=="string"}class Ie{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 Ie(()=>({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 qe})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=jm(i.value)),s=!0;while(!i.done);return r}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 Ie(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?qe:{done:!1,value:e(i)}})}filter(e){return new Ie(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return qe})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=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 Ie(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Es(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return qe})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Ie(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Es(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return qe})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Ie(()=>{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 Ie(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?qe:this.nextFn(t.state)))}distinct(e){return new Ie(()=>({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 qe})}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 jm(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Es(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Ym=new Ie(()=>{},()=>qe),qe=Object.freeze({done:!0,value:void 0});function ke(...n){if(n.length===1){const e=n[0];if(e instanceof Ie)return e;if(Es(e))return new Ie(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Ie(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:qe)}return n.length>1?new Ie(()=>({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++];Es(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return qe}):Ym}class sl extends Ie{constructor(e,t,r){super(()=>({iterators: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 a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return qe})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var lo;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(lo||(lo={}));function co(n){return new sl(n,e=>li(e)?e.content:[],{includeRoot:!0})}function qm(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function uo(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function As(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var wt;(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"})(wt||(wt={}));function Xm(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return wt.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return wt.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?wt.Inside:t?wt.OverlapBack:r?wt.OverlapFront:wt.Outside}function Jm(n,e){return Xm(n,e)>wt.After}const Qm=/^[\w\p{L}]$/u;function Zm(n,e){if(n){const t=eg(n,!0);if(t&&ec(t,e))return t;if(nf(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(ec(s,e))return s}}}}function ec(n,e){return tf(n)&&e.includes(n.tokenType.name)}function eg(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class rf extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function pi(n){throw new Error("Error! The input value was not handled.")}const Si="AbstractRule",Ni="AbstractType",Ca="Condition",tc="TypeDefinition",$a="ValueLiteral",Rr="AbstractElement";function tg(n){return K.isInstance(n,Rr)}const xi="ArrayLiteral",Ci="ArrayType",Er="BooleanLiteral";function ng(n){return K.isInstance(n,Er)}const Ar="Conjunction";function rg(n){return K.isInstance(n,Ar)}const vr="Disjunction";function ig(n){return K.isInstance(n,vr)}const $i="Grammar",_a="GrammarImport",Ir="InferredType";function sf(n){return K.isInstance(n,Ir)}const kr="Interface";function af(n){return K.isInstance(n,kr)}const La="NamedArgument",Sr="Negation";function sg(n){return K.isInstance(n,Sr)}const _i="NumberLiteral",Li="Parameter",Nr="ParameterReference";function ag(n){return K.isInstance(n,Nr)}const xr="ParserRule";function lt(n){return K.isInstance(n,xr)}const Oi="ReferenceType",es="ReturnType";function og(n){return K.isInstance(n,es)}const Cr="SimpleType";function lg(n){return K.isInstance(n,Cr)}const wi="StringLiteral",Nn="TerminalRule";function Rn(n){return K.isInstance(n,Nn)}const $r="Type";function of(n){return K.isInstance(n,$r)}const Oa="TypeAttribute",Pi="UnionType",_r="Action";function ea(n){return K.isInstance(n,_r)}const Lr="Alternatives";function lf(n){return K.isInstance(n,Lr)}const Or="Assignment";function cn(n){return K.isInstance(n,Or)}const wr="CharacterRange";function cg(n){return K.isInstance(n,wr)}const Pr="CrossReference";function al(n){return K.isInstance(n,Pr)}const br="EndOfFile";function ug(n){return K.isInstance(n,br)}const Mr="Group";function ol(n){return K.isInstance(n,Mr)}const Dr="Keyword";function un(n){return K.isInstance(n,Dr)}const Fr="NegatedToken";function dg(n){return K.isInstance(n,Fr)}const Ur="RegexToken";function fg(n){return K.isInstance(n,Ur)}const Gr="RuleCall";function dn(n){return K.isInstance(n,Gr)}const Br="TerminalAlternatives";function hg(n){return K.isInstance(n,Br)}const Kr="TerminalGroup";function pg(n){return K.isInstance(n,Kr)}const Wr="TerminalRuleCall";function mg(n){return K.isInstance(n,Wr)}const Vr="UnorderedGroup";function cf(n){return K.isInstance(n,Vr)}const Hr="UntilToken";function gg(n){return K.isInstance(n,Hr)}const zr="Wildcard";function yg(n){return K.isInstance(n,zr)}class uf extends ef{getAllTypes(){return[Rr,Si,Ni,_r,Lr,xi,Ci,Or,Er,wr,Ca,Ar,Pr,vr,br,$i,_a,Mr,Ir,kr,Dr,La,Fr,Sr,_i,Li,Nr,xr,Oi,Ur,es,Gr,Cr,wi,Br,Kr,Nn,Wr,$r,Oa,tc,Pi,Vr,Hr,$a,zr]}computeIsSubtype(e,t){switch(e){case _r:case Lr:case Or:case wr:case Pr:case br:case Mr:case Dr:case Fr:case Ur:case Gr:case Br:case Kr:case Wr:case Vr:case Hr:case zr:return this.isSubtype(Rr,t);case xi:case _i:case wi:return this.isSubtype($a,t);case Ci:case Oi:case Cr:case Pi:return this.isSubtype(tc,t);case Er:return this.isSubtype(Ca,t)||this.isSubtype($a,t);case Ar:case vr:case Sr:case Nr:return this.isSubtype(Ca,t);case Ir:case kr:case $r:return this.isSubtype(Ni,t);case xr:return this.isSubtype(Si,t)||this.isSubtype(Ni,t);case Nn:return this.isSubtype(Si,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 Ni;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Si;case"Grammar:usedGrammars":return $i;case"NamedArgument:parameter":case"ParameterReference:parameter":return Li;case"TerminalRuleCall:rule":return Nn;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Rr:return{name:Rr,properties:[{name:"cardinality"},{name:"lookahead"}]};case xi:return{name:xi,properties:[{name:"elements",defaultValue:[]}]};case Ci:return{name:Ci,properties:[{name:"elementType"}]};case Er:return{name:Er,properties:[{name:"true",defaultValue:!1}]};case Ar:return{name:Ar,properties:[{name:"left"},{name:"right"}]};case vr:return{name:vr,properties:[{name:"left"},{name:"right"}]};case $i:return{name:$i,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 _a:return{name:_a,properties:[{name:"path"}]};case Ir:return{name:Ir,properties:[{name:"name"}]};case kr:return{name:kr,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case La:return{name:La,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Sr:return{name:Sr,properties:[{name:"value"}]};case _i:return{name:_i,properties:[{name:"value"}]};case Li:return{name:Li,properties:[{name:"name"}]};case Nr:return{name:Nr,properties:[{name:"parameter"}]};case xr:return{name:xr,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 Oi:return{name:Oi,properties:[{name:"referenceType"}]};case es:return{name:es,properties:[{name:"name"}]};case Cr:return{name:Cr,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case wi:return{name:wi,properties:[{name:"value"}]};case Nn:return{name:Nn,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case $r:return{name:$r,properties:[{name:"name"},{name:"type"}]};case Oa:return{name:Oa,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"types",defaultValue:[]}]};case _r:return{name:_r,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Lr:return{name:Lr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Or:return{name:Or,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case wr:return{name:wr,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Pr:return{name:Pr,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case br:return{name:br,properties:[{name:"cardinality"},{name:"lookahead"}]};case Mr:return{name:Mr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Dr:return{name:Dr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Fr:return{name:Fr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Ur:return{name:Ur,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Gr:return{name:Gr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Br:return{name:Br,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Kr:return{name:Kr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Wr:return{name:Wr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Vr:return{name:Vr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Hr:return{name:Hr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case zr:return{name:zr,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const K=new uf;function Tg(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{_e(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):_e(t)&&(t.$container=n,t.$containerProperty=e))}function ta(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Bt(n){const t=fo(n).$document;if(!t)throw new Error("AST node has no document.");return t}function fo(n){for(;n.$container;)n=n.$container;return n}function ll(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new Ie(()=>({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(_e(s)){if(r.keyIndex++,nc(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(_e(o)&&nc(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return qe})}function mi(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new sl(n,t=>ll(t,e))}function Cn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new sl(n,t=>ll(t,e),{includeRoot:!0})}function nc(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Jm(r,e):!1}function df(n){return new Ie(()=>({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(kt(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(kt(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return qe})}function Rg(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=ff(i.defaultValue))}function ff(n){return Array.isArray(n)?[...n.map(ff)]:n}function b(n){return n.charCodeAt(0)}function wa(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function pr(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function kn(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function Eg(){throw Error("Internal Error - Should never get here!")}function rc(n){return n.type==="Character"}const vs=[];for(let n=b("0");n<=b("9");n++)vs.push(n);const Is=[b("_")].concat(vs);for(let n=b("a");n<=b("z");n++)Is.push(n);for(let n=b("A");n<=b("Z");n++)Is.push(n);const ic=[b(" "),b("\f"),b(`
2
+ `),b("\r"),b(" "),b("\v"),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b(" "),b("\u2028"),b("\u2029"),b(" "),b(" "),b(" "),b("\uFEFF")],Ag=/[0-9a-fA-F]/,bi=/[0-9]/,vg=/[1-9]/;let hf=class{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");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":pr(r,"global");break;case"i":pr(r,"ignoreCase");break;case"m":pr(r,"multiLine");break;case"u":pr(r,"unicode");break;case"y":pr(r,"sticky");break}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"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}kn(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return Eg()}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("}");break}if(e===!0&&t===void 0)return;kn(t);break}if(!(e===!0&&t===void 0)&&kn(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),kn(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[b(`
3
+ `),b("\r"),b("\u2028"),b("\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=vs;break;case"D":e=vs,t=!0;break;case"s":e=ic;break;case"S":e=ic,t=!0;break;case"w":e=Is;break;case"W":e=Is,t=!0;break}if(kn(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=b("\f");break;case"n":e=b(`
4
+ `);break;case"r":e=b("\r");break;case"t":e=b(" ");break;case"v":e=b("\v");break}if(kn(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:b("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:b(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
+ `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:b(e)}}}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,rc(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,rc(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else wa(r.value,e),e.push(b("-")),wa(i.value,e)}else wa(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:b("\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(vg.test(e)===!1)throw Error("Expecting a positive integer");for(;bi.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(bi.test(e)===!1)throw Error("Expecting an integer");for(;bi.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:b(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 bi.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 i=0;i<e;i++){const s=this.popChar();if(Ag.test(s)===!1)throw Error("Expecting a HexDecimal digits");t+=s}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}}},na=class{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);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}};const Ig=/\r?\n/gm,kg=new hf;class Sg extends na{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t===`
10
+ `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=ra(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!`
11
+ `.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const Pa=new Sg;function Ng(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Pa.reset(n),Pa.visit(kg.pattern(n)),Pa.multiline}catch{return!1}}const xg=`\f
12
+ \r \v              \u2028\u2029   \uFEFF`.split("");function ho(n){const e=typeof n=="string"?new RegExp(n):n;return xg.some(t=>e.test(t))}function ra(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cg(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ra(e)).join("")}function $g(n,e){const t=_g(n),r=e.match(t);return!!r&&r[0].length>0}function _g(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(c){s+=t.substr(r,c),r+=c}function l(c){s+="(?:"+t.substr(r,c)+"|$)",r+=c}for(;r<t.length;)switch(t[r]){case"\\":switch(t[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[r+2]==="{"?l(t.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",r)-r+1):l(2);break;case"k":l(t.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[r+1]==="?")switch(t[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=t.substr(a,r-a);break;case"<":switch(t[r+3]){case"=":case"!":a=r,r+=4,i(),s+=t.substr(a,r-a);break;default:o(t.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:l(1);break}return s}return new RegExp(i(),n.flags)}function Lg(n){return n.rules.find(e=>lt(e)&&e.entry)}function Og(n){return n.rules.filter(e=>Rn(e)&&e.hidden)}function pf(n,e){const t=new Set,r=Lg(n);if(!r)return new Set(n.rules);const i=[r].concat(Og(n));for(const a of i)mf(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||Rn(a)&&a.hidden)&&s.add(a);return s}function mf(n,e,t){e.add(n.name),mi(n).forEach(r=>{if(dn(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&mf(i,e,t)}})}function wg(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=yf(n.type.ref);return e?.terminal}}function Pg(n){return n.hidden&&!ho(fl(n))}function bg(n,e){return!n||!e?[]:cl(n,e,n.astNode,!0)}function gf(n,e,t){if(!n||!e)return;const r=cl(n,e,n.astNode,!0);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function cl(n,e,t,r){if(!r){const i=ta(n.grammarSource,cn);if(i&&i.feature===e)return[n]}return li(n)&&n.astNode===t?n.content.flatMap(i=>cl(i,e,t,!1)):[]}function Mg(n,e,t){if(!n)return;const r=Dg(n,e,n?.astNode);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function Dg(n,e,t){if(n.astNode!==t)return[];if(un(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=co(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?un(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function Fg(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=ta(n.grammarSource,cn);if(r)return r;n=n.container}}function yf(n){let e=n;return sf(e)&&(ea(e.$container)?e=e.$container.$container:lt(e.$container)?e=e.$container:pi(e.$container)),Tf(n,e,new Map)}function Tf(n,e,t){var r;function i(s,a){let o;return ta(s,cn)||(o=Tf(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 mi(e)){if(cn(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(dn(s)&&lt(s.rule.ref))return i(s,s.rule.ref);if(lg(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function Rf(n){return Ef(n,new Set)}function Ef(n,e){if(e.has(n))return!0;e.add(n);for(const t of mi(n))if(dn(t)){if(!t.rule.ref||lt(t.rule.ref)&&!Ef(t.rule.ref,e))return!1}else{if(cn(t))return!1;if(ea(t))return!1}return!!n.definition}function ul(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e){if(lt(e))return e.name;if(af(e)||of(e))return e.name}}}function dl(n){var e;if(lt(n))return Rf(n)?n.name:(e=ul(n))!==null&&e!==void 0?e:n.name;if(af(n)||of(n)||og(n))return n.name;if(ea(n)){const t=Ug(n);if(t)return t}else if(sf(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Ug(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return dl(n.type.ref)}function Gg(n){var e,t,r;return Rn(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(r=ul(n))!==null&&r!==void 0?r:n.name}function fl(n){const e={s:!1,i:!1,u:!1},t=sr(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const hl=/[\s\S]/.source;function sr(n,e){if(hg(n))return Bg(n);if(pg(n))return Kg(n);if(cg(n))return Hg(n);if(mg(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return bt(sr(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(dg(n))return Vg(n);if(gg(n))return Wg(n);if(fg(n)){const t=n.regex.lastIndexOf("/"),r=n.regex.substring(1,t),i=n.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),bt(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(yg(n))return bt(hl,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n?.$type}`)}}}function Bg(n){return bt(n.elements.map(e=>sr(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function Kg(n){return bt(n.elements.map(e=>sr(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function Wg(n){return bt(`${hl}*?${sr(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function Vg(n){return bt(`(?!${sr(n.terminal)})${hl}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function Hg(n){return n.right?bt(`[${ba(n.left)}-${ba(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):bt(ba(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function ba(n){return ra(n.value)}function bt(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 zg(n){const e=[],t=n.Grammar;for(const r of t.rules)Rn(r)&&Pg(r)&&Ng(fl(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:Qm}}var jg="[object Symbol]";function ia(n){return typeof n=="symbol"||ai(n)&&el(n)==jg}function sa(n,e){for(var t=-1,r=n==null?0:n.length,i=Array(r);++t<r;)i[t]=e(n[t],t,n);return i}var sc=jn?jn.prototype:void 0,ac=sc?sc.toString:void 0;function Af(n){if(typeof n=="string")return n;if(W(n))return sa(n,Af)+"";if(ia(n))return ac?ac.call(n):"";var e=n+"";return e=="0"&&1/n==-1/0?"-0":e}var Yg=/\s/;function qg(n){for(var e=n.length;e--&&Yg.test(n.charAt(e)););return e}var Xg=/^\s+/;function Jg(n){return n&&n.slice(0,qg(n)+1).replace(Xg,"")}var oc=NaN,Qg=/^[-+]0x[0-9a-f]+$/i,Zg=/^0b[01]+$/i,ey=/^0o[0-7]+$/i,ty=parseInt;function ny(n){if(typeof n=="number")return n;if(ia(n))return oc;if(Yn(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=Yn(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=Jg(n);var t=Zg.test(n);return t||ey.test(n)?ty(n.slice(2),t?2:8):Qg.test(n)?oc:+n}var lc=1/0,ry=17976931348623157e292;function iy(n){if(!n)return n===0?n:0;if(n=ny(n),n===lc||n===-lc){var e=n<0?-1:1;return e*ry}return n===n?n:0}function aa(n){var e=iy(n),t=e%1;return e===e?t?e-t:e:0}function he(){}function vf(n,e,t,r){for(var i=n.length,s=t+-1;++s<i;)if(e(n[s],s,n))return s;return-1}function sy(n){return n!==n}function ay(n,e,t){for(var r=t-1,i=n.length;++r<i;)if(n[r]===e)return r;return-1}function pl(n,e,t){return e===e?ay(n,e,t):vf(n,sy,t)}function If(n,e){var t=n==null?0:n.length;return!!t&&pl(n,e,0)>-1}var oy=Object.prototype,ly=oy.hasOwnProperty,Ze=zp(function(n,e){if(jp(e)||fi(e)){Yp(e,St(e),n);return}for(var t in e)ly.call(e,t)&&Fd(n,t,e[t])}),cy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,uy=/^\w*$/;function ml(n,e){if(W(n))return!1;var t=typeof n;return t=="number"||t=="symbol"||t=="boolean"||n==null||ia(n)?!0:uy.test(n)||!cy.test(n)||e!=null&&n in Object(e)}var dy=500;function fy(n){var e=qp(n,function(r){return t.size===dy&&t.clear(),r}),t=e.cache;return e}var hy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,py=/\\(\\)?/g,my=fy(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(hy,function(t,r,i,s){e.push(i?s.replace(py,"$1"):r||t)}),e});function gy(n){return n==null?"":Af(n)}function oa(n,e){return W(n)?n:ml(n,e)?[n]:my(gy(n))}function gi(n){if(typeof n=="string"||ia(n))return n;var e=n+"";return e=="0"&&1/n==-1/0?"-0":e}function gl(n,e){e=oa(e,n);for(var t=0,r=e.length;n!=null&&t<r;)n=n[gi(e[t++])];return t&&t==r?n:void 0}function yy(n,e,t){var r=n==null?void 0:gl(n,e);return r===void 0?t:r}var cc=jn?jn.isConcatSpreadable:void 0;function Ty(n){return W(n)||Ud(n)||!!(cc&&n&&n[cc])}function yl(n,e,t,r,i){var s=-1,a=n.length;for(t||(t=Ty),i||(i=[]);++s<a;){var o=n[s];t(o)?Vd(i,o):r||(i[i.length]=o)}return i}function ft(n){var e=n==null?0:n.length;return e?yl(n):[]}function kf(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function Ry(n,e,t,r){var i=-1,s=n==null?0:n.length;for(r&&s&&(t=n[++i]);++i<s;)t=e(t,n[i],i,n);return t}var Ey=Object.getOwnPropertySymbols,Ay=Ey?function(n){for(var e=[];n;)Vd(e,sm(n)),n=Xp(n);return e}:im;function vy(n){return am(n,Gd,Ay)}function yi(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 Iy="__lodash_hash_undefined__";function ky(n){return this.__data__.set(n,Iy),this}function Sy(n){return this.__data__.has(n)}function Jn(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new Jp;++e<t;)this.add(n[e])}Jn.prototype.add=Jn.prototype.push=ky;Jn.prototype.has=Sy;function Sf(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(e(n[t],t,n))return!0;return!1}function Tl(n,e){return n.has(e)}var Ny=1,xy=2;function Nf(n,e,t,r,i,s){var a=t&Ny,o=n.length,l=e.length;if(o!=l&&!(a&&l>o))return!1;var c=s.get(n),u=s.get(e);if(c&&u)return c==e&&u==n;var d=-1,f=!0,h=t&xy?new Jn:void 0;for(s.set(n,e),s.set(e,n);++d<o;){var p=n[d],T=e[d];if(r)var A=a?r(T,p,d,e,n,s):r(p,T,d,n,e,s);if(A!==void 0){if(A)continue;f=!1;break}if(h){if(!Sf(e,function(y,R){if(!Tl(h,R)&&(p===y||i(p,y,t,r,s)))return h.push(R)})){f=!1;break}}else if(!(p===T||i(p,T,t,r,s))){f=!1;break}}return s.delete(n),s.delete(e),f}function Cy(n){var e=-1,t=Array(n.size);return n.forEach(function(r,i){t[++e]=[i,r]}),t}function Rl(n){var e=-1,t=Array(n.size);return n.forEach(function(r){t[++e]=r}),t}var $y=1,_y=2,Ly="[object Boolean]",Oy="[object Date]",wy="[object Error]",Py="[object Map]",by="[object Number]",My="[object RegExp]",Dy="[object Set]",Fy="[object String]",Uy="[object Symbol]",Gy="[object ArrayBuffer]",By="[object DataView]",uc=jn?jn.prototype:void 0,Ma=uc?uc.valueOf:void 0;function Ky(n,e,t,r,i,s,a){switch(t){case By:if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case Gy:return!(n.byteLength!=e.byteLength||!s(new Wl(n),new Wl(e)));case Ly:case Oy:case by:return Bd(+n,+e);case wy:return n.name==e.name&&n.message==e.message;case My:case Fy:return n==e+"";case Py:var o=Cy;case Dy:var l=r&$y;if(o||(o=Rl),n.size!=e.size&&!l)return!1;var c=a.get(n);if(c)return c==e;r|=_y,a.set(n,e);var u=Nf(o(n),o(e),r,i,s,a);return a.delete(n),u;case Uy:if(Ma)return Ma.call(n)==Ma.call(e)}return!1}var Wy=1,Vy=Object.prototype,Hy=Vy.hasOwnProperty;function zy(n,e,t,r,i,s){var a=t&Wy,o=Yl(n),l=o.length,c=Yl(e),u=c.length;if(l!=u&&!a)return!1;for(var d=l;d--;){var f=o[d];if(!(a?f in e:Hy.call(e,f)))return!1}var h=s.get(n),p=s.get(e);if(h&&p)return h==e&&p==n;var T=!0;s.set(n,e),s.set(e,n);for(var A=a;++d<l;){f=o[d];var y=n[f],R=e[f];if(r)var m=a?r(R,y,f,e,n,s):r(y,R,f,n,e,s);if(!(m===void 0?y===R||i(y,R,t,r,s):m)){T=!1;break}A||(A=f=="constructor")}if(T&&!A){var E=n.constructor,$=e.constructor;E!=$&&"constructor"in n&&"constructor"in e&&!(typeof E=="function"&&E instanceof E&&typeof $=="function"&&$ instanceof $)&&(T=!1)}return s.delete(n),s.delete(e),T}var jy=1,dc="[object Arguments]",fc="[object Array]",Mi="[object Object]",Yy=Object.prototype,hc=Yy.hasOwnProperty;function qy(n,e,t,r,i,s){var a=W(n),o=W(e),l=a?fc:Vl(n),c=o?fc:Vl(e);l=l==dc?Mi:l,c=c==dc?Mi:c;var u=l==Mi,d=c==Mi,f=l==c;if(f&&Hl(n)){if(!Hl(e))return!1;a=!0,u=!1}if(f&&!u)return s||(s=new Qi),a||Qp(n)?Nf(n,e,t,r,i,s):Ky(n,e,l,t,r,i,s);if(!(t&jy)){var h=u&&hc.call(n,"__wrapped__"),p=d&&hc.call(e,"__wrapped__");if(h||p){var T=h?n.value():n,A=p?e.value():e;return s||(s=new Qi),i(T,A,t,r,s)}}return f?(s||(s=new Qi),zy(n,e,t,r,i,s)):!1}function El(n,e,t,r,i){return n===e?!0:n==null||e==null||!ai(n)&&!ai(e)?n!==n&&e!==e:qy(n,e,t,r,El,i)}var Xy=1,Jy=2;function Qy(n,e,t,r){var i=t.length,s=i;if(n==null)return!s;for(n=Object(n);i--;){var a=t[i];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++i<s;){a=t[i];var o=a[0],l=n[o],c=a[1];if(a[2]){if(l===void 0&&!(o in n))return!1}else{var u=new Qi,d;if(!(d===void 0?El(c,l,Xy|Jy,r,u):d))return!1}}return!0}function xf(n){return n===n&&!Yn(n)}function Zy(n){for(var e=St(n),t=e.length;t--;){var r=e[t],i=n[r];e[t]=[r,i,xf(i)]}return e}function Cf(n,e){return function(t){return t==null?!1:t[n]===e&&(e!==void 0||n in Object(t))}}function eT(n){var e=Zy(n);return e.length==1&&e[0][2]?Cf(e[0][0],e[0][1]):function(t){return t===n||Qy(t,n,e)}}function tT(n,e){return n!=null&&e in Object(n)}function $f(n,e,t){e=oa(e,n);for(var r=-1,i=e.length,s=!1;++r<i;){var a=gi(e[r]);if(!(s=n!=null&&t(n,a)))break;n=n[a]}return s||++r!=i?s:(i=n==null?0:n.length,!!i&&Zp(i)&&Kd(a,i)&&(W(n)||Ud(n)))}function nT(n,e){return n!=null&&$f(n,e,tT)}var rT=1,iT=2;function sT(n,e){return ml(n)&&xf(e)?Cf(gi(n),e):function(t){var r=yy(t,n);return r===void 0&&r===e?nT(t,n):El(e,r,rT|iT)}}function aT(n){return function(e){return e?.[n]}}function oT(n){return function(e){return gl(e,n)}}function lT(n){return ml(n)?aT(gi(n)):oT(n)}function Nt(n){return typeof n=="function"?n:n==null?Rs:typeof n=="object"?W(n)?sT(n[0],n[1]):eT(n):lT(n)}function cT(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function uT(n,e){return n&&em(n,e,St)}function dT(n,e){return function(t,r){if(t==null)return t;if(!fi(t))return n(t,r);for(var i=t.length,s=-1,a=Object(t);++s<i&&r(a[s],s,a)!==!1;);return t}}var En=dT(uT);function fT(n,e,t,r){return En(n,function(i,s,a){e(r,i,t(i),a)}),r}function hT(n,e){return function(t,r){var i=W(t)?cT:fT,s=e?e():{};return i(t,n,Nt(r),s)}}var _f=Object.prototype,pT=_f.hasOwnProperty,Al=Wd(function(n,e){n=Object(n);var t=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&tm(e[0],e[1],i)&&(r=1);++t<r;)for(var s=e[t],a=Gd(s),o=-1,l=a.length;++o<l;){var c=a[o],u=n[c];(u===void 0||Bd(u,_f[c])&&!pT.call(n,c))&&(n[c]=s[c])}return n}),mT=200;function gT(n,e,t,r){var i=-1,s=If,a=!0,o=n.length,l=[],c=e.length;if(!o)return l;e.length>=mT&&(s=Tl,a=!1,e=new Jn(e));e:for(;++i<o;){var u=n[i],d=u;if(u=u!==0?u:0,a&&d===d){for(var f=c;f--;)if(e[f]===d)continue e;l.push(u)}else s(e,d,r)||l.push(u)}return l}var la=Wd(function(n,e){return zl(n)?gT(n,yl(e,1,zl,!0)):[]});function Qn(n){var e=n==null?0:n.length;return e?n[e-1]:void 0}function ve(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:aa(e),kf(n,e<0?0:e,r)):[]}function ci(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:aa(e),e=r-e,kf(n,0,e<0?0:e)):[]}function yT(n){return typeof n=="function"?n:Rs}function P(n,e){var t=W(n)?om:En;return t(n,yT(e))}function TT(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 RT(n,e){var t=!0;return En(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function ht(n,e,t){var r=W(n)?TT:RT;return r(n,Nt(e))}function Lf(n,e){var t=[];return En(n,function(r,i,s){e(r,i,s)&&t.push(r)}),t}function ct(n,e){var t=W(n)?Hd:Lf;return t(n,Nt(e))}function ET(n){return function(e,t,r){var i=Object(e);if(!fi(e)){var s=Nt(t);e=St(e),t=function(o){return s(i[o],o,i)}}var a=n(e,t,r);return a>-1?i[s?e[a]:a]:void 0}}var AT=Math.max;function vT(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=t==null?0:aa(t);return i<0&&(i=AT(r+i,0)),vf(n,Nt(e),i)}var Zn=ET(vT);function mt(n){return n&&n.length?n[0]:void 0}function IT(n,e){var t=-1,r=fi(n)?Array(n.length):[];return En(n,function(i,s,a){r[++t]=e(i,s,a)}),r}function C(n,e){var t=W(n)?sa:IT;return t(n,Nt(e))}function at(n,e){return yl(C(n,e))}var kT=Object.prototype,ST=kT.hasOwnProperty,NT=hT(function(n,e,t){ST.call(n,t)?n[t].push(e):nm(n,t,[e])}),xT=Object.prototype,CT=xT.hasOwnProperty;function $T(n,e){return n!=null&&CT.call(n,e)}function O(n,e){return n!=null&&$f(n,e,$T)}var _T="[object String]";function We(n){return typeof n=="string"||!W(n)&&ai(n)&&el(n)==_T}function LT(n,e){return sa(e,function(t){return n[t]})}function me(n){return n==null?[]:LT(n,St(n))}var OT=Math.max;function Ue(n,e,t,r){n=fi(n)?n:me(n),t=t?aa(t):0;var i=n.length;return t<0&&(t=OT(i+t,0)),We(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&pl(n,e,t)>-1}function pc(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return pl(n,e,i)}var wT="[object RegExp]";function PT(n){return ai(n)&&el(n)==wT}var mc=jl&&jl.isRegExp,Ft=mc?rm(mc):PT;function Ut(n){return n===void 0}var bT="Expected a function";function MT(n){if(typeof n!="function")throw new TypeError(bT);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function DT(n,e,t,r){if(!Yn(n))return n;e=oa(e,n);for(var i=-1,s=e.length,a=s-1,o=n;o!=null&&++i<s;){var l=gi(e[i]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return n;if(i!=a){var u=o[l];c=void 0,c===void 0&&(c=Yn(u)?u:Kd(e[i+1])?[]:{})}Fd(o,l,c),o=o[l]}return n}function FT(n,e,t){for(var r=-1,i=e.length,s={};++r<i;){var a=e[r],o=gl(n,a);t(o,a)&&DT(s,oa(a,n),o)}return s}function yt(n,e){if(n==null)return{};var t=sa(vy(n),function(r){return[r]});return e=Nt(e),FT(n,t,function(r,i){return e(r,i[0])})}function UT(n,e,t,r,i){return i(n,function(s,a,o){t=r?(r=!1,s):e(t,s,a,o)}),t}function et(n,e,t){var r=W(n)?Ry:UT,i=arguments.length<3;return r(n,Nt(e),t,i,En)}function ca(n,e){var t=W(n)?Hd:Lf;return t(n,MT(Nt(e)))}function GT(n,e){var t;return En(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Of(n,e,t){var r=W(n)?Sf:GT;return r(n,Nt(e))}var BT=1/0,KT=xa&&1/Rl(new xa([,-0]))[1]==BT?function(n){return new xa(n)}:he,WT=200;function VT(n,e,t){var r=-1,i=If,s=n.length,a=!0,o=[],l=o;if(s>=WT){var c=KT(n);if(c)return Rl(c);a=!1,i=Tl,l=new Jn}else l=o;e:for(;++r<s;){var u=n[r],d=u;if(u=u!==0?u:0,a&&d===d){for(var f=l.length;f--;)if(l[f]===d)continue e;o.push(u)}else i(l,d,t)||(l!==o&&l.push(d),o.push(u))}return o}function vl(n){return n&&n.length?VT(n):[]}function po(n){console&&console.error&&console.error(`Error: ${n}`)}function wf(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function Pf(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function bf(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function HT(n){return zT(n)?n.LABEL:n.name}function zT(n){return We(n.LABEL)&&n.LABEL!==""}let xt=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),P(this.definition,t=>{t.accept(e)})}},tt=class extends xt{constructor(e){super([]),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},ar=class extends xt{constructor(e){super(e.definition),this.orgText="",Ze(this,yt(e,t=>t!==void 0))}},Ve=class extends xt{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Ze(this,yt(e,t=>t!==void 0))}},Ge=class extends xt{constructor(e){super(e.definition),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}},Ct=class extends xt{constructor(e){super(e.definition),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}},$t=class extends xt{constructor(e){super(e.definition),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}},ge=class extends xt{constructor(e){super(e.definition),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}},Tt=class extends xt{constructor(e){super(e.definition),this.idx=1,Ze(this,yt(e,t=>t!==void 0))}},Rt=class extends xt{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,Ze(this,yt(e,t=>t!==void 0))}},ne=class{constructor(e){this.idx=1,Ze(this,yt(e,t=>t!==void 0))}accept(e){e.visit(this)}};function jT(n){return C(n,ts)}function ts(n){function e(t){return C(t,ts)}if(n instanceof tt){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return We(n.label)&&(t.label=n.label),t}else{if(n instanceof Ve)return{type:"Alternative",definition:e(n.definition)};if(n instanceof Ge)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Ct)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof $t)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:ts(new ne({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof Tt)return{type:"RepetitionWithSeparator",idx:n.idx,separator:ts(new ne({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ge)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof Rt)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof ne){const t={type:"Terminal",name:n.terminalType.name,label:HT(n.terminalType),idx:n.idx};We(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Ft(r)?r.source:r),t}else{if(n instanceof ar)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}let or=class{visit(e){const t=e;switch(t.constructor){case tt:return this.visitNonTerminal(t);case Ve:return this.visitAlternative(t);case Ge:return this.visitOption(t);case Ct:return this.visitRepetitionMandatory(t);case $t:return this.visitRepetitionMandatoryWithSeparator(t);case Tt:return this.visitRepetitionWithSeparator(t);case ge:return this.visitRepetition(t);case Rt:return this.visitAlternation(t);case ne:return this.visitTerminal(t);case ar: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 YT(n){return n instanceof Ve||n instanceof Ge||n instanceof ge||n instanceof Ct||n instanceof $t||n instanceof Tt||n instanceof ne||n instanceof ar}function ks(n,e=[]){return n instanceof Ge||n instanceof ge||n instanceof Tt?!0:n instanceof Rt?Of(n.definition,r=>ks(r,e)):n instanceof tt&&Ue(e,n)?!1:n instanceof xt?(n instanceof tt&&e.push(n),ht(n.definition,r=>ks(r,e))):!1}function qT(n){return n instanceof Rt}function vt(n){if(n instanceof tt)return"SUBRULE";if(n instanceof Ge)return"OPTION";if(n instanceof Rt)return"OR";if(n instanceof Ct)return"AT_LEAST_ONE";if(n instanceof $t)return"AT_LEAST_ONE_SEP";if(n instanceof Tt)return"MANY_SEP";if(n instanceof ge)return"MANY";if(n instanceof ne)return"CONSUME";throw Error("non exhaustive match")}let ua=class{walk(e,t=[]){P(e.definition,(r,i)=>{const s=ve(e.definition,i+1);if(r instanceof tt)this.walkProdRef(r,s,t);else if(r instanceof ne)this.walkTerminal(r,s,t);else if(r instanceof Ve)this.walkFlat(r,s,t);else if(r instanceof Ge)this.walkOption(r,s,t);else if(r instanceof Ct)this.walkAtLeastOne(r,s,t);else if(r instanceof $t)this.walkAtLeastOneSep(r,s,t);else if(r instanceof Tt)this.walkManySep(r,s,t);else if(r instanceof ge)this.walkMany(r,s,t);else if(r instanceof Rt)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}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 Ge({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=gc(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new Ge({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=gc(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);P(e.definition,s=>{const a=new Ve({definition:[s]});this.walk(a,i)})}};function gc(n,e,t){return[new Ge({definition:[new ne({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function Ti(n){if(n instanceof tt)return Ti(n.referencedRule);if(n instanceof ne)return QT(n);if(YT(n))return XT(n);if(qT(n))return JT(n);throw Error("non exhaustive match")}function XT(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=ks(s),e=e.concat(Ti(s)),r=r+1,i=t.length>r;return vl(e)}function JT(n){const e=C(n.definition,t=>Ti(t));return vl(ft(e))}function QT(n){return[n.terminalType]}const Mf="_~IN~_";let ZT=class extends ua{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=tR(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new Ve({definition:s}),o=Ti(a);this.follows[i]=o}};function eR(n){const e={};return P(n,t=>{const r=new ZT(t).startWalking();Ze(e,r)}),e}function tR(n,e){return n.name+e+Mf}let ns={};const nR=new hf;function da(n){const e=n.toString();if(ns.hasOwnProperty(e))return ns[e];{const t=nR.pattern(e);return ns[e]=t,t}}function rR(){ns={}}const Df="Complement Sets are not supported for first char optimization",Ss=`Unable to use "first char" lexer optimizations:
13
+ `;function iR(n,e=!1){try{const t=da(n);return mo(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Df)e&&wf(`${Ss} 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.`),po(`${Ss}
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 mo(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)mo(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":Di(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(Df);P(a.value,l=>{if(typeof l=="number")Di(l,e,t);else{const c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)Di(u,e,t);else{for(let u=c.from;u<=c.to&&u<Yr;u++)Di(u,e,t);if(c.to>=Yr){const u=c.from>=Yr?c.from:Yr,d=c.to,f=Kt(u),h=Kt(d);for(let p=f;p<=h;p++)e[p]=p}}}});break;case"Group":mo(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"&&go(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return me(e)}function Di(n,e,t){const r=Kt(n);e[r]=r,t===!0&&sR(n,e)}function sR(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=Kt(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=Kt(i.charCodeAt(0));e[s]=s}}}function yc(n,e){return Zn(n.value,t=>{if(typeof t=="number")return Ue(e,t);{const r=t;return Zn(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function go(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?W(n.value)?ht(n.value,go):go(n.value):!1}let aR=class extends na{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){Ue(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?yc(e,this.targetCharCodes)===void 0&&(this.found=!0):yc(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function Il(n,e){if(e instanceof RegExp){const t=da(e),r=new aR(n);return r.visit(t),r.found}else return Zn(e,t=>Ue(n,t.charCodeAt(0)))!==void 0}const fn="PATTERN",jr="defaultMode",Fi="modes";let Ff=typeof new RegExp("(?:)").sticky=="boolean";function oR(n,e){e=Al(e,{useSticky:Ff,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
+ `],tracer:(R,m)=>m()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{_R()});let r;t("Reject Lexer.NA",()=>{r=ca(n,R=>R[fn]===Be.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=C(r,R=>{const m=R[fn];if(Ft(m)){const E=m.source;return E.length===1&&E!=="^"&&E!=="$"&&E!=="."&&!m.ignoreCase?E:E.length===2&&E[0]==="\\"&&!Ue(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],E[1])?E[1]:e.useSticky?Rc(m):Tc(m)}else{if(yn(m))return i=!0,{exec:m};if(typeof m=="object")return i=!0,m;if(typeof m=="string"){if(m.length===1)return m;{const E=m.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),$=new RegExp(E);return e.useSticky?Rc($):Tc($)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=C(r,R=>R.tokenTypeIdx),o=C(r,R=>{const m=R.GROUP;if(m!==Be.SKIPPED){if(We(m))return m;if(Ut(m))return!1;throw Error("non exhaustive match")}}),l=C(r,R=>{const m=R.LONGER_ALT;if(m)return W(m)?C(m,$=>pc(r,$)):[pc(r,m)]}),c=C(r,R=>R.PUSH_MODE),u=C(r,R=>O(R,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const R=Bf(e.lineTerminatorCharacters);d=C(r,m=>!1),e.positionTracking!=="onlyOffset"&&(d=C(r,m=>O(m,"LINE_BREAKS")?!!m.LINE_BREAKS:Gf(m,R)===!1&&Il(R,m.PATTERN)))});let f,h,p,T;t("Misc Mapping #2",()=>{f=C(r,Uf),h=C(s,xR),p=et(r,(R,m)=>{const E=m.GROUP;return We(E)&&E!==Be.SKIPPED&&(R[E]=[]),R},{}),T=C(s,(R,m)=>({pattern:s[m],longerAlt:l[m],canLineTerminator:d[m],isCustom:f[m],short:h[m],group:o[m],push:c[m],pop:u[m],tokenTypeIdx:a[m],tokenType:r[m]}))});let A=!0,y=[];return e.safeMode||t("First Char Optimization",()=>{y=et(r,(R,m,E)=>{if(typeof m.PATTERN=="string"){const $=m.PATTERN.charCodeAt(0),V=Kt($);Da(R,V,T[E])}else if(W(m.START_CHARS_HINT)){let $;P(m.START_CHARS_HINT,V=>{const ce=typeof V=="string"?V.charCodeAt(0):V,oe=Kt(ce);$!==oe&&($=oe,Da(R,oe,T[E]))})}else if(Ft(m.PATTERN))if(m.PATTERN.unicode)A=!1,e.ensureOptimizations&&po(`${Ss} Unable to analyze < ${m.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 $=iR(m.PATTERN,e.ensureOptimizations);j($)&&(A=!1),P($,V=>{Da(R,V,T[E])})}else e.ensureOptimizations&&po(`${Ss} TokenType: <${m.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`),A=!1;return R},[])}),{emptyGroups:p,patternIdxToConfig:T,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:A}}function lR(n,e){let t=[];const r=uR(n);t=t.concat(r.errors);const i=dR(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(cR(s)),t=t.concat(RR(s)),t=t.concat(ER(s,e)),t=t.concat(AR(s)),t}function cR(n){let e=[];const t=ct(n,r=>Ft(r[fn]));return e=e.concat(hR(t)),e=e.concat(gR(t)),e=e.concat(yR(t)),e=e.concat(TR(t)),e=e.concat(pR(t)),e}function uR(n){const e=ct(n,i=>!O(i,fn)),t=C(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:ie.MISSING_PATTERN,tokenTypes:[i]})),r=la(n,e);return{errors:t,valid:r}}function dR(n){const e=ct(n,i=>{const s=i[fn];return!Ft(s)&&!yn(s)&&!O(s,"exec")&&!We(s)}),t=C(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ie.INVALID_PATTERN,tokenTypes:[i]})),r=la(n,e);return{errors:t,valid:r}}const fR=/[^\\][$]/;function hR(n){class e extends na{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=ct(n,i=>{const s=i.PATTERN;try{const a=da(s),o=new e;return o.visit(a),o.found}catch{return fR.test(s.source)}});return C(t,i=>({message:`Unexpected RegExp Anchor Error:
28
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ie.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function pR(n){const e=ct(n,r=>r.PATTERN.test(""));return C(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:ie.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const mR=/[^\\[][\^]|^\^/;function gR(n){class e extends na{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=ct(n,i=>{const s=i.PATTERN;try{const a=da(s),o=new e;return o.visit(a),o.found}catch{return mR.test(s.source)}});return C(t,i=>({message:`Unexpected RegExp Anchor Error:
30
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ie.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function yR(n){const e=ct(n,r=>{const i=r[fn];return i instanceof RegExp&&(i.multiline||i.global)});return C(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ie.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function TR(n){const e=[];let t=C(n,s=>et(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!Ue(e,o)&&o.PATTERN!==Be.NA&&(e.push(o),a.push(o)),a),[]));t=yi(t);const r=ct(t,s=>s.length>1);return C(r,s=>{const a=C(s,l=>l.name);return{message:`The same RegExp pattern ->${mt(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:ie.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function RR(n){const e=ct(n,r=>{if(!O(r,"GROUP"))return!1;const i=r.GROUP;return i!==Be.SKIPPED&&i!==Be.NA&&!We(i)});return C(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ie.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function ER(n,e){const t=ct(n,i=>i.PUSH_MODE!==void 0&&!Ue(e,i.PUSH_MODE));return C(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:ie.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function AR(n){const e=[],t=et(n,(r,i,s)=>{const a=i.PATTERN;return a===Be.NA||(We(a)?r.push({str:a,idx:s,tokenType:i}):Ft(a)&&IR(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return P(n,(r,i)=>{P(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&vR(s,r.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
32
+ Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
33
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:ie.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function vR(n,e){if(Ft(e)){const t=e.exec(n);return t!==null&&t.index===0}else{if(yn(e))return e(n,0,[],{});if(O(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function IR(n){return Zn([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>n.source.indexOf(t)!==-1)===void 0}function Tc(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function Rc(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function kR(n,e,t){const r=[];return O(n,jr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+jr+`> property in its definition
34
+ `,type:ie.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),O(n,Fi)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Fi+`> property in its definition
35
+ `,type:ie.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),O(n,Fi)&&O(n,jr)&&!O(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${jr}: <${n.defaultMode}>which does not exist
36
+ `,type:ie.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),O(n,Fi)&&P(n.modes,(i,s)=>{P(i,(a,o)=>{if(Ut(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
37
+ `,type:ie.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(O(a,"LONGER_ALT")){const l=W(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];P(l,c=>{!Ut(c)&&!Ue(i,c)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}>
38
+ `,type:ie.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function SR(n,e,t){const r=[];let i=!1;const s=yi(ft(me(n.modes))),a=ca(s,l=>l[fn]===Be.NA),o=Bf(t);return e&&P(a,l=>{const c=Gf(l,o);if(c!==!1){const d={message:$R(l,c),type:c.issue,tokenType:l};r.push(d)}else O(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):Il(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
39
+ This Lexer has been defined to track line and column information,
40
+ But none of the Token Types can be identified as matching a line terminator.
41
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
42
+ for details.`,type:ie.NO_LINE_BREAKS_FLAGS}),r}function NR(n){const e={},t=St(n);return P(t,r=>{const i=n[r];if(W(i))e[r]=[];else throw Error("non exhaustive match")}),e}function Uf(n){const e=n.PATTERN;if(Ft(e))return!1;if(yn(e))return!0;if(O(e,"exec"))return!0;if(We(e))return!1;throw Error("non exhaustive match")}function xR(n){return We(n)&&n.length===1?n.charCodeAt(0):!1}const CR={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 Gf(n,e){if(O(n,"LINE_BREAKS"))return!1;if(Ft(n.PATTERN)){try{Il(e,n.PATTERN)}catch(t){return{issue:ie.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(We(n.PATTERN))return!1;if(Uf(n))return{issue:ie.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function $R(n,e){if(e.issue===ie.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
43
+ The problem is in the <${n.name}> Token Type
44
+ Root cause: ${e.errMsg}.
45
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===ie.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
46
+ The problem is in the <${n.name}> Token Type
47
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Bf(n){return C(n,t=>We(t)?t.charCodeAt(0):t)}function Da(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Yr=256;let rs=[];function Kt(n){return n<Yr?n:rs[n]}function _R(){if(j(rs)){rs=new Array(65536);for(let n=0;n<65536;n++)rs[n]=n>255?255+~~(n/255):n}}function Ri(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Ns(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let Ec=1;const Kf={};function Ei(n){const e=LR(n);OR(e),PR(e),wR(e),P(e,t=>{t.isParent=t.categoryMatches.length>0})}function LR(n){let e=xe(n),t=n,r=!0;for(;r;){t=yi(ft(C(t,s=>s.CATEGORIES)));const i=la(t,e);e=e.concat(i),j(i)?r=!1:t=i}return e}function OR(n){P(n,e=>{Vf(e)||(Kf[Ec]=e,e.tokenTypeIdx=Ec++),Ac(e)&&!W(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ac(e)||(e.CATEGORIES=[]),bR(e)||(e.categoryMatches=[]),MR(e)||(e.categoryMatchesMap={})})}function wR(n){P(n,e=>{e.categoryMatches=[],P(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(Kf[r].tokenTypeIdx)})})}function PR(n){P(n,e=>{Wf([],e)})}function Wf(n,e){P(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),P(e.CATEGORIES,t=>{const r=n.concat(e);Ue(r,t)||Wf(r,t)})}function Vf(n){return O(n,"tokenTypeIdx")}function Ac(n){return O(n,"CATEGORIES")}function bR(n){return O(n,"categoryMatches")}function MR(n){return O(n,"categoryMatchesMap")}function DR(n){return O(n,"tokenTypeIdx")}const yo={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var ie;(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"})(ie||(ie={}));const qr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
+ `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:yo,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(qr);let Be=class{constructor(e,t=qr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=Pf(s),c=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&c(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
+ a boolean 2nd argument is no longer supported`);this.config=Ze({},qr,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===qr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=CR;else if(this.config.lineTerminatorCharacters===qr.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),W(e)?i={modes:{defaultMode:xe(e)},defaultMode:jr}:(s=!1,i=xe(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(kR(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(SR(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},P(i.modes,(o,l)=>{i.modes[l]=ca(o,c=>Ut(c))});const a=St(i.modes);if(P(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(lR(o,a))}),j(this.lexerDefinitionErrors)){Ei(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=oR(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=Ze({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!j(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=C(this.lexerDefinitionErrors,c=>c.message).join(`-----------------------
51
+ `);throw new Error(`Errors detected in definition of Lexer:
52
+ `+l)}P(this.lexerDefinitionWarning,o=>{wf(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Ff?(this.chopInput=Rs,this.match=this.matchWithTest):(this.updateLastIndex=he,this.match=this.matchWithExec),s&&(this.handleModes=he),this.trackStartLines===!1&&(this.computeNewColumn=Rs),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=he),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=et(this.canModeBeOptimized,(l,c,u)=>(c===!1&&l.push(u),l),[]);if(t.ensureOptimizations&&!j(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",()=>{bf(this)})})}tokenize(e,t=this.defaultMode){if(!j(this.lexerDefinitionErrors)){const i=C(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
55
+ `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
+ `+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,l,c,u,d,f,h,p,T,A,y;const R=e,m=R.length;let E=0,$=0;const V=this.hasCustom?0:Math.floor(e.length/10),ce=new Array(V),oe=[];let Ce=this.trackStartLines?1:void 0,le=this.trackStartLines?1:void 0;const k=NR(this.emptyGroups),v=this.trackStartLines,x=this.config.lineTerminatorsPattern;let S=0,F=[],D=[];const w=[],$e=[];Object.freeze($e);let J;function Y(){return F}function At(G){const q=Kt(G),Ye=D[q];return Ye===void 0?$e:Ye}const Na=G=>{if(w.length===1&&G.tokenType.PUSH_MODE===void 0){const q=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(G);oe.push({offset:G.startOffset,line:G.startLine,column:G.startColumn,length:G.image.length,message:q})}else{w.pop();const q=Qn(w);F=this.patternIdxToConfig[q],D=this.charCodeToPatternIdxToConfig[q],S=F.length;const Ye=this.canModeBeOptimized[q]&&this.config.safeMode===!1;D&&Ye?J=At:J=Y}};function dr(G){w.push(G),D=this.charCodeToPatternIdxToConfig[G],F=this.patternIdxToConfig[G],S=F.length,S=F.length;const q=this.canModeBeOptimized[G]&&this.config.safeMode===!1;D&&q?J=At:J=Y}dr.call(this,t);let Z;const fr=this.config.recoveryEnabled;for(;E<m;){l=null;const G=R.charCodeAt(E),q=J(G),Ye=q.length;for(r=0;r<Ye;r++){Z=q[r];const H=Z.pattern;c=null;const de=Z.short;if(de!==!1?G===de&&(l=H):Z.isCustom===!0?(y=H.exec(R,E,ce,k),y!==null?(l=y[0],y.payload!==void 0&&(c=y.payload)):l=null):(this.updateLastIndex(H,E),l=this.match(H,e,E)),l!==null){if(o=Z.longerAlt,o!==void 0){const Re=o.length;for(s=0;s<Re;s++){const fe=F[o[s]],we=fe.pattern;if(u=null,fe.isCustom===!0?(y=we.exec(R,E,ce,k),y!==null?(a=y[0],y.payload!==void 0&&(u=y.payload)):a=null):(this.updateLastIndex(we,E),a=this.match(we,e,E)),a&&a.length>l.length){l=a,c=u,Z=fe;break}}}break}}if(l!==null){if(d=l.length,f=Z.group,f!==void 0&&(h=Z.tokenTypeIdx,p=this.createTokenInstance(l,E,h,Z.tokenType,Ce,le,d),this.handlePayload(p,c),f===!1?$=this.addToken(ce,$,p):k[f].push(p)),e=this.chopInput(e,d),E=E+d,le=this.computeNewColumn(le,d),v===!0&&Z.canLineTerminator===!0){let H=0,de,Re;x.lastIndex=0;do de=x.test(l),de===!0&&(Re=x.lastIndex-1,H++);while(de===!0);H!==0&&(Ce=Ce+H,le=d-Re,this.updateTokenEndLineColumnLocation(p,f,Re,H,Ce,le,d))}this.handleModes(Z,Na,dr,p)}else{const H=E,de=Ce,Re=le;let fe=fr===!1;for(;fe===!1&&E<m;)for(e=this.chopInput(e,1),E++,i=0;i<S;i++){const we=F[i],tn=we.pattern,hr=we.short;if(hr!==!1?R.charCodeAt(E)===hr&&(fe=!0):we.isCustom===!0?fe=tn.exec(R,E,ce,k)!==null:(this.updateLastIndex(tn,E),fe=tn.exec(e)!==null),fe===!0)break}if(T=E-H,le=this.computeNewColumn(le,T),A=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(R,H,T,de,Re),oe.push({offset:H,line:de,column:Re,length:T,message:A}),fr===!1)break}}return this.hasCustom||(ce.length=$),{tokens:ce,groups:k,errors:oe}}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 l,c;t!==void 0&&(l=r===o-1,c=l?-1:0,i===1&&l===!0||(e.endLine=s+c,e.endColumn=a-1+-c))}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++,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}};Be.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.";Be.NA=/NOT_APPLICABLE/;function ii(n){return Hf(n)?n.LABEL:n.name}function Hf(n){return We(n.LABEL)&&n.LABEL!==""}const FR="parent",vc="categories",Ic="label",kc="group",Sc="push_mode",Nc="pop_mode",xc="longer_alt",Cc="line_breaks",$c="start_chars_hint";function zf(n){return UR(n)}function UR(n){const e=n.pattern,t={};if(t.name=n.name,Ut(e)||(t.PATTERN=e),O(n,FR))throw`The parent property is no longer supported.
57
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return O(n,vc)&&(t.CATEGORIES=n[vc]),Ei([t]),O(n,Ic)&&(t.LABEL=n[Ic]),O(n,kc)&&(t.GROUP=n[kc]),O(n,Nc)&&(t.POP_MODE=n[Nc]),O(n,Sc)&&(t.PUSH_MODE=n[Sc]),O(n,xc)&&(t.LONGER_ALT=n[xc]),O(n,Cc)&&(t.LINE_BREAKS=n[Cc]),O(n,$c)&&(t.START_CHARS_HINT=n[$c]),t}const Wt=zf({name:"EOF",pattern:Be.NA});Ei([Wt]);function kl(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 GR(n,e){return Ri(n,e)}const xn={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${Hf(n)?`--> ${ii(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
58
+ but found: '`+mt(e).image+"'";if(r)return s+r+o;{const l=et(n,(f,h)=>f.concat(h),[]),c=C(l,f=>`[${C(f,h=>ii(h)).join(", ")}]`),d=`one of these possible Token sequences:
59
+ ${C(c,(f,h)=>` ${h+1}. ${f}`).join(`
60
+ `)}`;return s+d+o}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",a=`
61
+ but found: '`+mt(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
62
+ <${C(n,c=>`[${C(c,u=>ii(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(xn);const BR={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
+ inside top level rule: ->`+n.name+"<-"}},an={buildDuplicateFoundError(n,e){function t(u){return u instanceof ne?u.terminalType.name:u instanceof tt?u.nonTerminalName:""}const r=n.name,i=mt(e),s=i.idx,a=vt(i),o=t(i),l=s>0;let c=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
64
+ appears more than once (${e.length} times) in the top level rule: ->${r}<-.
65
+ For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
66
+ `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
67
+ `),c},buildNamespaceConflictError(n){return`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=C(n.prefixPath,i=>ii(i)).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=C(n.prefixPath,i=>ii(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=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
78
+ For Further details.`,r},buildEmptyRepetitionError(n){let e=vt(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){return"deprecated"},buildEmptyAlternationError(n){return`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){return`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,t=C(n.leftRecursionPath,s=>s.name),r=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
83
+ rule: <${e}> can be invoked from itself (directly or indirectly)
84
+ without consuming any Tokens. The grammar path that causes this is:
85
+ ${r}
86
+ To fix this refactor your grammar to remove the left recursion.
87
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof ar?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function KR(n,e){const t=new WR(n,e);return t.resolveRefs(),t.errors}let WR=class extends or{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){P(me(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:be.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},VR=class extends ua{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=xe(this.path.ruleStack).reverse(),this.occurrenceStack=xe(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(){j(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},HR=class extends VR{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 Ve({definition:i});this.possibleTokTypes=Ti(s),this.found=!0}}},fa=class extends ua{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}},zR=class extends fa{walkMany(e,t,r){if(e.idx===this.occurrence){const i=mt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ne&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}},_c=class extends fa{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=mt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ne&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}},jR=class extends fa{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=mt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ne&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}},Lc=class extends fa{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=mt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ne&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}};function To(n,e,t=[]){t=xe(t);let r=[],i=0;function s(o){return o.concat(ve(n,i+1))}function a(o){const l=To(s(o),e,t);return r.concat(l)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof Ve)return a(o.definition);if(o instanceof tt)return a(o.definition);if(o instanceof Ge)r=a(o.definition);else if(o instanceof Ct){const l=o.definition.concat([new ge({definition:o.definition})]);return a(l)}else if(o instanceof $t){const l=[new Ve({definition:o.definition}),new ge({definition:[new ne({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof Tt){const l=o.definition.concat([new ge({definition:[new ne({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof ge){const l=o.definition.concat([new ge({definition:o.definition})]);r=a(l)}else{if(o instanceof Rt)return P(o.definition,l=>{j(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof ne)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:ve(n,i)}),r}function jf(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,c=l-r-1,u=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!j(d);){const f=d.pop();if(f===a){o&&Qn(d).idx<=c&&d.pop();continue}const h=f.def,p=f.idx,T=f.ruleStack,A=f.occurrenceStack;if(j(h))continue;const y=h[0];if(y===i){const R={idx:p,def:ve(h),ruleStack:ci(T),occurrenceStack:ci(A)};d.push(R)}else if(y instanceof ne)if(p<l-1){const R=p+1,m=e[R];if(t(m,y.terminalType)){const E={idx:R,def:ve(h),ruleStack:T,occurrenceStack:A};d.push(E)}}else if(p===l-1)u.push({nextTokenType:y.terminalType,nextTokenOccurrence:y.idx,ruleStack:T,occurrenceStack:A}),o=!0;else throw Error("non exhaustive match");else if(y instanceof tt){const R=xe(T);R.push(y.nonTerminalName);const m=xe(A);m.push(y.idx);const E={idx:p,def:y.definition.concat(s,ve(h)),ruleStack:R,occurrenceStack:m};d.push(E)}else if(y instanceof Ge){const R={idx:p,def:ve(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m={idx:p,def:y.definition.concat(ve(h)),ruleStack:T,occurrenceStack:A};d.push(m)}else if(y instanceof Ct){const R=new ge({definition:y.definition,idx:y.idx}),m=y.definition.concat([R],ve(h)),E={idx:p,def:m,ruleStack:T,occurrenceStack:A};d.push(E)}else if(y instanceof $t){const R=new ne({terminalType:y.separator}),m=new ge({definition:[R].concat(y.definition),idx:y.idx}),E=y.definition.concat([m],ve(h)),$={idx:p,def:E,ruleStack:T,occurrenceStack:A};d.push($)}else if(y instanceof Tt){const R={idx:p,def:ve(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m=new ne({terminalType:y.separator}),E=new ge({definition:[m].concat(y.definition),idx:y.idx}),$=y.definition.concat([E],ve(h)),V={idx:p,def:$,ruleStack:T,occurrenceStack:A};d.push(V)}else if(y instanceof ge){const R={idx:p,def:ve(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m=new ge({definition:y.definition,idx:y.idx}),E=y.definition.concat([m],ve(h)),$={idx:p,def:E,ruleStack:T,occurrenceStack:A};d.push($)}else if(y instanceof Rt)for(let R=y.definition.length-1;R>=0;R--){const m=y.definition[R],E={idx:p,def:m.definition.concat(ve(h)),ruleStack:T,occurrenceStack:A};d.push(E),d.push(a)}else if(y instanceof Ve)d.push({idx:p,def:y.definition.concat(ve(h)),ruleStack:T,occurrenceStack:A});else if(y instanceof ar)d.push(YR(y,p,T,A));else throw Error("non exhaustive match")}return u}function YR(n,e,t,r){const i=xe(t);i.push(n.name);const s=xe(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var re;(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"})(re||(re={}));function Yf(n){if(n instanceof Ge||n==="Option")return re.OPTION;if(n instanceof ge||n==="Repetition")return re.REPETITION;if(n instanceof Ct||n==="RepetitionMandatory")return re.REPETITION_MANDATORY;if(n instanceof $t||n==="RepetitionMandatoryWithSeparator")return re.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof Tt||n==="RepetitionWithSeparator")return re.REPETITION_WITH_SEPARATOR;if(n instanceof Rt||n==="Alternation")return re.ALTERNATION;throw Error("non exhaustive match")}function qR(n,e,t,r,i,s){const a=Sl(n,e,t),o=Jf(a)?Ns:Ri;return s(a,r,o,i)}function XR(n,e,t,r,i,s){const a=Nl(n,e,i,t),o=Jf(a)?Ns:Ri;return s(a[0],o,r)}function JR(n,e,t,r){const i=n.length,s=ht(n,a=>ht(a,o=>o.length===1));if(e)return function(a){const o=C(a,l=>l.GATE);for(let l=0;l<i;l++){const c=n[l],u=c.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<u;f++){const h=c[f],p=h.length;for(let T=0;T<p;T++){const A=this.LA(T+1);if(t(A,h[T])===!1)continue e}return l}}};if(s&&!r){const a=C(n,l=>ft(l)),o=et(a,(l,c,u)=>(P(c,d=>{O(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=u),P(d.categoryMatches,f=>{O(l,f)||(l[f]=u)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],l=o.length;e:for(let c=0;c<l;c++){const u=o[c],d=u.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(t(h,u[f])===!1)continue e}return a}}}}function QR(n,e,t){const r=ht(n,s=>s.length===1),i=n.length;if(r&&!t){const s=ft(n);if(s.length===1&&j(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=et(s,(o,l,c)=>(o[l.tokenTypeIdx]=!0,P(l.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let l=0;l<o;l++){const c=this.LA(l+1);if(e(c,a[l])===!1)continue e}return!0}return!1}}let ZR=class extends ua{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):!1}walkOption(e,t,r){this.checkIsTarget(e,re.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,re.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,re.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,re.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,re.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}},qf=class extends or{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,re.OPTION)}visitRepetition(e){this.checkIsTarget(e,re.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,re.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,re.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,re.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,re.ALTERNATION)}};function Oc(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function Fa(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 l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function eE(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++){const a=e[s];if(i[a]===!0)return!1}}return!0}function Xf(n,e){const t=C(n,a=>To([a],1)),r=Oc(t.length),i=C(t,a=>{const o={};return P(a,l=>{const c=Fa(l.partialPath);P(c,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=Oc(o.length);for(let l=0;l<o.length;l++){const c=o[l];for(let u=0;u<c.length;u++){const d=c[u].partialPath,f=c[u].suffixDef,h=Fa(d);if(eE(i,h,l)||j(f)||d.length===e){const T=r[l];if(Ro(T,d)===!1){T.push(d);for(let A=0;A<h.length;A++){const y=h[A];i[l][y]=!0}}}else{const T=To(f,a+1,d);s[l]=s[l].concat(T),P(T,A=>{const y=Fa(A.partialPath);P(y,R=>{i[l][R]=!0})})}}}}return r}function Sl(n,e,t,r){const i=new qf(n,re.ALTERNATION,r);return e.accept(i),Xf(i.result,t)}function Nl(n,e,t,r){const i=new qf(n,t);e.accept(i);const s=i.result,o=new ZR(e,n,t).startWalking(),l=new Ve({definition:s}),c=new Ve({definition:o});return Xf([l,c],r)}function Ro(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)===!1)continue e}return!0}}return!1}function tE(n,e){return n.length<e.length&&ht(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Jf(n){return ht(n,e=>ht(e,t=>ht(t,r=>j(r.categoryMatches))))}function nE(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return C(e,t=>Object.assign({type:be.CUSTOM_LOOKAHEAD_VALIDATION},t))}function rE(n,e,t,r){const i=at(n,l=>iE(l,t)),s=gE(n,e,t),a=at(n,l=>fE(l,t)),o=at(n,l=>oE(l,n,r,t));return i.concat(s,a,o)}function iE(n,e){const t=new aE;n.accept(t);const r=t.allProductions,i=NT(r,sE),s=yt(i,o=>o.length>1);return C(me(s),o=>{const l=mt(o),c=e.buildDuplicateFoundError(n,o),u=vt(l),d={message:c,type:be.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:u,occurrence:l.idx},f=Qf(l);return f&&(d.parameter=f),d})}function sE(n){return`${vt(n)}_#_${n.idx}_#_${Qf(n)}`}function Qf(n){return n instanceof ne?n.terminalType.name:n instanceof tt?n.nonTerminalName:""}let aE=class extends or{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 oE(n,e,t,r){const i=[];if(et(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:be.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function lE(n,e,t){const r=[];let i;return Ue(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:be.INVALID_RULE_OVERRIDE,ruleName:n})),r}function Zf(n,e,t,r=[]){const i=[],s=is(e.definition);if(j(s))return[];{const a=n.name;Ue(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:be.LEFT_RECURSION,ruleName:a});const l=la(s,r.concat([n])),c=at(l,u=>{const d=xe(r);return d.push(u),Zf(n,u,t,d)});return i.concat(c)}}function is(n){let e=[];if(j(n))return e;const t=mt(n);if(t instanceof tt)e.push(t.referencedRule);else if(t instanceof Ve||t instanceof Ge||t instanceof Ct||t instanceof $t||t instanceof Tt||t instanceof ge)e=e.concat(is(t.definition));else if(t instanceof Rt)e=ft(C(t.definition,s=>is(s.definition)));else if(!(t instanceof ne))throw Error("non exhaustive match");const r=ks(t),i=n.length>1;if(r&&i){const s=ve(n);return e.concat(is(s))}else return e}let xl=class extends or{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function cE(n,e){const t=new xl;n.accept(t);const r=t.alternations;return at(r,s=>{const a=ci(s.definition);return at(a,(o,l)=>{const c=jf([o],[],Ri,1);return j(c)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:be.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function uE(n,e,t){const r=new xl;n.accept(r);let i=r.alternations;return i=ca(i,a=>a.ignoreAmbiguities===!0),at(i,a=>{const o=a.idx,l=a.maxLookahead||e,c=Sl(o,n,l,a),u=pE(c,a,n,t),d=mE(c,a,n,t);return u.concat(d)})}let dE=class extends or{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 fE(n,e){const t=new xl;n.accept(t);const r=t.alternations;return at(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:be.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function hE(n,e,t){const r=[];return P(n,i=>{const s=new dE;i.accept(s);const a=s.allProductions;P(a,o=>{const l=Yf(o),c=o.maxLookahead||e,u=o.idx,f=Nl(u,i,l,c)[0];if(j(ft(f))){const h=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:h,type:be.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function pE(n,e,t,r){const i=[],s=et(n,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||P(l,u=>{const d=[c];P(n,(f,h)=>{c!==h&&Ro(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!Ro(i,u)&&(i.push(u),o.push({alts:d,path:u}))}),o),[]);return C(s,o=>{const l=C(o.alts,u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:be.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function mE(n,e,t,r){const i=et(n,(a,o,l)=>{const c=C(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return yi(at(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,c=a.path,u=ct(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<l&&tE(f.path,c));return C(u,f=>{const h=[f.idx+1,l+1],p=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:be.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:p,alternatives:h}})}))}function gE(n,e,t){const r=[],i=C(e,s=>s.name);return P(n,s=>{const a=s.name;if(Ue(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:be.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function yE(n){const e=Al(n,{errMsgProvider:BR}),t={};return P(n.rules,r=>{t[r.name]=r}),KR(t,e.errMsgProvider)}function TE(n){return n=Al(n,{errMsgProvider:an}),rE(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const eh="MismatchedTokenException",th="NoViableAltException",nh="EarlyExitException",rh="NotAllInputParsedException",ih=[eh,th,nh,rh];Object.freeze(ih);function xs(n){return Ue(ih,n.name)}let ha=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},sh=class extends ha{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=eh}},RE=class extends ha{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=th}},EE=class extends ha{constructor(e,t){super(e,t),this.name=rh}},AE=class extends ha{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=nh}};const Ua={},ah="InRuleRecoveryException";let vE=class extends Error{constructor(e){super(e),this.name=ah}},IE=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=O(e,"recoveryEnabled")?e.recoveryEnabled:Gt.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=kE)}getTokenToInsert(e){const t=kl(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const c=this.LA(1);let u=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:f,ruleName:this.getCurrRuleFullName()}),p=new sh(h,c,this.LA(0));p.resyncedTokens=ci(o),this.SAVE_ERROR(p)};for(;!l;)if(this.tokenMatcher(u,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new vE("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||j(t))return!1;const r=this.LA(1);return Zn(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return Ue(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=Zn(e,s=>GR(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ua;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return C(e,(r,i)=>i===0?Ua:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=C(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return ft(e)}getFollowSetFromFollowKey(e){if(e===Ua)return[Wt];const t=e.ruleName+e.idxInCallingRule+Mf+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Wt)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return ci(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=xe(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return C(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function kE(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&c===void 0&&(c=Wt,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(n,e,t,c)}const SE=4,Yt=8,oh=1<<Yt,lh=2<<Yt,Eo=3<<Yt,Ao=4<<Yt,vo=5<<Yt,ss=6<<Yt;function Ga(n,e,t){return t|e|n}let ch=class{constructor(e){var t;this.maxLookahead=(t=e?.maxLookahead)!==null&&t!==void 0?t:Gt.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(j(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 at(e,t=>Zf(t,t,an))}validateEmptyOrAlternatives(e){return at(e,t=>cE(t,an))}validateAmbiguousAlternationAlternatives(e,t){return at(e,r=>uE(r,t,an))}validateSomeNonEmptyLookaheadPath(e,t){return hE(e,t,an)}buildLookaheadForAlternation(e){return qR(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,JR)}buildLookaheadForOptional(e){return XR(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Yf(e.prodType),QR)}},NE=class{initLooksAhead(e){this.dynamicTokensEnabled=O(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Gt.dynamicTokensEnabled,this.maxLookahead=O(e,"maxLookahead")?e.maxLookahead:Gt.maxLookahead,this.lookaheadStrategy=O(e,"lookaheadStrategy")?e.lookaheadStrategy:new ch({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){P(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=CE(t);P(r,c=>{const u=c.idx===0?"":c.idx;this.TRACE_INIT(`${vt(c)}${u}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=Ga(this.fullRuleNameToShort[t.name],oh,c.idx);this.setLaFuncCache(f,d)})}),P(i,c=>{this.computeLookaheadFunc(t,c.idx,Eo,"Repetition",c.maxLookahead,vt(c))}),P(s,c=>{this.computeLookaheadFunc(t,c.idx,lh,"Option",c.maxLookahead,vt(c))}),P(a,c=>{this.computeLookaheadFunc(t,c.idx,Ao,"RepetitionMandatory",c.maxLookahead,vt(c))}),P(o,c=>{this.computeLookaheadFunc(t,c.idx,ss,"RepetitionMandatoryWithSeparator",c.maxLookahead,vt(c))}),P(l,c=>{this.computeLookaheadFunc(t,c.idx,vo,"RepetitionWithSeparator",c.maxLookahead,vt(c))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Ga(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Ga(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},xE=class extends or{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};const Ui=new xE;function CE(n){Ui.reset(),n.accept(Ui);const e=Ui.dslMethods;return Ui.reset(),e}function wc(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function Pc(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 $E(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function _E(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const LE="name";function uh(n,e){Object.defineProperty(n,LE,{enumerable:!1,configurable:!0,writable:!1,value:e})}function OE(n,e){const t=St(n),r=t.length;for(let i=0;i<r;i++){const s=t[i],a=n[s],o=a.length;for(let l=0;l<o;l++){const c=a[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}}function wE(n,e){const t=function(){};uh(t,n+"BaseSemantics");const r={visit:function(i,s){if(W(i)&&(i=i[0]),!Ut(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=bE(this,e);if(!j(i)){const s=C(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,t.prototype.constructor=t,t._RULE_NAMES=e,t}function PE(n,e,t){const r=function(){};uh(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return P(e,s=>{i[s]=OE}),r.prototype=i,r.prototype.constructor=r,r}var Io;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(Io||(Io={}));function bE(n,e){return ME(n,e)}function ME(n,e){const t=ct(e,i=>yn(n[i])===!1),r=C(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:Io.MISSING_METHOD,methodName:i}));return yi(r)}let DE=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=O(e,"nodeLocationTracking")?e.nodeLocationTracking:Gt.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=he,this.cstFinallyStateUpdate=he,this.cstPostTerminal=he,this.cstPostNonTerminal=he,this.cstPostRule=he;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Pc,this.setNodeLocationFromNode=Pc,this.cstPostRule=he,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=he,this.setNodeLocationFromNode=he,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wc,this.setNodeLocationFromNode=wc,this.cstPostRule=he,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=he,this.setNodeLocationFromNode=he,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=he,this.setNodeLocationFromNode=he,this.cstPostRule=he,this.setInitialNodeLocation=he;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];$E(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];_E(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(Ut(this.baseCstVisitorConstructor)){const e=wE(this.className,St(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Ut(this.baseCstVisitorWithDefaultsConstructor)){const e=PE(this.className,St(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},FE=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):$s}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?$s:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},UE=class{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=_s){if(Ue(this.definedRulesNames,e)){const a={message:an.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:be.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=_s){const i=lE(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(xs(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return jT(me(this.gastProductionsCache))}},GE=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ns,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},O(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
92
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
93
+ For Further details.`);if(W(e)){if(j(e))throw Error(`A Token Vocabulary cannot be empty.
94
+ Note that the first argument for the parser constructor
95
+ is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
96
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
97
+ For Further details.`)}if(W(e))this.tokensMap=et(e,(s,a)=>(s[a.name]=a,s),{});else if(O(e,"modes")&&ht(ft(me(e.modes)),DR)){const s=ft(me(e.modes)),a=vl(s);this.tokensMap=et(a,(o,l)=>(o[l.name]=l,o),{})}else if(Yn(e))this.tokensMap=xe(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Wt;const r=O(e,"modes")?ft(me(e.modes)):me(e),i=ht(r,s=>j(s.categoryMatches));this.tokenMatcher=i?Ns:Ri,Ei(me(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
98
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=O(r,"resyncEnabled")?r.resyncEnabled:_s.resyncEnabled,s=O(r,"recoveryValueFunc")?r.recoveryValueFunc:_s.recoveryValueFunc,a=this.ruleShortNameIdx<<SE+Yt;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...u){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...u){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(xs(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(lh,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ao,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,re.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Ao,e,jR)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(ss,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Lc],o,ss,e,Lc)}else throw this.raiseEarlyExitException(e,re.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(Eo,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,Eo,e,zR,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(vo,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,_c],o,vo,e,_c)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,ss,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(oh,t),i=W(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new EE(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw xs(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new sh(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===ah?r:s}}else throw r}saveRecogState(){const e=this.errors,t=xe(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Wt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},BE=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=O(e,"errorMessageProvider")?e.errorMessageProvider:Gt.errorMessageProvider}SAVE_ERROR(e){if(xs(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:xe(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return xe(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=Nl(e,s,t,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));const c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new AE(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=Sl(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new RE(l,this.LA(1),o))}},KE=class{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(Ut(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return jf([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=mt(e.ruleStack),i=this.getGAstProductions()[t];return new HR(i,e).startWalking()}};const pa={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(pa);const bc=!0,Mc=Math.pow(2,Yt)-1,dh=zf({name:"RECORDING_PHASE_TOKEN",pattern:Be.NA});Ei([dh]);const fh=kl(dh,`This IToken indicates the Parser is in Recording Phase
99
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(fh);const WE={name:`This CSTNode indicates the Parser is in Recording Phase
100
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};let VE=class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return $s}topLevelRuleRecord(e,t){try{const r=new ar({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
101
+ This error was thrown during the "grammar recording phase" For more info see:
102
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return mr.call(this,Ge,e,t)}atLeastOneInternalRecord(e,t){mr.call(this,Ct,t,e)}atLeastOneSepFirstInternalRecord(e,t){mr.call(this,$t,t,e,bc)}manyInternalRecord(e,t){mr.call(this,ge,t,e)}manySepFirstInternalRecord(e,t){mr.call(this,Tt,t,e,bc)}orInternalRecord(e,t){return HE.call(this,e,t)}subruleInternalRecord(e,t,r){if(Cs(t),!e||O(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Dc(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=Qn(this.recordingProdStack),s=e.ruleName,a=new tt({idx:t,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?WE:pa}consumeInternalRecord(e,t,r){if(Cs(t),!Vf(e)){const a=new Error(`<CONSUME${Dc(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=Qn(this.recordingProdStack),s=new ne({idx:t,terminalType:e,label:r?.LABEL});return i.definition.push(s),fh}};function mr(n,e,t,r=!1){Cs(t);const i=Qn(this.recordingProdStack),s=yn(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),O(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),pa}function HE(n,e){Cs(e);const t=Qn(this.recordingProdStack),r=W(n)===!1,i=r===!1?n:n.DEF,s=new Rt({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});O(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=Of(i,o=>yn(o.GATE));return s.hasPredicates=a,t.definition.push(s),P(i,o=>{const l=new Ve({definition:[]});s.definition.push(l),O(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:O(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),pa}function Dc(n){return n===0?"":`${n}`}function Cs(n){if(n<0||n>Mc){const e=new Error(`Invalid DSL Method idx value: <${n}>
105
+ Idx value must be a none negative value smaller than ${Mc+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}let zE=class{initPerformanceTracer(e){if(O(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Gt.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=Pf(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}};function jE(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const $s=kl(Wt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze($s);const Gt=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:xn,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),_s=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var be;(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"})(be||(be={}));function Fc(n=void 0){return function(){return n}}let Cl=class hh{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",()=>{bf(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),P(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=yE({rules:me(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(j(r)&&this.skipValidations===!1){const i=TE({rules:me(this.gastProductionsCache),tokenTypes:me(this.tokensMap),errMsgProvider:an,grammarName:t}),s=nE({lookaheadStrategy:this.lookaheadStrategy,rules:me(this.gastProductionsCache),tokenTypes:me(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),j(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=eR(me(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:me(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(me(this.gastProductionsCache))})),!hh.DEFER_DEFINITION_ERRORS_HANDLING&&!j(this.definitionErrors))throw e=C(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
106
+ ${e.join(`
107
+ -------------------------------
108
+ `)}`)})}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),O(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
109
+ Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
110
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
111
+ For further details.`);this.skipValidations=O(t,"skipValidations")?t.skipValidations:Gt.skipValidations}};Cl.DEFER_DEFINITION_ERRORS_HANDLING=!1;jE(Cl,[IE,NE,DE,FE,GE,UE,BE,KE,VE,zE]);class YE extends Cl{constructor(e,t=Gt){const r=xe(t);r.outputCst=!1,super(e,r)}}function ko(n){console&&console.error&&console.error(`Error: ${n}`)}function ph(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function mh(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function gh(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function qE(n){return XE(n)?n.LABEL:n.name}function XE(n){return Ke(n.LABEL)&&n.LABEL!==""}class _t{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),_(this.definition,t=>{t.accept(e)})}}class Me extends _t{constructor(e){super([]),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class lr extends _t{constructor(e){super(e.definition),this.orgText="",Qe(this,gt(e,t=>t!==void 0))}}class He extends _t{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Qe(this,gt(e,t=>t!==void 0))}}let Ne=class extends _t{constructor(e){super(e.definition),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}};class rt extends _t{constructor(e){super(e.definition),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}}class it extends _t{constructor(e){super(e.definition),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}}class se extends _t{constructor(e){super(e.definition),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}}class ze extends _t{constructor(e){super(e.definition),this.idx=1,Qe(this,gt(e,t=>t!==void 0))}}class je extends _t{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,Qe(this,gt(e,t=>t!==void 0))}}class X{constructor(e){this.idx=1,Qe(this,gt(e,t=>t!==void 0))}accept(e){e.visit(this)}}function JE(n){return N(n,as)}function as(n){function e(t){return N(t,as)}if(n instanceof Me){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return Ke(n.label)&&(t.label=n.label),t}else{if(n instanceof He)return{type:"Alternative",definition:e(n.definition)};if(n instanceof Ne)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof rt)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof it)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:as(new X({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ze)return{type:"RepetitionWithSeparator",idx:n.idx,separator:as(new X({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof se)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof je)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof X){const t={type:"Terminal",name:n.terminalType.name,label:qE(n.terminalType),idx:n.idx};Ke(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Dt(r)?r.source:r),t}else{if(n instanceof lr)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class cr{visit(e){const t=e;switch(t.constructor){case Me:return this.visitNonTerminal(t);case He:return this.visitAlternative(t);case Ne:return this.visitOption(t);case rt:return this.visitRepetitionMandatory(t);case it:return this.visitRepetitionMandatoryWithSeparator(t);case ze:return this.visitRepetitionWithSeparator(t);case se:return this.visitRepetition(t);case je:return this.visitAlternation(t);case X:return this.visitTerminal(t);case lr: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 QE(n){return n instanceof He||n instanceof Ne||n instanceof se||n instanceof rt||n instanceof it||n instanceof ze||n instanceof X||n instanceof lr}function Ls(n,e=[]){return n instanceof Ne||n instanceof se||n instanceof ze?!0:n instanceof je?Zd(n.definition,r=>Ls(r,e)):n instanceof Me&&Fe(e,n)?!1:n instanceof _t?(n instanceof Me&&e.push(n),dt(n.definition,r=>Ls(r,e))):!1}function ZE(n){return n instanceof je}function It(n){if(n instanceof Me)return"SUBRULE";if(n instanceof Ne)return"OPTION";if(n instanceof je)return"OR";if(n instanceof rt)return"AT_LEAST_ONE";if(n instanceof it)return"AT_LEAST_ONE_SEP";if(n instanceof ze)return"MANY_SEP";if(n instanceof se)return"MANY";if(n instanceof X)return"CONSUME";throw Error("non exhaustive match")}class ma{walk(e,t=[]){_(e.definition,(r,i)=>{const s=Ae(e.definition,i+1);if(r instanceof Me)this.walkProdRef(r,s,t);else if(r instanceof X)this.walkTerminal(r,s,t);else if(r instanceof He)this.walkFlat(r,s,t);else if(r instanceof Ne)this.walkOption(r,s,t);else if(r instanceof rt)this.walkAtLeastOne(r,s,t);else if(r instanceof it)this.walkAtLeastOneSep(r,s,t);else if(r instanceof ze)this.walkManySep(r,s,t);else if(r instanceof se)this.walkMany(r,s,t);else if(r instanceof je)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}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 Ne({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=Uc(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new Ne({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=Uc(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);_(e.definition,s=>{const a=new He({definition:[s]});this.walk(a,i)})}}function Uc(n,e,t){return[new Ne({definition:[new X({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function Ai(n){if(n instanceof Me)return Ai(n.referencedRule);if(n instanceof X)return nA(n);if(QE(n))return eA(n);if(ZE(n))return tA(n);throw Error("non exhaustive match")}function eA(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=Ls(s),e=e.concat(Ai(s)),r=r+1,i=t.length>r;return il(e)}function tA(n){const e=N(n.definition,t=>Ai(t));return il(st(e))}function nA(n){return[n.terminalType]}const yh="_~IN~_";class rA extends ma{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=sA(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new He({definition:s}),o=Ai(a);this.follows[i]=o}}function iA(n){const e={};return _(n,t=>{const r=new rA(t).startWalking();Qe(e,r)}),e}function sA(n,e){return n.name+e+yh}function M(n){return n.charCodeAt(0)}function Ba(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function gr(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Sn(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function aA(){throw Error("Internal Error - Should never get here!")}function Gc(n){return n.type==="Character"}const Os=[];for(let n=M("0");n<=M("9");n++)Os.push(n);const ws=[M("_")].concat(Os);for(let n=M("a");n<=M("z");n++)ws.push(n);for(let n=M("A");n<=M("Z");n++)ws.push(n);const Bc=[M(" "),M("\f"),M(`
112
+ `),M("\r"),M(" "),M("\v"),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M(" "),M("\u2028"),M("\u2029"),M(" "),M(" "),M(" "),M("\uFEFF")],oA=/[0-9a-fA-F]/,Gi=/[0-9]/,lA=/[1-9]/;class cA{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":gr(r,"global");break;case"i":gr(r,"ignoreCase");break;case"m":gr(r,"multiLine");break;case"u":gr(r,"unicode");break;case"y":gr(r,"sticky");break}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"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}break}}Sn(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return aA()}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("}");break}if(e===!0&&t===void 0)return;Sn(t);break}if(!(e===!0&&t===void 0)&&Sn(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Sn(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[M(`
113
+ `),M("\r"),M("\u2028"),M("\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=Os;break;case"D":e=Os,t=!0;break;case"s":e=Bc;break;case"S":e=Bc,t=!0;break;case"w":e=ws;break;case"W":e=ws,t=!0;break}if(Sn(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=M("\f");break;case"n":e=M(`
114
+ `);break;case"r":e=M("\r");break;case"t":e=M(" ");break;case"v":e=M("\v");break}if(Sn(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:M("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:M(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
115
+ `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:M(e)}}}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,Gc(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,Gc(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Ba(r.value,e),e.push(M("-")),Ba(i.value,e)}else Ba(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
116
+ `: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:M("\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(lA.test(e)===!1)throw Error("Expecting a positive integer");for(;Gi.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Gi.test(e)===!1)throw Error("Expecting an integer");for(;Gi.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
117
+ `: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:M(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 Gi.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
118
+ `: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)==="!"||this.peekChar(2)==="<"&&(this.peekChar(3)==="="||this.peekChar(3)==="!"));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`
119
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let i=0;i<e;i++){const s=this.popChar();if(oA.test(s)===!1)throw Error("Expecting a HexDecimal digits");t+=s}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 $l{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"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}let os={};const uA=new cA;function ga(n){const e=n.toString();if(os.hasOwnProperty(e))return os[e];{const t=uA.pattern(e);return os[e]=t,t}}function dA(){os={}}const Th="Complement Sets are not supported for first char optimization",Ps=`Unable to use "first char" lexer optimizations:
120
+ `;function fA(n,e=!1){try{const t=ga(n);return So(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Th)e&&ph(`${Ps} Unable to optimize: < ${n.toString()} >
121
+ Complement Sets cannot be automatically optimized.
122
+ This will disable the lexer's first char optimizations.
123
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
124
+ This will disable the lexer's first char optimizations.
125
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),ko(`${Ps}
126
+ Failed parsing: < ${n.toString()} >
127
+ Using the @chevrotain/regexp-to-ast library
128
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function So(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)So(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"Lookbehind":case"NegativeLookbehind":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":Bi(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(Th);_(a.value,l=>{if(typeof l=="number")Bi(l,e,t);else{const c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)Bi(u,e,t);else{for(let u=c.from;u<=c.to&&u<Jr;u++)Bi(u,e,t);if(c.to>=Jr){const u=c.from>=Jr?c.from:Jr,d=c.to,f=Vt(u),h=Vt(d);for(let p=f;p<=h;p++)e[p]=p}}}});break;case"Group":So(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"&&No(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return pe(e)}function Bi(n,e,t){const r=Vt(n);e[r]=r,t===!0&&hA(n,e)}function hA(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=Vt(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=Vt(i.charCodeAt(0));e[s]=s}}}function Kc(n,e){return qn(n.value,t=>{if(typeof t=="number")return Fe(e,t);{const r=t;return qn(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function No(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?Se(n.value)?dt(n.value,No):No(n.value):!1}class pA extends $l{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){Fe(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Kc(e,this.targetCharCodes)===void 0&&(this.found=!0):Kc(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function _l(n,e){if(e instanceof RegExp){const t=ga(e),r=new pA(n);return r.visit(t),r.found}else return qn(e,t=>Fe(n,t.charCodeAt(0)))!==void 0}const hn="PATTERN",Xr="defaultMode",Ki="modes";let Rh=typeof new RegExp("(?:)").sticky=="boolean";function mA(n,e){e=nl(e,{useSticky:Rh,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
129
+ `],tracer:(R,m)=>m()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{UA()});let r;t("Reject Lexer.NA",()=>{r=Zs(n,R=>R[hn]===ot.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=N(r,R=>{const m=R[hn];if(Dt(m)){const E=m.source;return E.length===1&&E!=="^"&&E!=="$"&&E!=="."&&!m.ignoreCase?E:E.length===2&&E[0]==="\\"&&!Fe(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],E[1])?E[1]:e.useSticky?Vc(m):Wc(m)}else{if(Tn(m))return i=!0,{exec:m};if(typeof m=="object")return i=!0,m;if(typeof m=="string"){if(m.length===1)return m;{const E=m.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),$=new RegExp(E);return e.useSticky?Vc($):Wc($)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=N(r,R=>R.tokenTypeIdx),o=N(r,R=>{const m=R.GROUP;if(m!==ot.SKIPPED){if(Ke(m))return m;if(Mt(m))return!1;throw Error("non exhaustive match")}}),l=N(r,R=>{const m=R.LONGER_ALT;if(m)return Se(m)?N(m,$=>Ql(r,$)):[Ql(r,m)]}),c=N(r,R=>R.PUSH_MODE),u=N(r,R=>L(R,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const R=vh(e.lineTerminatorCharacters);d=N(r,m=>!1),e.positionTracking!=="onlyOffset"&&(d=N(r,m=>L(m,"LINE_BREAKS")?!!m.LINE_BREAKS:Ah(m,R)===!1&&_l(R,m.PATTERN)))});let f,h,p,T;t("Misc Mapping #2",()=>{f=N(r,Eh),h=N(s,MA),p=Pe(r,(R,m)=>{const E=m.GROUP;return Ke(E)&&E!==ot.SKIPPED&&(R[E]=[]),R},{}),T=N(s,(R,m)=>({pattern:s[m],longerAlt:l[m],canLineTerminator:d[m],isCustom:f[m],short:h[m],group:o[m],push:c[m],pop:u[m],tokenTypeIdx:a[m],tokenType:r[m]}))});let A=!0,y=[];return e.safeMode||t("First Char Optimization",()=>{y=Pe(r,(R,m,E)=>{if(typeof m.PATTERN=="string"){const $=m.PATTERN.charCodeAt(0),V=Vt($);Ka(R,V,T[E])}else if(Se(m.START_CHARS_HINT)){let $;_(m.START_CHARS_HINT,V=>{const ce=typeof V=="string"?V.charCodeAt(0):V,oe=Vt(ce);$!==oe&&($=oe,Ka(R,oe,T[E]))})}else if(Dt(m.PATTERN))if(m.PATTERN.unicode)A=!1,e.ensureOptimizations&&ko(`${Ps} Unable to analyze < ${m.PATTERN.toString()} > pattern.
130
+ The regexp unicode flag is not currently supported by the regexp-to-ast library.
131
+ This will disable the lexer's first char optimizations.
132
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const $=fA(m.PATTERN,e.ensureOptimizations);z($)&&(A=!1),_($,V=>{Ka(R,V,T[E])})}else e.ensureOptimizations&&ko(`${Ps} TokenType: <${m.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
133
+ This will disable the lexer's first char optimizations.
134
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),A=!1;return R},[])}),{emptyGroups:p,patternIdxToConfig:T,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:A}}function gA(n,e){let t=[];const r=TA(n);t=t.concat(r.errors);const i=RA(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(yA(s)),t=t.concat(xA(s)),t=t.concat(CA(s,e)),t=t.concat($A(s)),t}function yA(n){let e=[];const t=nt(n,r=>Dt(r[hn]));return e=e.concat(AA(t)),e=e.concat(kA(t)),e=e.concat(SA(t)),e=e.concat(NA(t)),e=e.concat(vA(t)),e}function TA(n){const e=nt(n,i=>!L(i,hn)),t=N(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:ae.MISSING_PATTERN,tokenTypes:[i]})),r=Qs(n,e);return{errors:t,valid:r}}function RA(n){const e=nt(n,i=>{const s=i[hn];return!Dt(s)&&!Tn(s)&&!L(s,"exec")&&!Ke(s)}),t=N(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ae.INVALID_PATTERN,tokenTypes:[i]})),r=Qs(n,e);return{errors:t,valid:r}}const EA=/[^\\][$]/;function AA(n){class e extends $l{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=nt(n,i=>{const s=i.PATTERN;try{const a=ga(s),o=new e;return o.visit(a),o.found}catch{return EA.test(s.source)}});return N(t,i=>({message:`Unexpected RegExp Anchor Error:
135
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
136
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ae.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function vA(n){const e=nt(n,r=>r.PATTERN.test(""));return N(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:ae.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const IA=/[^\\[][\^]|^\^/;function kA(n){class e extends $l{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=nt(n,i=>{const s=i.PATTERN;try{const a=ga(s),o=new e;return o.visit(a),o.found}catch{return IA.test(s.source)}});return N(t,i=>({message:`Unexpected RegExp Anchor Error:
137
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
138
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ae.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function SA(n){const e=nt(n,r=>{const i=r[hn];return i instanceof RegExp&&(i.multiline||i.global)});return N(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ae.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function NA(n){const e=[];let t=N(n,s=>Pe(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!Fe(e,o)&&o.PATTERN!==ot.NA&&(e.push(o),a.push(o)),a),[]));t=hi(t);const r=nt(t,s=>s.length>1);return N(r,s=>{const a=N(s,l=>l.name);return{message:`The same RegExp pattern ->${pt(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:ae.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function xA(n){const e=nt(n,r=>{if(!L(r,"GROUP"))return!1;const i=r.GROUP;return i!==ot.SKIPPED&&i!==ot.NA&&!Ke(i)});return N(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ae.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function CA(n,e){const t=nt(n,i=>i.PUSH_MODE!==void 0&&!Fe(e,i.PUSH_MODE));return N(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:ae.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function $A(n){const e=[],t=Pe(n,(r,i,s)=>{const a=i.PATTERN;return a===ot.NA||(Ke(a)?r.push({str:a,idx:s,tokenType:i}):Dt(a)&&LA(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return _(n,(r,i)=>{_(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&_A(s,r.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
139
+ Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
140
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:ae.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function _A(n,e){if(Dt(e)){if(OA(e))return!1;const t=e.exec(n);return t!==null&&t.index===0}else{if(Tn(e))return e(n,0,[],{});if(L(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function LA(n){return qn([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>n.source.indexOf(t)!==-1)===void 0}function OA(n){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\?<!)/.test(n.source)}function Wc(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function Vc(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function wA(n,e,t){const r=[];return L(n,Xr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Xr+`> property in its definition
141
+ `,type:ae.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),L(n,Ki)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ki+`> property in its definition
142
+ `,type:ae.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),L(n,Ki)&&L(n,Xr)&&!L(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Xr}: <${n.defaultMode}>which does not exist
143
+ `,type:ae.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),L(n,Ki)&&_(n.modes,(i,s)=>{_(i,(a,o)=>{if(Mt(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
144
+ `,type:ae.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(L(a,"LONGER_ALT")){const l=Se(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];_(l,c=>{!Mt(c)&&!Fe(i,c)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}>
145
+ `,type:ae.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function PA(n,e,t){const r=[];let i=!1;const s=hi(st(pe(n.modes))),a=Zs(s,l=>l[hn]===ot.NA),o=vh(t);return e&&_(a,l=>{const c=Ah(l,o);if(c!==!1){const d={message:FA(l,c),type:c.issue,tokenType:l};r.push(d)}else L(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):_l(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
146
+ This Lexer has been defined to track line and column information,
147
+ But none of the Token Types can be identified as matching a line terminator.
148
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
149
+ for details.`,type:ae.NO_LINE_BREAKS_FLAGS}),r}function bA(n){const e={},t=Xn(n);return _(t,r=>{const i=n[r];if(Se(i))e[r]=[];else throw Error("non exhaustive match")}),e}function Eh(n){const e=n.PATTERN;if(Dt(e))return!1;if(Tn(e))return!0;if(L(e,"exec"))return!0;if(Ke(e))return!1;throw Error("non exhaustive match")}function MA(n){return Ke(n)&&n.length===1?n.charCodeAt(0):!1}const DA={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 Ah(n,e){if(L(n,"LINE_BREAKS"))return!1;if(Dt(n.PATTERN)){try{_l(e,n.PATTERN)}catch(t){return{issue:ae.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(Ke(n.PATTERN))return!1;if(Eh(n))return{issue:ae.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function FA(n,e){if(e.issue===ae.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
150
+ The problem is in the <${n.name}> Token Type
151
+ Root cause: ${e.errMsg}.
152
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===ae.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
153
+ The problem is in the <${n.name}> Token Type
154
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function vh(n){return N(n,t=>Ke(t)?t.charCodeAt(0):t)}function Ka(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Jr=256;let ls=[];function Vt(n){return n<Jr?n:ls[n]}function UA(){if(z(ls)){ls=new Array(65536);for(let n=0;n<65536;n++)ls[n]=n>255?255+~~(n/255):n}}function vi(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function bs(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let Hc=1;const Ih={};function Ii(n){const e=GA(n);BA(e),WA(e),KA(e),_(e,t=>{t.isParent=t.categoryMatches.length>0})}function GA(n){let e=Le(n),t=n,r=!0;for(;r;){t=hi(st(N(t,s=>s.CATEGORIES)));const i=Qs(t,e);e=e.concat(i),z(i)?r=!1:t=i}return e}function BA(n){_(n,e=>{Sh(e)||(Ih[Hc]=e,e.tokenTypeIdx=Hc++),zc(e)&&!Se(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),zc(e)||(e.CATEGORIES=[]),VA(e)||(e.categoryMatches=[]),HA(e)||(e.categoryMatchesMap={})})}function KA(n){_(n,e=>{e.categoryMatches=[],_(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(Ih[r].tokenTypeIdx)})})}function WA(n){_(n,e=>{kh([],e)})}function kh(n,e){_(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),_(e.CATEGORIES,t=>{const r=n.concat(e);Fe(r,t)||kh(r,t)})}function Sh(n){return L(n,"tokenTypeIdx")}function zc(n){return L(n,"CATEGORIES")}function VA(n){return L(n,"categoryMatches")}function HA(n){return L(n,"categoryMatchesMap")}function zA(n){return L(n,"tokenTypeIdx")}const jA={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i,s){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var ae;(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"})(ae||(ae={}));const Qr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
155
+ `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:jA,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Qr);class ot{constructor(e,t=Qr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=mh(s),c=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&c(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
156
+ a boolean 2nd argument is no longer supported`);this.config=Qe({},Qr,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===Qr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=DA;else if(this.config.lineTerminatorCharacters===Qr.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
157
+ 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:Le(e)},defaultMode:Xr}:(s=!1,i=Le(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(wA(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(PA(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},_(i.modes,(o,l)=>{i.modes[l]=Zs(o,c=>Mt(c))});const a=Xn(i.modes);if(_(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(gA(o,a))}),z(this.lexerDefinitionErrors)){Ii(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=mA(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=Qe({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!z(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=N(this.lexerDefinitionErrors,c=>c.message).join(`-----------------------
158
+ `);throw new Error(`Errors detected in definition of Lexer:
159
+ `+l)}_(this.lexerDefinitionWarning,o=>{ph(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Rh?(this.chopInput=Jl,this.match=this.matchWithTest):(this.updateLastIndex=ye,this.match=this.matchWithExec),s&&(this.handleModes=ye),this.trackStartLines===!1&&(this.computeNewColumn=Jl),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ye),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=Pe(this.canModeBeOptimized,(l,c,u)=>(c===!1&&l.push(u),l),[]);if(t.ensureOptimizations&&!z(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
160
+ Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
161
+ Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{dA()}),this.TRACE_INIT("toFastProperties",()=>{gh(this)})})}tokenize(e,t=this.defaultMode){if(!z(this.lexerDefinitionErrors)){const i=N(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
162
+ `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
163
+ `+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,l,c,u,d,f,h,p,T,A,y;const R=e,m=R.length;let E=0,$=0;const V=this.hasCustom?0:Math.floor(e.length/10),ce=new Array(V),oe=[];let Ce=this.trackStartLines?1:void 0,le=this.trackStartLines?1:void 0;const k=bA(this.emptyGroups),v=this.trackStartLines,x=this.config.lineTerminatorsPattern;let S=0,F=[],D=[];const w=[],$e=[];Object.freeze($e);let J;function Y(){return F}function At(G){const q=Vt(G),Ye=D[q];return Ye===void 0?$e:Ye}const Na=G=>{if(w.length===1&&G.tokenType.PUSH_MODE===void 0){const q=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(G);oe.push({offset:G.startOffset,line:G.startLine,column:G.startColumn,length:G.image.length,message:q})}else{w.pop();const q=ln(w);F=this.patternIdxToConfig[q],D=this.charCodeToPatternIdxToConfig[q],S=F.length;const Ye=this.canModeBeOptimized[q]&&this.config.safeMode===!1;D&&Ye?J=At:J=Y}};function dr(G){w.push(G),D=this.charCodeToPatternIdxToConfig[G],F=this.patternIdxToConfig[G],S=F.length,S=F.length;const q=this.canModeBeOptimized[G]&&this.config.safeMode===!1;D&&q?J=At:J=Y}dr.call(this,t);let Z;const fr=this.config.recoveryEnabled;for(;E<m;){l=null;const G=R.charCodeAt(E),q=J(G),Ye=q.length;for(r=0;r<Ye;r++){Z=q[r];const H=Z.pattern;c=null;const de=Z.short;if(de!==!1?G===de&&(l=H):Z.isCustom===!0?(y=H.exec(R,E,ce,k),y!==null?(l=y[0],y.payload!==void 0&&(c=y.payload)):l=null):(this.updateLastIndex(H,E),l=this.match(H,e,E)),l!==null){if(o=Z.longerAlt,o!==void 0){const Re=o.length;for(s=0;s<Re;s++){const fe=F[o[s]],we=fe.pattern;if(u=null,fe.isCustom===!0?(y=we.exec(R,E,ce,k),y!==null?(a=y[0],y.payload!==void 0&&(u=y.payload)):a=null):(this.updateLastIndex(we,E),a=this.match(we,e,E)),a&&a.length>l.length){l=a,c=u,Z=fe;break}}}break}}if(l!==null){if(d=l.length,f=Z.group,f!==void 0&&(h=Z.tokenTypeIdx,p=this.createTokenInstance(l,E,h,Z.tokenType,Ce,le,d),this.handlePayload(p,c),f===!1?$=this.addToken(ce,$,p):k[f].push(p)),e=this.chopInput(e,d),E=E+d,le=this.computeNewColumn(le,d),v===!0&&Z.canLineTerminator===!0){let H=0,de,Re;x.lastIndex=0;do de=x.test(l),de===!0&&(Re=x.lastIndex-1,H++);while(de===!0);H!==0&&(Ce=Ce+H,le=d-Re,this.updateTokenEndLineColumnLocation(p,f,Re,H,Ce,le,d))}this.handleModes(Z,Na,dr,p)}else{const H=E,de=Ce,Re=le;let fe=fr===!1;for(;fe===!1&&E<m;)for(e=this.chopInput(e,1),E++,i=0;i<S;i++){const we=F[i],tn=we.pattern,hr=we.short;if(hr!==!1?R.charCodeAt(E)===hr&&(fe=!0):we.isCustom===!0?fe=tn.exec(R,E,ce,k)!==null:(this.updateLastIndex(tn,E),fe=tn.exec(e)!==null),fe===!0)break}if(T=E-H,le=this.computeNewColumn(le,T),A=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(R,H,T,de,Re,ln(w)),oe.push({offset:H,line:de,column:Re,length:T,message:A}),fr===!1)break}}return this.hasCustom||(ce.length=$),{tokens:ce,groups:k,errors:oe}}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 l,c;t!==void 0&&(l=r===o-1,c=l?-1:0,i===1&&l===!0||(e.endLine=s+c,e.endColumn=a-1+-c))}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++,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}}ot.SKIPPED="This marks a skipped Token pattern, this means each token identified by it will be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";ot.NA=/NOT_APPLICABLE/;function $n(n){return Nh(n)?n.LABEL:n.name}function Nh(n){return Ke(n.LABEL)&&n.LABEL!==""}const YA="parent",jc="categories",Yc="label",qc="group",Xc="push_mode",Jc="pop_mode",Qc="longer_alt",Zc="line_breaks",eu="start_chars_hint";function xh(n){return qA(n)}function qA(n){const e=n.pattern,t={};if(t.name=n.name,Mt(e)||(t.PATTERN=e),L(n,YA))throw`The parent property is no longer supported.
164
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return L(n,jc)&&(t.CATEGORIES=n[jc]),Ii([t]),L(n,Yc)&&(t.LABEL=n[Yc]),L(n,qc)&&(t.GROUP=n[qc]),L(n,Jc)&&(t.POP_MODE=n[Jc]),L(n,Xc)&&(t.PUSH_MODE=n[Xc]),L(n,Qc)&&(t.LONGER_ALT=n[Qc]),L(n,Zc)&&(t.LINE_BREAKS=n[Zc]),L(n,eu)&&(t.START_CHARS_HINT=n[eu]),t}const pn=xh({name:"EOF",pattern:ot.NA});Ii([pn]);function Ll(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 Ch(n,e){return vi(n,e)}const $h={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${Nh(n)?`--> ${$n(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
165
+ but found: '`+pt(e).image+"'";if(r)return s+r+o;{const l=Pe(n,(f,h)=>f.concat(h),[]),c=N(l,f=>`[${N(f,h=>$n(h)).join(", ")}]`),d=`one of these possible Token sequences:
166
+ ${N(c,(f,h)=>` ${h+1}. ${f}`).join(`
167
+ `)}`;return s+d+o}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",a=`
168
+ but found: '`+pt(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
169
+ <${N(n,c=>`[${N(c,u=>$n(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze($h);const XA={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
170
+ inside top level rule: ->`+n.name+"<-"}},on={buildDuplicateFoundError(n,e){function t(u){return u instanceof X?u.terminalType.name:u instanceof Me?u.nonTerminalName:""}const r=n.name,i=pt(e),s=i.idx,a=It(i),o=t(i),l=s>0;let c=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
171
+ appears more than once (${e.length} times) in the top level rule: ->${r}<-.
172
+ For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
173
+ `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
174
+ `),c},buildNamespaceConflictError(n){return`Namespace conflict found in grammar.
175
+ The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${n.name}>.
176
+ To resolve this make sure each Terminal and Non-Terminal names are unique
177
+ This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
178
+ and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(n){const e=N(n.prefixPath,i=>$n(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix
179
+ in <OR${t}> inside <${n.topLevelRule.name}> Rule,
180
+ <${e}> may appears as a prefix path in all these alternatives.
181
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
182
+ For Further details.`},buildAlternationAmbiguityError(n){const e=N(n.prefixPath,i=>$n(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,
183
+ <${e}> may appears as a prefix path in all these alternatives.
184
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
185
+ For Further details.`,r},buildEmptyRepetitionError(n){let e=It(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens.
186
+ This could lead to an infinite loop.`},buildTokenNameError(n){return"deprecated"},buildEmptyAlternationError(n){return`Ambiguous empty alternative: <${n.emptyChoiceIdx+1}> in <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
187
+ Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(n){return`An Alternation cannot have more than 256 alternatives:
188
+ <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
189
+ has ${n.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(n){const e=n.topLevelRule.name,t=N(n.leftRecursionPath,s=>s.name),r=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
190
+ rule: <${e}> can be invoked from itself (directly or indirectly)
191
+ without consuming any Tokens. The grammar path that causes this is:
192
+ ${r}
193
+ To fix this refactor your grammar to remove the left recursion.
194
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof lr?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function JA(n,e){const t=new QA(n,e);return t.resolveRefs(),t.errors}class QA extends cr{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){_(pe(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:De.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class ZA extends ma{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=Le(this.path.ruleStack).reverse(),this.occurrenceStack=Le(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(){z(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class ev extends ZA{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 He({definition:i});this.possibleTokTypes=Ai(s),this.found=!0}}}class ya extends ma{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 tv extends ya{walkMany(e,t,r){if(e.idx===this.occurrence){const i=pt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof X&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class tu extends ya{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=pt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof X&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class nv extends ya{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=pt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof X&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class nu extends ya{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=pt(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof X&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function xo(n,e,t=[]){t=Le(t);let r=[],i=0;function s(o){return o.concat(Ae(n,i+1))}function a(o){const l=xo(s(o),e,t);return r.concat(l)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof He)return a(o.definition);if(o instanceof Me)return a(o.definition);if(o instanceof Ne)r=a(o.definition);else if(o instanceof rt){const l=o.definition.concat([new se({definition:o.definition})]);return a(l)}else if(o instanceof it){const l=[new He({definition:o.definition}),new se({definition:[new X({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof ze){const l=o.definition.concat([new se({definition:[new X({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof se){const l=o.definition.concat([new se({definition:o.definition})]);r=a(l)}else{if(o instanceof je)return _(o.definition,l=>{z(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof X)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:Ae(n,i)}),r}function _h(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,c=l-r-1,u=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!z(d);){const f=d.pop();if(f===a){o&&ln(d).idx<=c&&d.pop();continue}const h=f.def,p=f.idx,T=f.ruleStack,A=f.occurrenceStack;if(z(h))continue;const y=h[0];if(y===i){const R={idx:p,def:Ae(h),ruleStack:oi(T),occurrenceStack:oi(A)};d.push(R)}else if(y instanceof X)if(p<l-1){const R=p+1,m=e[R];if(t(m,y.terminalType)){const E={idx:R,def:Ae(h),ruleStack:T,occurrenceStack:A};d.push(E)}}else if(p===l-1)u.push({nextTokenType:y.terminalType,nextTokenOccurrence:y.idx,ruleStack:T,occurrenceStack:A}),o=!0;else throw Error("non exhaustive match");else if(y instanceof Me){const R=Le(T);R.push(y.nonTerminalName);const m=Le(A);m.push(y.idx);const E={idx:p,def:y.definition.concat(s,Ae(h)),ruleStack:R,occurrenceStack:m};d.push(E)}else if(y instanceof Ne){const R={idx:p,def:Ae(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m={idx:p,def:y.definition.concat(Ae(h)),ruleStack:T,occurrenceStack:A};d.push(m)}else if(y instanceof rt){const R=new se({definition:y.definition,idx:y.idx}),m=y.definition.concat([R],Ae(h)),E={idx:p,def:m,ruleStack:T,occurrenceStack:A};d.push(E)}else if(y instanceof it){const R=new X({terminalType:y.separator}),m=new se({definition:[R].concat(y.definition),idx:y.idx}),E=y.definition.concat([m],Ae(h)),$={idx:p,def:E,ruleStack:T,occurrenceStack:A};d.push($)}else if(y instanceof ze){const R={idx:p,def:Ae(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m=new X({terminalType:y.separator}),E=new se({definition:[m].concat(y.definition),idx:y.idx}),$=y.definition.concat([E],Ae(h)),V={idx:p,def:$,ruleStack:T,occurrenceStack:A};d.push(V)}else if(y instanceof se){const R={idx:p,def:Ae(h),ruleStack:T,occurrenceStack:A};d.push(R),d.push(a);const m=new se({definition:y.definition,idx:y.idx}),E=y.definition.concat([m],Ae(h)),$={idx:p,def:E,ruleStack:T,occurrenceStack:A};d.push($)}else if(y instanceof je)for(let R=y.definition.length-1;R>=0;R--){const m=y.definition[R],E={idx:p,def:m.definition.concat(Ae(h)),ruleStack:T,occurrenceStack:A};d.push(E),d.push(a)}else if(y instanceof He)d.push({idx:p,def:y.definition.concat(Ae(h)),ruleStack:T,occurrenceStack:A});else if(y instanceof lr)d.push(rv(y,p,T,A));else throw Error("non exhaustive match")}return u}function rv(n,e,t,r){const i=Le(t);i.push(n.name);const s=Le(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var ee;(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"})(ee||(ee={}));function Ol(n){if(n instanceof Ne||n==="Option")return ee.OPTION;if(n instanceof se||n==="Repetition")return ee.REPETITION;if(n instanceof rt||n==="RepetitionMandatory")return ee.REPETITION_MANDATORY;if(n instanceof it||n==="RepetitionMandatoryWithSeparator")return ee.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof ze||n==="RepetitionWithSeparator")return ee.REPETITION_WITH_SEPARATOR;if(n instanceof je||n==="Alternation")return ee.ALTERNATION;throw Error("non exhaustive match")}function ru(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=Ol(r);return s===ee.ALTERNATION?Ta(e,t,i):Ra(e,t,s,i)}function iv(n,e,t,r,i,s){const a=Ta(n,e,t),o=wh(a)?bs:vi;return s(a,r,o,i)}function sv(n,e,t,r,i,s){const a=Ra(n,e,i,t),o=wh(a)?bs:vi;return s(a[0],o,r)}function av(n,e,t,r){const i=n.length,s=dt(n,a=>dt(a,o=>o.length===1));if(e)return function(a){const o=N(a,l=>l.GATE);for(let l=0;l<i;l++){const c=n[l],u=c.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<u;f++){const h=c[f],p=h.length;for(let T=0;T<p;T++){const A=this.LA(T+1);if(t(A,h[T])===!1)continue e}return l}}};if(s&&!r){const a=N(n,l=>st(l)),o=Pe(a,(l,c,u)=>(_(c,d=>{L(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=u),_(d.categoryMatches,f=>{L(l,f)||(l[f]=u)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],l=o.length;e:for(let c=0;c<l;c++){const u=o[c],d=u.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(t(h,u[f])===!1)continue e}return a}}}}function ov(n,e,t){const r=dt(n,s=>s.length===1),i=n.length;if(r&&!t){const s=st(n);if(s.length===1&&z(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=Pe(s,(o,l,c)=>(o[l.tokenTypeIdx]=!0,_(l.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let l=0;l<o;l++){const c=this.LA(l+1);if(e(c,a[l])===!1)continue e}return!0}return!1}}class lv extends ma{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):!1}walkOption(e,t,r){this.checkIsTarget(e,ee.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,ee.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,ee.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,ee.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,ee.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class Lh extends cr{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,ee.OPTION)}visitRepetition(e){this.checkIsTarget(e,ee.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,ee.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,ee.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,ee.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,ee.ALTERNATION)}}function iu(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function Wa(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 l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function cv(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++){const a=e[s];if(i[a]===!0)return!1}}return!0}function Oh(n,e){const t=N(n,a=>xo([a],1)),r=iu(t.length),i=N(t,a=>{const o={};return _(a,l=>{const c=Wa(l.partialPath);_(c,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=iu(o.length);for(let l=0;l<o.length;l++){const c=o[l];for(let u=0;u<c.length;u++){const d=c[u].partialPath,f=c[u].suffixDef,h=Wa(d);if(cv(i,h,l)||z(f)||d.length===e){const T=r[l];if(Co(T,d)===!1){T.push(d);for(let A=0;A<h.length;A++){const y=h[A];i[l][y]=!0}}}else{const T=xo(f,a+1,d);s[l]=s[l].concat(T),_(T,A=>{const y=Wa(A.partialPath);_(y,R=>{i[l][R]=!0})})}}}}return r}function Ta(n,e,t,r){const i=new Lh(n,ee.ALTERNATION,r);return e.accept(i),Oh(i.result,t)}function Ra(n,e,t,r){const i=new Lh(n,t);e.accept(i);const s=i.result,o=new lv(e,n,t).startWalking(),l=new He({definition:s}),c=new He({definition:o});return Oh([l,c],r)}function Co(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)===!1)continue e}return!0}}return!1}function uv(n,e){return n.length<e.length&&dt(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function wh(n){return dt(n,e=>dt(e,t=>dt(t,r=>z(r.categoryMatches))))}function dv(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return N(e,t=>Object.assign({type:De.CUSTOM_LOOKAHEAD_VALIDATION},t))}function fv(n,e,t,r){const i=Je(n,l=>hv(l,t)),s=Sv(n,e,t),a=Je(n,l=>Av(l,t)),o=Je(n,l=>gv(l,n,r,t));return i.concat(s,a,o)}function hv(n,e){const t=new mv;n.accept(t);const r=t.allProductions,i=Dm(r,pv),s=gt(i,o=>o.length>1);return N(pe(s),o=>{const l=pt(o),c=e.buildDuplicateFoundError(n,o),u=It(l),d={message:c,type:De.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:u,occurrence:l.idx},f=Ph(l);return f&&(d.parameter=f),d})}function pv(n){return`${It(n)}_#_${n.idx}_#_${Ph(n)}`}function Ph(n){return n instanceof X?n.terminalType.name:n instanceof Me?n.nonTerminalName:""}class mv extends cr{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 gv(n,e,t,r){const i=[];if(Pe(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:De.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function yv(n,e,t){const r=[];let i;return Fe(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:De.INVALID_RULE_OVERRIDE,ruleName:n})),r}function bh(n,e,t,r=[]){const i=[],s=cs(e.definition);if(z(s))return[];{const a=n.name;Fe(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:De.LEFT_RECURSION,ruleName:a});const l=Qs(s,r.concat([n])),c=Je(l,u=>{const d=Le(r);return d.push(u),bh(n,u,t,d)});return i.concat(c)}}function cs(n){let e=[];if(z(n))return e;const t=pt(n);if(t instanceof Me)e.push(t.referencedRule);else if(t instanceof He||t instanceof Ne||t instanceof rt||t instanceof it||t instanceof ze||t instanceof se)e=e.concat(cs(t.definition));else if(t instanceof je)e=st(N(t.definition,s=>cs(s.definition)));else if(!(t instanceof X))throw Error("non exhaustive match");const r=Ls(t),i=n.length>1;if(r&&i){const s=Ae(n);return e.concat(cs(s))}else return e}class wl extends cr{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Tv(n,e){const t=new wl;n.accept(t);const r=t.alternations;return Je(r,s=>{const a=oi(s.definition);return Je(a,(o,l)=>{const c=_h([o],[],vi,1);return z(c)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:De.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function Rv(n,e,t){const r=new wl;n.accept(r);let i=r.alternations;return i=Zs(i,a=>a.ignoreAmbiguities===!0),Je(i,a=>{const o=a.idx,l=a.maxLookahead||e,c=Ta(o,n,l,a),u=Iv(c,a,n,t),d=kv(c,a,n,t);return u.concat(d)})}class Ev extends cr{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 Av(n,e){const t=new wl;n.accept(t);const r=t.alternations;return Je(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:De.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function vv(n,e,t){const r=[];return _(n,i=>{const s=new Ev;i.accept(s);const a=s.allProductions;_(a,o=>{const l=Ol(o),c=o.maxLookahead||e,u=o.idx,f=Ra(u,i,l,c)[0];if(z(st(f))){const h=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:h,type:De.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function Iv(n,e,t,r){const i=[],s=Pe(n,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||_(l,u=>{const d=[c];_(n,(f,h)=>{c!==h&&Co(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!Co(i,u)&&(i.push(u),o.push({alts:d,path:u}))}),o),[]);return N(s,o=>{const l=N(o.alts,u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:De.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function kv(n,e,t,r){const i=Pe(n,(a,o,l)=>{const c=N(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return hi(Je(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,c=a.path,u=nt(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<l&&uv(f.path,c));return N(u,f=>{const h=[f.idx+1,l+1],p=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:De.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:p,alternatives:h}})}))}function Sv(n,e,t){const r=[],i=N(e,s=>s.name);return _(n,s=>{const a=s.name;if(Fe(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:De.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function Nv(n){const e=nl(n,{errMsgProvider:XA}),t={};return _(n.rules,r=>{t[r.name]=r}),JA(t,e.errMsgProvider)}function xv(n){return n=nl(n,{errMsgProvider:on}),fv(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const Mh="MismatchedTokenException",Dh="NoViableAltException",Fh="EarlyExitException",Uh="NotAllInputParsedException",Gh=[Mh,Dh,Fh,Uh];Object.freeze(Gh);function Ms(n){return Fe(Gh,n.name)}class Ea 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 Bh extends Ea{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Mh}}class Cv extends Ea{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Dh}}class $v extends Ea{constructor(e,t){super(e,t),this.name=Uh}}class _v extends Ea{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Fh}}const Va={},Kh="InRuleRecoveryException";class Lv extends Error{constructor(e){super(e),this.name=Kh}}class Ov{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=L(e,"recoveryEnabled")?e.recoveryEnabled:Ht.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=wv)}getTokenToInsert(e){const t=Ll(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const c=this.LA(1);let u=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:f,ruleName:this.getCurrRuleFullName()}),p=new Bh(h,c,this.LA(0));p.resyncedTokens=oi(o),this.SAVE_ERROR(p)};for(;!l;)if(this.tokenMatcher(u,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new Lv("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||z(t))return!1;const r=this.LA(1);return qn(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return Fe(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=qn(e,s=>Ch(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Va;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return N(e,(r,i)=>i===0?Va:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=N(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return st(e)}getFollowSetFromFollowKey(e){if(e===Va)return[pn];const t=e.ruleName+e.idxInCallingRule+yh+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,pn)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return oi(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=Le(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return N(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function wv(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&c===void 0&&(c=pn,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(n,e,t,c)}const Pv=4,qt=8,Wh=1<<qt,Vh=2<<qt,$o=3<<qt,_o=4<<qt,Lo=5<<qt,us=6<<qt;function Ha(n,e,t){return t|e|n}class Hh{constructor(e){var t;this.maxLookahead=(t=e?.maxLookahead)!==null&&t!==void 0?t:Ht.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(z(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 Je(e,t=>bh(t,t,on))}validateEmptyOrAlternatives(e){return Je(e,t=>Tv(t,on))}validateAmbiguousAlternationAlternatives(e,t){return Je(e,r=>Rv(r,t,on))}validateSomeNonEmptyLookaheadPath(e,t){return vv(e,t,on)}buildLookaheadForAlternation(e){return iv(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,av)}buildLookaheadForOptional(e){return sv(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Ol(e.prodType),ov)}}class bv{initLooksAhead(e){this.dynamicTokensEnabled=L(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Ht.dynamicTokensEnabled,this.maxLookahead=L(e,"maxLookahead")?e.maxLookahead:Ht.maxLookahead,this.lookaheadStrategy=L(e,"lookaheadStrategy")?e.lookaheadStrategy:new Hh({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){_(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=Dv(t);_(r,c=>{const u=c.idx===0?"":c.idx;this.TRACE_INIT(`${It(c)}${u}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=Ha(this.fullRuleNameToShort[t.name],Wh,c.idx);this.setLaFuncCache(f,d)})}),_(i,c=>{this.computeLookaheadFunc(t,c.idx,$o,"Repetition",c.maxLookahead,It(c))}),_(s,c=>{this.computeLookaheadFunc(t,c.idx,Vh,"Option",c.maxLookahead,It(c))}),_(a,c=>{this.computeLookaheadFunc(t,c.idx,_o,"RepetitionMandatory",c.maxLookahead,It(c))}),_(o,c=>{this.computeLookaheadFunc(t,c.idx,us,"RepetitionMandatoryWithSeparator",c.maxLookahead,It(c))}),_(l,c=>{this.computeLookaheadFunc(t,c.idx,Lo,"RepetitionWithSeparator",c.maxLookahead,It(c))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Ha(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Ha(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class Mv extends cr{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const Wi=new Mv;function Dv(n){Wi.reset(),n.accept(Wi);const e=Wi.dslMethods;return Wi.reset(),e}function su(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function au(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 Fv(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function Uv(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const Gv="name";function zh(n,e){Object.defineProperty(n,Gv,{enumerable:!1,configurable:!0,writable:!1,value:e})}function Bv(n,e){const t=Xn(n),r=t.length;for(let i=0;i<r;i++){const s=t[i],a=n[s],o=a.length;for(let l=0;l<o;l++){const c=a[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}}function Kv(n,e){const t=function(){};zh(t,n+"BaseSemantics");const r={visit:function(i,s){if(Se(i)&&(i=i[0]),!Mt(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=Vv(this,e);if(!z(i)){const s=N(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
195
+ ${s.join(`
196
+
197
+ `).replace(/\n/g,`
198
+ `)}`)}}};return t.prototype=r,t.prototype.constructor=t,t._RULE_NAMES=e,t}function Wv(n,e,t){const r=function(){};zh(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return _(e,s=>{i[s]=Bv}),r.prototype=i,r.prototype.constructor=r,r}var Oo;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(Oo||(Oo={}));function Vv(n,e){return Hv(n,e)}function Hv(n,e){const t=nt(e,i=>Tn(n[i])===!1),r=N(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:Oo.MISSING_METHOD,methodName:i}));return hi(r)}class zv{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=L(e,"nodeLocationTracking")?e.nodeLocationTracking:Ht.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ye,this.cstFinallyStateUpdate=ye,this.cstPostTerminal=ye,this.cstPostNonTerminal=ye,this.cstPostRule=ye;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=au,this.setNodeLocationFromNode=au,this.cstPostRule=ye,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ye,this.setNodeLocationFromNode=ye,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=su,this.setNodeLocationFromNode=su,this.cstPostRule=ye,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ye,this.setNodeLocationFromNode=ye,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ye,this.setNodeLocationFromNode=ye,this.cstPostRule=ye,this.setInitialNodeLocation=ye;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];Fv(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];Uv(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(Mt(this.baseCstVisitorConstructor)){const e=Kv(this.className,Xn(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Mt(this.baseCstVisitorWithDefaultsConstructor)){const e=Wv(this.className,Xn(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class jv{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Fs}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Fs:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class Yv{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=Us){if(Fe(this.definedRulesNames,e)){const a={message:on.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:De.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=Us){const i=yv(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Ms(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return JE(pe(this.gastProductionsCache))}}class qv{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=bs,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},L(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
199
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
200
+ For Further details.`);if(Se(e)){if(z(e))throw Error(`A Token Vocabulary cannot be empty.
201
+ Note that the first argument for the parser constructor
202
+ is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
203
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
204
+ For Further details.`)}if(Se(e))this.tokensMap=Pe(e,(s,a)=>(s[a.name]=a,s),{});else if(L(e,"modes")&&dt(st(pe(e.modes)),zA)){const s=st(pe(e.modes)),a=il(s);this.tokensMap=Pe(a,(o,l)=>(o[l.name]=l,o),{})}else if(Sm(e))this.tokensMap=Le(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=pn;const r=L(e,"modes")?st(pe(e.modes)):pe(e),i=dt(r,s=>z(s.categoryMatches));this.tokenMatcher=i?bs:vi,Ii(pe(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
205
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=L(r,"resyncEnabled")?r.resyncEnabled:Us.resyncEnabled,s=L(r,"recoveryValueFunc")?r.recoveryValueFunc:Us.recoveryValueFunc,a=this.ruleShortNameIdx<<Pv+qt;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...u){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...u){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Ms(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(Vh,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(_o,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,ee.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,_o,e,nv)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(us,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,nu],o,us,e,nu)}else throw this.raiseEarlyExitException(e,ee.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead($o,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,$o,e,tv,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Lo,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,tu],o,Lo,e,tu)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,us,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(Wh,t),i=Se(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new $v(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw Ms(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Bh(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Kh?r:s}}else throw r}saveRecogState(){const e=this.errors,t=Le(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),pn)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class Xv{initErrorHandler(e){this._errors=[],this.errorMessageProvider=L(e,"errorMessageProvider")?e.errorMessageProvider:Ht.errorMessageProvider}SAVE_ERROR(e){if(Ms(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Le(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Le(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=Ra(e,s,t,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));const c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new _v(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=Ta(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Cv(l,this.LA(1),o))}}class Jv{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(Mt(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return _h([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=pt(e.ruleStack),i=this.getGAstProductions()[t];return new ev(i,e).startWalking()}}const Aa={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Aa);const ou=!0,lu=Math.pow(2,qt)-1,jh=xh({name:"RECORDING_PHASE_TOKEN",pattern:ot.NA});Ii([jh]);const Yh=Ll(jh,`This IToken indicates the Parser is in Recording Phase
206
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Yh);const Qv={name:`This CSTNode indicates the Parser is in Recording Phase
207
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class Zv{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Fs}topLevelRuleRecord(e,t){try{const r=new lr({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
208
+ This error was thrown during the "grammar recording phase" For more info see:
209
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return yr.call(this,Ne,e,t)}atLeastOneInternalRecord(e,t){yr.call(this,rt,t,e)}atLeastOneSepFirstInternalRecord(e,t){yr.call(this,it,t,e,ou)}manyInternalRecord(e,t){yr.call(this,se,t,e)}manySepFirstInternalRecord(e,t){yr.call(this,ze,t,e,ou)}orInternalRecord(e,t){return eI.call(this,e,t)}subruleInternalRecord(e,t,r){if(Ds(t),!e||L(e,"ruleName")===!1){const o=new Error(`<SUBRULE${cu(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
210
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=ln(this.recordingProdStack),s=e.ruleName,a=new Me({idx:t,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?Qv:Aa}consumeInternalRecord(e,t,r){if(Ds(t),!Sh(e)){const a=new Error(`<CONSUME${cu(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
211
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=ln(this.recordingProdStack),s=new X({idx:t,terminalType:e,label:r?.LABEL});return i.definition.push(s),Yh}}function yr(n,e,t,r=!1){Ds(t);const i=ln(this.recordingProdStack),s=Tn(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),L(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),Aa}function eI(n,e){Ds(e);const t=ln(this.recordingProdStack),r=Se(n)===!1,i=r===!1?n:n.DEF,s=new je({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});L(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=Zd(i,o=>Tn(o.GATE));return s.hasPredicates=a,t.definition.push(s),_(i,o=>{const l=new He({definition:[]});s.definition.push(l),L(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:L(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),Aa}function cu(n){return n===0?"":`${n}`}function Ds(n){if(n<0||n>lu){const e=new Error(`Invalid DSL Method idx value: <${n}>
212
+ Idx value must be a none negative value smaller than ${lu+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class tI{initPerformanceTracer(e){if(L(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Ht.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=mh(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function nI(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const Fs=Ll(pn,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Fs);const Ht=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:$h,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Us=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var De;(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"})(De||(De={}));class va{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",()=>{gh(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),_(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=Nv({rules:pe(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(z(r)&&this.skipValidations===!1){const i=xv({rules:pe(this.gastProductionsCache),tokenTypes:pe(this.tokensMap),errMsgProvider:on,grammarName:t}),s=dv({lookaheadStrategy:this.lookaheadStrategy,rules:pe(this.gastProductionsCache),tokenTypes:pe(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),z(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=iA(pe(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:pe(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(pe(this.gastProductionsCache))})),!va.DEFER_DEFINITION_ERRORS_HANDLING&&!z(this.definitionErrors))throw e=N(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
213
+ ${e.join(`
214
+ -------------------------------
215
+ `)}`)})}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),L(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
216
+ Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
217
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
218
+ For further details.`);this.skipValidations=L(t,"skipValidations")?t.skipValidations:Ht.skipValidations}}va.DEFER_DEFINITION_ERRORS_HANDLING=!1;nI(va,[Ov,bv,zv,jv,qv,Yv,Xv,Jv,Zv,tI]);function er(n,e,t){return`${n.name}_${e}_${t}`}const zt=1,rI=2,qh=4,Xh=5,ki=7,iI=8,sI=9,aI=10,oI=11,Jh=12;class Pl{constructor(e){this.target=e}isEpsilon(){return!1}}class bl extends Pl{constructor(e,t){super(e),this.tokenType=t}}class Qh extends Pl{constructor(e){super(e)}isEpsilon(){return!0}}class Ml extends Pl{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function lI(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};cI(e,n);const t=n.length;for(let r=0;r<t;r++){const i=n[r],s=An(e,i,i);s!==void 0&&EI(e,i,s)}return e}function cI(n,e){const t=e.length;for(let r=0;r<t;r++){const i=e[r],s=Te(n,i,void 0,{type:rI}),a=Te(n,i,void 0,{type:ki});s.stop=a,n.ruleToStartState.set(i,s),n.ruleToStopState.set(i,a)}}function Zh(n,e,t){return t instanceof X?Dl(n,e,t.terminalType,t):t instanceof Me?RI(n,e,t):t instanceof je?pI(n,e,t):t instanceof Ne?mI(n,e,t):t instanceof se?uI(n,e,t):t instanceof ze?dI(n,e,t):t instanceof rt?fI(n,e,t):t instanceof it?hI(n,e,t):An(n,e,t)}function uI(n,e,t){const r=Te(n,e,t,{type:Xh});Xt(n,r);const i=ur(n,e,r,t,An(n,e,t));return tp(n,e,t,i)}function dI(n,e,t){const r=Te(n,e,t,{type:Xh});Xt(n,r);const i=ur(n,e,r,t,An(n,e,t)),s=Dl(n,e,t.separator,t);return tp(n,e,t,i,s)}function fI(n,e,t){const r=Te(n,e,t,{type:qh});Xt(n,r);const i=ur(n,e,r,t,An(n,e,t));return ep(n,e,t,i)}function hI(n,e,t){const r=Te(n,e,t,{type:qh});Xt(n,r);const i=ur(n,e,r,t,An(n,e,t)),s=Dl(n,e,t.separator,t);return ep(n,e,t,i,s)}function pI(n,e,t){const r=Te(n,e,t,{type:zt});Xt(n,r);const i=N(t.definition,a=>Zh(n,e,a));return ur(n,e,r,t,...i)}function mI(n,e,t){const r=Te(n,e,t,{type:zt});Xt(n,r);const i=ur(n,e,r,t,An(n,e,t));return gI(n,e,t,i)}function An(n,e,t){const r=nt(N(t.definition,i=>Zh(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:TI(n,r)}function ep(n,e,t,r,i){const s=r.left,a=r.right,o=Te(n,e,t,{type:oI});Xt(n,o);const l=Te(n,e,t,{type:Jh});return s.loopback=o,l.loopback=o,n.decisionMap[er(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,ue(a,o),i===void 0?(ue(o,s),ue(o,l)):(ue(o,l),ue(o,i.left),ue(i.right,s)),{left:s,right:l}}function tp(n,e,t,r,i){const s=r.left,a=r.right,o=Te(n,e,t,{type:aI});Xt(n,o);const l=Te(n,e,t,{type:Jh}),c=Te(n,e,t,{type:sI});return o.loopback=c,l.loopback=c,ue(o,s),ue(o,l),ue(a,c),i!==void 0?(ue(c,l),ue(c,i.left),ue(i.right,s)):ue(c,o),n.decisionMap[er(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function gI(n,e,t,r){const i=r.left,s=r.right;return ue(i,s),n.decisionMap[er(e,"Option",t.idx)]=i,r}function Xt(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function ur(n,e,t,r,...i){const s=Te(n,e,r,{type:iI,start:t});t.end=s;for(const o of i)o!==void 0?(ue(t,o.left),ue(o.right,s)):ue(t,s);const a={left:t,right:s};return n.decisionMap[er(e,yI(r),r.idx)]=t,a}function yI(n){if(n instanceof je)return"Alternation";if(n instanceof Ne)return"Option";if(n instanceof se)return"Repetition";if(n instanceof ze)return"RepetitionWithSeparator";if(n instanceof rt)return"RepetitionMandatory";if(n instanceof it)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function TI(n,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof Ml,c=o,u=e[s+1].left;a.left.type===zt&&a.right.type===zt&&o!==void 0&&(l&&c.followState===a.right||o.target===a.right)?(l?c.followState=u:o.target=u,AI(n,a.right)):ue(a.right,u)}const r=e[0],i=e[t-1];return{left:r.left,right:i.right}}function Dl(n,e,t,r){const i=Te(n,e,r,{type:zt}),s=Te(n,e,r,{type:zt});return Fl(i,new bl(s,t)),{left:i,right:s}}function RI(n,e,t){const r=t.referencedRule,i=n.ruleToStartState.get(r),s=Te(n,e,t,{type:zt}),a=Te(n,e,t,{type:zt}),o=new Ml(i,r,a);return Fl(s,o),{left:s,right:a}}function EI(n,e,t){const r=n.ruleToStartState.get(e);ue(r,t.left);const i=n.ruleToStopState.get(e);return ue(t.right,i),{left:r,right:i}}function ue(n,e){const t=new Qh(e);Fl(n,t)}function Te(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 Fl(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function AI(n,e){n.states.splice(n.states.indexOf(e),1)}const Gs={};class wo{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=np(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return N(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function np(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function vI(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 rp{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 uu=new rp;class II extends Hh{constructor(e){var t;super(),this.logging=(t=e?.logging)!==null&&t!==void 0?t:(r=>console.log(r))}initialize(e){this.atn=lI(e.rules),this.dfas=kI(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=er(r,"Alternation",t),u=this.atn.decisionMap[l].decision,d=N(ru({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),f=>N(f,h=>h[0]));if(du(d,!1)&&!s){const f=Pe(d,(h,p,T)=>(_(p,A=>{A&&(h[A.tokenTypeIdx]=T,_(A.categoryMatches,y=>{h[y]=T}))}),h),{});return i?function(h){var p;const T=this.LA(1),A=f[T.tokenTypeIdx];if(h!==void 0&&A!==void 0){const y=(p=h[A])===null||p===void 0?void 0:p.GATE;if(y!==void 0&&y.call(this)===!1)return}return A}:function(){const h=this.LA(1);return f[h.tokenTypeIdx]}}else return i?function(f){const h=new rp,p=f===void 0?0:f.length;for(let A=0;A<p;A++){const y=f?.[A].GATE;h.set(A,y===void 0||y.call(this))}const T=za.call(this,a,u,h,o);return typeof T=="number"?T:void 0}:function(){const f=za.call(this,a,u,uu,o);return typeof f=="number"?f:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=er(r,i,t),u=this.atn.decisionMap[l].decision,d=N(ru({maxLookahead:1,occurrence:t,prodType:i,rule:r}),f=>N(f,h=>h[0]));if(du(d)&&d[0][0]&&!s){const f=d[0],h=st(f);if(h.length===1&&z(h[0].categoryMatches)){const T=h[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===T}}else{const p=Pe(h,(T,A)=>(A!==void 0&&(T[A.tokenTypeIdx]=!0,_(A.categoryMatches,y=>{T[y]=!0})),T),{});return function(){const T=this.LA(1);return p[T.tokenTypeIdx]===!0}}}return function(){const f=za.call(this,a,u,uu,o);return typeof f=="object"?!1:f===0}}}function du(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 kI(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;r<e;r++)t[r]=vI(n.decisionStates[r],r);return t}function za(n,e,t,r){const i=n[e](t);let s=i.start;if(s===void 0){const o=bI(i.atnStartState);s=sp(i,ip(o)),i.start=s}return SI.apply(this,[i,s,t,r])}function SI(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=LI(i,o);if(l===void 0&&(l=NI.apply(this,[n,i,o,s,t,r])),l===Gs)return _I(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function NI(n,e,t,r,i,s){const a=OI(e.configs,t,i);if(a.size===0)return fu(n,e,t,Gs),Gs;let o=ip(a);const l=PI(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(UI(a)){const c=pm(a.alts);o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c,xI.apply(this,[n,r,a.alts,s])}return o=fu(n,e,t,o),o}function xI(n,e,t,r){const i=[];for(let c=1;c<=e;c++)i.push(this.LA(c).tokenType);const s=n.atnStartState,a=s.rule,o=s.production,l=CI({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});r(l)}function CI(n){const e=N(n.prefixPath,i=>$n(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${$I(n.production)}${t}> inside <${n.topLevelRule.name}> Rule,
219
+ <${e}> may appears as a prefix path in all these alternatives.
220
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
221
+ For Further details.`,r}function $I(n){if(n instanceof Me)return"SUBRULE";if(n instanceof Ne)return"OPTION";if(n instanceof je)return"OR";if(n instanceof rt)return"AT_LEAST_ONE";if(n instanceof it)return"AT_LEAST_ONE_SEP";if(n instanceof ze)return"MANY_SEP";if(n instanceof se)return"MANY";if(n instanceof X)return"CONSUME";throw Error("non exhaustive match")}function _I(n,e,t){const r=Je(e.configs.elements,s=>s.state.transitions),i=Hm(r.filter(s=>s instanceof bl).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function LI(n,e){return n.edges[e.tokenTypeIdx]}function OI(n,e,t){const r=new wo,i=[];for(const a of n.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===ki){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const c=a.state.transitions[l],u=wI(c,e);u!==void 0&&r.add({state:u,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new wo;for(const a of r.elements)Bs(a,s)}if(i.length>0&&!DI(s))for(const a of i)s.add(a);return s}function wI(n,e){if(n instanceof bl&&Ch(e,n.tokenType))return n.target}function PI(n,e){let t;for(const r of n.elements)if(e.is(r.alt)===!0){if(t===void 0)t=r.alt;else if(t!==r.alt)return}return t}function ip(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function fu(n,e,t,r){return r=sp(n,r),e.edges[t.tokenTypeIdx]=r,r}function sp(n,e){if(e===Gs)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 bI(n){const e=new wo,t=n.transitions.length;for(let r=0;r<t;r++){const s={state:n.transitions[r].target,alt:r,stack:[]};Bs(s,e)}return e}function Bs(n,e){const t=n.state;if(t.type===ki){if(n.stack.length>0){const i=[...n.stack],a={state:i.pop(),alt:n.alt,stack:i};Bs(a,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=t.transitions[i],a=MI(n,s);a!==void 0&&Bs(a,e)}}function MI(n,e){if(e instanceof Qh)return{state:e.target,alt:n.alt,stack:n.stack};if(e instanceof Ml){const t=[...n.stack,e.followState];return{state:e.target,alt:n.alt,stack:t}}}function DI(n){for(const e of n.elements)if(e.state.type===ki)return!0;return!1}function FI(n){for(const e of n.elements)if(e.state.type!==ki)return!1;return!0}function UI(n){if(FI(n))return!0;const e=GI(n.elements);return BI(e)&&!KI(e)}function GI(n){const e=new Map;for(const t of n){const r=np(t,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[t.alt]=!0}return e}function BI(n){for(const e of Array.from(n.values()))if(Object.keys(e).length>1)return!0;return!1}function KI(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var hu;(function(n){function e(t){return typeof t=="string"}n.is=e})(hu||(hu={}));var Po;(function(n){function e(t){return typeof t=="string"}n.is=e})(Po||(Po={}));var pu;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(pu||(pu={}));var Ks;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Ks||(Ks={}));var B;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Ks.MAX_VALUE),i===Number.MAX_VALUE&&(i=Ks.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.uinteger(i.line)&&g.uinteger(i.character)}n.is=t})(B||(B={}));var U;(function(n){function e(r,i,s,a){if(g.uinteger(r)&&g.uinteger(i)&&g.uinteger(s)&&g.uinteger(a))return{start:B.create(r,i),end:B.create(s,a)};if(B.is(r)&&B.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&B.is(i.start)&&B.is(i.end)}n.is=t})(U||(U={}));var Ws;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&U.is(i.range)&&(g.string(i.uri)||g.undefined(i.uri))}n.is=t})(Ws||(Ws={}));var mu;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&U.is(i.targetRange)&&g.string(i.targetUri)&&U.is(i.targetSelectionRange)&&(U.is(i.originSelectionRange)||g.undefined(i.originSelectionRange))}n.is=t})(mu||(mu={}));var bo;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&g.numberRange(i.red,0,1)&&g.numberRange(i.green,0,1)&&g.numberRange(i.blue,0,1)&&g.numberRange(i.alpha,0,1)}n.is=t})(bo||(bo={}));var gu;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&U.is(i.range)&&bo.is(i.color)}n.is=t})(gu||(gu={}));var yu;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.undefined(i.textEdit)||nr.is(i))&&(g.undefined(i.additionalTextEdits)||g.typedArray(i.additionalTextEdits,nr.is))}n.is=t})(yu||(yu={}));var Tu;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Tu||(Tu={}));var Ru;(function(n){function e(r,i,s,a,o,l){const c={startLine:r,endLine:i};return g.defined(s)&&(c.startCharacter=s),g.defined(a)&&(c.endCharacter=a),g.defined(o)&&(c.kind=o),g.defined(l)&&(c.collapsedText=l),c}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&g.uinteger(i.startLine)&&g.uinteger(i.startLine)&&(g.undefined(i.startCharacter)||g.uinteger(i.startCharacter))&&(g.undefined(i.endCharacter)||g.uinteger(i.endCharacter))&&(g.undefined(i.kind)||g.string(i.kind))}n.is=t})(Ru||(Ru={}));var Mo;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&Ws.is(i.location)&&g.string(i.message)}n.is=t})(Mo||(Mo={}));var Eu;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(Eu||(Eu={}));var Au;(function(n){n.Unnecessary=1,n.Deprecated=2})(Au||(Au={}));var vu;(function(n){function e(t){const r=t;return g.objectLiteral(r)&&g.string(r.href)}n.is=e})(vu||(vu={}));var Vs;(function(n){function e(r,i,s,a,o,l){let c={range:r,message:i};return g.defined(s)&&(c.severity=s),g.defined(a)&&(c.code=a),g.defined(o)&&(c.source=o),g.defined(l)&&(c.relatedInformation=l),c}n.create=e;function t(r){var i;let s=r;return g.defined(s)&&U.is(s.range)&&g.string(s.message)&&(g.number(s.severity)||g.undefined(s.severity))&&(g.integer(s.code)||g.string(s.code)||g.undefined(s.code))&&(g.undefined(s.codeDescription)||g.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(g.string(s.source)||g.undefined(s.source))&&(g.undefined(s.relatedInformation)||g.typedArray(s.relatedInformation,Mo.is))}n.is=t})(Vs||(Vs={}));var tr;(function(n){function e(r,i,...s){let a={title:r,command:i};return g.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.title)&&g.string(i.command)}n.is=t})(tr||(tr={}));var nr;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){const a=s;return g.objectLiteral(a)&&g.string(a.newText)&&U.is(a.range)}n.is=i})(nr||(nr={}));var Do;(function(n){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(g.string(i.description)||i.description===void 0)}n.is=t})(Do||(Do={}));var rr;(function(n){function e(t){const r=t;return g.string(r)}n.is=e})(rr||(rr={}));var Iu;(function(n){function e(s,a,o){return{range:s,newText:a,annotationId:o}}n.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){const a=s;return nr.is(a)&&(Do.is(a.annotationId)||rr.is(a.annotationId))}n.is=i})(Iu||(Iu={}));var Fo;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&Wo.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(Fo||(Fo={}));var Uo;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&g.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||rr.is(i.annotationId))}n.is=t})(Uo||(Uo={}));var Go;(function(n){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&g.string(i.oldUri)&&g.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||rr.is(i.annotationId))}n.is=t})(Go||(Go={}));var Bo;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&g.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||g.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||g.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||rr.is(i.annotationId))}n.is=t})(Bo||(Bo={}));var Ko;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>g.string(i.kind)?Uo.is(i)||Go.is(i)||Bo.is(i):Fo.is(i)))}n.is=e})(Ko||(Ko={}));var ku;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)}n.is=t})(ku||(ku={}));var Su;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.integer(i.version)}n.is=t})(Su||(Su={}));var Wo;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&(i.version===null||g.integer(i.version))}n.is=t})(Wo||(Wo={}));var Nu;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.string(i.languageId)&&g.integer(i.version)&&g.string(i.text)}n.is=t})(Nu||(Nu={}));var Vo;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(Vo||(Vo={}));var ui;(function(n){function e(t){const r=t;return g.objectLiteral(t)&&Vo.is(r.kind)&&g.string(r.value)}n.is=e})(ui||(ui={}));var xu;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(xu||(xu={}));var Cu;(function(n){n.PlainText=1,n.Snippet=2})(Cu||(Cu={}));var $u;(function(n){n.Deprecated=1})($u||($u={}));var _u;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){const i=r;return i&&g.string(i.newText)&&U.is(i.insert)&&U.is(i.replace)}n.is=t})(_u||(_u={}));var Lu;(function(n){n.asIs=1,n.adjustIndentation=2})(Lu||(Lu={}));var Ou;(function(n){function e(t){const r=t;return r&&(g.string(r.detail)||r.detail===void 0)&&(g.string(r.description)||r.description===void 0)}n.is=e})(Ou||(Ou={}));var wu;(function(n){function e(t){return{label:t}}n.create=e})(wu||(wu={}));var Pu;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(Pu||(Pu={}));var Hs;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){const i=r;return g.string(i)||g.objectLiteral(i)&&g.string(i.language)&&g.string(i.value)}n.is=t})(Hs||(Hs={}));var bu;(function(n){function e(t){let r=t;return!!r&&g.objectLiteral(r)&&(ui.is(r.contents)||Hs.is(r.contents)||g.typedArray(r.contents,Hs.is))&&(t.range===void 0||U.is(t.range))}n.is=e})(bu||(bu={}));var Mu;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(Mu||(Mu={}));var Du;(function(n){function e(t,r,...i){let s={label:t};return g.defined(r)&&(s.documentation=r),g.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(Du||(Du={}));var Fu;(function(n){n.Text=1,n.Read=2,n.Write=3})(Fu||(Fu={}));var Uu;(function(n){function e(t,r){let i={range:t};return g.number(r)&&(i.kind=r),i}n.create=e})(Uu||(Uu={}));var Gu;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(Gu||(Gu={}));var Bu;(function(n){n.Deprecated=1})(Bu||(Bu={}));var Ku;(function(n){function e(t,r,i,s,a){let o={name:t,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}n.create=e})(Ku||(Ku={}));var Wu;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(Wu||(Wu={}));var Vu;(function(n){function e(r,i,s,a,o,l){let c={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(c.children=l),c}n.create=e;function t(r){let i=r;return i&&g.string(i.name)&&g.number(i.kind)&&U.is(i.range)&&U.is(i.selectionRange)&&(i.detail===void 0||g.string(i.detail))&&(i.deprecated===void 0||g.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(Vu||(Vu={}));var Hu;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(Hu||(Hu={}));var zs;(function(n){n.Invoked=1,n.Automatic=2})(zs||(zs={}));var zu;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.typedArray(i.diagnostics,Vs.is)&&(i.only===void 0||g.typedArray(i.only,g.string))&&(i.triggerKind===void 0||i.triggerKind===zs.Invoked||i.triggerKind===zs.Automatic)}n.is=t})(zu||(zu={}));var ju;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):tr.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&g.string(i.title)&&(i.diagnostics===void 0||g.typedArray(i.diagnostics,Vs.is))&&(i.kind===void 0||g.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||tr.is(i.command))&&(i.isPreferred===void 0||g.boolean(i.isPreferred))&&(i.edit===void 0||Ko.is(i.edit))}n.is=t})(ju||(ju={}));var Yu;(function(n){function e(r,i){let s={range:r};return g.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return g.defined(i)&&U.is(i.range)&&(g.undefined(i.command)||tr.is(i.command))}n.is=t})(Yu||(Yu={}));var qu;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.uinteger(i.tabSize)&&g.boolean(i.insertSpaces)}n.is=t})(qu||(qu={}));var Xu;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return g.defined(i)&&U.is(i.range)&&(g.undefined(i.target)||g.string(i.target))}n.is=t})(Xu||(Xu={}));var Ju;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&U.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(Ju||(Ju={}));var Qu;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(Qu||(Qu={}));var Zu;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(Zu||(Zu={}));var ed;(function(n){function e(t){const r=t;return g.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(ed||(ed={}));var td;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){const i=r;return i!=null&&U.is(i.range)&&g.string(i.text)}n.is=t})(td||(td={}));var nd;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){const i=r;return i!=null&&U.is(i.range)&&g.boolean(i.caseSensitiveLookup)&&(g.string(i.variableName)||i.variableName===void 0)}n.is=t})(nd||(nd={}));var rd;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){const i=r;return i!=null&&U.is(i.range)&&(g.string(i.expression)||i.expression===void 0)}n.is=t})(rd||(rd={}));var id;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){const i=r;return g.defined(i)&&U.is(r.stoppedLocation)}n.is=t})(id||(id={}));var Ho;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(Ho||(Ho={}));var zo;(function(n){function e(r){return{value:r}}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&(i.tooltip===void 0||g.string(i.tooltip)||ui.is(i.tooltip))&&(i.location===void 0||Ws.is(i.location))&&(i.command===void 0||tr.is(i.command))}n.is=t})(zo||(zo={}));var sd;(function(n){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){const i=r;return g.objectLiteral(i)&&B.is(i.position)&&(g.string(i.label)||g.typedArray(i.label,zo.is))&&(i.kind===void 0||Ho.is(i.kind))&&i.textEdits===void 0||g.typedArray(i.textEdits,nr.is)&&(i.tooltip===void 0||g.string(i.tooltip)||ui.is(i.tooltip))&&(i.paddingLeft===void 0||g.boolean(i.paddingLeft))&&(i.paddingRight===void 0||g.boolean(i.paddingRight))}n.is=t})(sd||(sd={}));var ad;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(ad||(ad={}));var od;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(od||(od={}));var ld;(function(n){function e(t){return{items:t}}n.create=e})(ld||(ld={}));var cd;(function(n){n.Invoked=0,n.Automatic=1})(cd||(cd={}));var ud;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(ud||(ud={}));var dd;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(dd||(dd={}));var fd;(function(n){function e(t){const r=t;return g.objectLiteral(r)&&Po.is(r.uri)&&g.string(r.name)}n.is=e})(fd||(fd={}));var hd;(function(n){function e(s,a,o,l){return new WI(s,a,o,l)}n.create=e;function t(s){let a=s;return!!(g.defined(a)&&g.string(a.uri)&&(g.undefined(a.languageId)||g.string(a.languageId))&&g.uinteger(a.lineCount)&&g.func(a.getText)&&g.func(a.positionAt)&&g.func(a.offsetAt))}n.is=t;function r(s,a){let o=s.getText(),l=i(a,(u,d)=>{let f=u.range.start.line-d.range.start.line;return f===0?u.range.start.character-d.range.start.character:f}),c=o.length;for(let u=l.length-1;u>=0;u--){let d=l[u],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=c)o=o.substring(0,f)+d.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");c=f}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),c=s.slice(o);i(l,a),i(c,a);let u=0,d=0,f=0;for(;u<l.length&&d<c.length;)a(l[u],c[d])<=0?s[f++]=l[u++]:s[f++]=c[d++];for(;u<l.length;)s[f++]=l[u++];for(;d<c.length;)s[f++]=c[d++];return s}})(hd||(hd={}));let WI=class{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){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,r=!0;for(let i=0;i<t.length;i++){r&&(e.push(i),r=!1);let s=t.charAt(i);r=s==="\r"||s===`
222
+ `,s==="\r"&&i+1<t.length&&t.charAt(i+1)===`
223
+ `&&i++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return B.create(0,e);for(;r<i;){let a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}let s=r-1;return B.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var g;(function(n){const e=Object.prototype.toString;function t(h){return typeof h<"u"}n.defined=t;function r(h){return typeof h>"u"}n.undefined=r;function i(h){return h===!0||h===!1}n.boolean=i;function s(h){return e.call(h)==="[object String]"}n.string=s;function a(h){return e.call(h)==="[object Number]"}n.number=a;function o(h,p,T){return e.call(h)==="[object Number]"&&p<=h&&h<=T}n.numberRange=o;function l(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}n.integer=l;function c(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}n.uinteger=c;function u(h){return e.call(h)==="[object Function]"}n.func=u;function d(h){return h!==null&&typeof h=="object"}n.objectLiteral=d;function f(h,p){return Array.isArray(h)&&h.every(p)}n.typedArray=f})(g||(g={}));class VI{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 op(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new Ul;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new jo(e.startOffset,e.image.length,uo(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 jo(s.startOffset,s.image.length,uo(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);return}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?.content.length===0&&this.removeNode(r)}}class ap{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 jo extends ap{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 Ul extends ap{constructor(){super(...arguments),this.content=new Gl(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}else return{start:B.create(0,0),end:B.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 Gl extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Gl.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 op extends Ul{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Yo=Symbol("Datatype");function ja(n){return n.$type===Yo}const pd="​",lp=n=>n.endsWith(pd)?n:n+pd;class cp{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 qI(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 HI extends cp{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new VI,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(lp(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(Rf(e))return Yo;{const t=ul(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===Yo&&(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:l}=this.getAssignment(r),c=this.current;if(o){const u=un(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,u,a,l)}else if(ja(c)){let u=i.image;un(r)||(u=this.converter.convert(u,a).toString()),c.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(ja(a))a.value+=e.toString();else if(typeof e=="object"&&e){const l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,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 s={$type:e};this.stack.push(s),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Tg(e),this.nodeBuilder.construct(e),this.stack.pop(),ja(e)?this.converter.convert(e.value,e.$cstNode):(Rg(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=ta(e,cn);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?al(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,t,i,r):o=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 zI{buildMismatchTokenMessage(e){return xn.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return xn.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return xn.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return xn.buildEarlyExitMessage(e)}}class up extends zI{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 jI extends cp{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(lp(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 YI={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new up};class qI extends YE{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},YI),{lookaheadStrategy:r?new ch({maxLookahead:t.maxLookahead}):new II({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 dp(n,e,t){return XI({parser:e,tokens:t,ruleNames:new Map},n),e}function XI(n,e){const t=pf(e,!1),r=ke(e.rules).filter(lt).filter(i=>t.has(i));for(const i of r){const s=Object.assign(Object.assign({},n),{consume:1,optional:1,subrule:1,many:1,or:1});n.parser.rule(i,mn(s,i.definition))}}function mn(n,e,t=!1){let r;if(un(e))r=rk(n,e);else if(ea(e))r=JI(n,e);else if(cn(e))r=mn(n,e.terminal);else if(al(e))r=fp(n,e);else if(dn(e))r=QI(n,e);else if(lf(e))r=ek(n,e);else if(cf(e))r=tk(n,e);else if(ol(e))r=nk(n,e);else if(ug(e)){const i=n.consume++;r=()=>n.parser.consume(i,Wt,e)}else throw new rf(e.$cstNode,`Unexpected element type: ${e.$type}`);return hp(n,t?void 0:js(e),r,e.cardinality)}function JI(n,e){const t=dl(e);return()=>n.parser.action(t,e)}function QI(n,e){const t=e.rule.ref;if(lt(t)){const r=n.subrule++,i=t.fragment,s=e.arguments.length>0?ZI(t,e.arguments):()=>({});return a=>n.parser.subrule(r,pp(n,t),i,e,s(a))}else if(Rn(t)){const r=n.consume++,i=qo(n,t.name);return()=>n.parser.consume(r,i,e)}else if(t)pi();else throw new rf(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function ZI(n,e){const t=e.map(r=>Pt(r.value));return r=>{const i={};for(let s=0;s<t.length;s++){const a=n.parameters[s],o=t[s];i[a.name]=o(r)}return i}}function Pt(n){if(ig(n)){const e=Pt(n.left),t=Pt(n.right);return r=>e(r)||t(r)}else if(rg(n)){const e=Pt(n.left),t=Pt(n.right);return r=>e(r)&&t(r)}else if(sg(n)){const e=Pt(n.value);return t=>!e(t)}else if(ag(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(ng(n)){const e=!!n.true;return()=>e}pi()}function ek(n,e){if(e.elements.length===1)return mn(n,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:mn(n,i,!0)},a=js(i);a&&(s.GATE=Pt(a)),t.push(s)}const r=n.or++;return i=>n.parser.alternatives(r,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function tk(n,e){if(e.elements.length===1)return mn(n,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:mn(n,o,!0)},c=js(o);c&&(l.GATE=Pt(c)),t.push(l)}const r=n.or++,i=(o,l)=>{const c=l.getRuleStack().join("-");return`uGroup_${o}_${c}`},s=o=>n.parser.alternatives(r,t.map((l,c)=>{const u={ALT:()=>!0},d=n.parser;u.ALT=()=>{if(l.ALT(o),!d.isRecording()){const h=i(r,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const p=d.unorderedGroups.get(h);typeof p?.[c]>"u"&&(p[c]=!0)}};const f=l.GATE;return f?u.GATE=()=>f(o):u.GATE=()=>{const h=d.unorderedGroups.get(i(r,d));return!h?.[c]},u})),a=hp(n,js(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function nk(n,e){const t=e.elements.map(r=>mn(n,r));return r=>t.forEach(i=>i(r))}function js(n){if(ol(n))return n.guardCondition}function fp(n,e,t=e.terminal){if(t)if(dn(t)&&lt(t.rule.ref)){const r=t.rule.ref,i=n.subrule++;return s=>n.parser.subrule(i,pp(n,r),!1,e,s)}else if(dn(t)&&Rn(t.rule.ref)){const r=n.consume++,i=qo(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(un(t)){const r=n.consume++,i=qo(n,t.value);return()=>n.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=yf(e.type.ref),i=r?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+dl(e.type.ref));return fp(n,e,i)}}function rk(n,e){const t=n.consume++,r=n.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>n.parser.consume(t,r,e)}function hp(n,e,t,r){const i=e&&Pt(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:Fc(),GATE:()=>!i(a)}])}else return t;if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else 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:Fc(),GATE:()=>!i(o)}])}else return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else pi()}function pp(n,e){const t=ik(n,e),r=n.parser.getRule(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function ik(n,e){if(lt(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!lt(r);)(ol(r)||lf(r)||cf(r))&&(i=r.elements.indexOf(t).toString()+":"+i),t=r,r=r.$container;return i=r.name+":"+i,n.ruleNames.set(e,i),i}}function qo(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function sk(n){const e=n.Grammar,t=n.parser.Lexer,r=new jI(n);return dp(e,r,t.definition),r.finalize(),r}function ak(n){const e=ok(n);return e.finalize(),e}function ok(n){const e=n.Grammar,t=n.parser.Lexer,r=new HI(n);return dp(e,r,t.definition)}class mp{constructor(){this.diagnostics=[]}buildTokens(e,t){const r=ke(pf(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&&ho(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(Rn).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=fl(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=ho(t)?Be.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(lt).flatMap(i=>mi(i).filter(un)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!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(Cg(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i?.PATTERN;return s?.source&&$g("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class gp{convert(e,t){let r=t.grammarSource;if(al(r)&&(r=wg(r)),dn(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 Lt.convertInt(t);case"STRING":return Lt.convertString(t);case"ID":return Lt.convertID(t)}switch((i=Gg(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Lt.convertNumber(t);case"boolean":return Lt.convertBoolean(t);case"bigint":return Lt.convertBigint(t);case"date":return Lt.convertDate(t);default:return t}}}var Lt;(function(n){function e(c){let u="";for(let d=1;d<c.length-1;d++){const f=c.charAt(d);if(f==="\\"){const h=c.charAt(++d);u+=t(h)}else u+=f}return u}n.convertString=e;function t(c){switch(c){case"b":return"\b";case"f":return"\f";case"n":return`
224
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return c}}function r(c){return c.charAt(0)==="^"?c.substring(1):c}n.convertID=r;function i(c){return parseInt(c)}n.convertInt=i;function s(c){return BigInt(c)}n.convertBigint=s;function a(c){return new Date(c)}n.convertDate=a;function o(c){return Number(c)}n.convertNumber=o;function l(c){return c.toLowerCase()==="true"}n.convertBoolean=l})(Lt||(Lt={}));var rn={},Vi={},md;function yp(){if(md)return Vi;md=1,Object.defineProperty(Vi,"__esModule",{value:!0});let n;function e(){if(n===void 0)throw new Error("No runtime abstraction layer installed");return n}return(function(t){function r(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");n=i}t.install=r})(e||(e={})),Vi.default=e,Vi}var Ee={},gd;function lk(){if(gd)return Ee;gd=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.stringArray=Ee.array=Ee.func=Ee.error=Ee.number=Ee.string=Ee.boolean=void 0;function n(o){return o===!0||o===!1}Ee.boolean=n;function e(o){return typeof o=="string"||o instanceof String}Ee.string=e;function t(o){return typeof o=="number"||o instanceof Number}Ee.number=t;function r(o){return o instanceof Error}Ee.error=r;function i(o){return typeof o=="function"}Ee.func=i;function s(o){return Array.isArray(o)}Ee.array=s;function a(o){return s(o)&&o.every(l=>e(l))}return Ee.stringArray=a,Ee}var sn={},yd;function Tp(){if(yd)return sn;yd=1,Object.defineProperty(sn,"__esModule",{value:!0}),sn.Emitter=sn.Event=void 0;const n=yp();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(sn.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,c=this._callbacks.length;l<c;l++)if(this._callbacks[l]===s)if(this._contexts[l]===a){this._callbacks.splice(l,1),this._contexts.splice(l,1);return}else o=!0;if(o)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],o=this._callbacks.slice(0),l=this._contexts.slice(0);for(let c=0,u=o.length;c<u;c++)try{a.push(o[c].apply(l[c],s))}catch(d){(0,n.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,o)=>{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return sn.Emitter=r,r._noop=function(){},sn}var Td;function ck(){if(Td)return rn;Td=1,Object.defineProperty(rn,"__esModule",{value:!0}),rn.CancellationTokenSource=rn.CancellationToken=void 0;const n=yp(),e=lk(),t=Tp();var r;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(c){const u=c;return u&&(u===o.None||u===o.Cancelled||e.boolean(u.isCancellationRequested)&&!!u.onCancellationRequested)}o.is=l})(r||(rn.CancellationToken=r={}));const i=Object.freeze(function(o,l){const c=(0,n.default)().timer.setTimeout(o.bind(l),0);return{dispose(){c.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return rn.CancellationTokenSource=a,rn}var te=ck();function uk(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let ds=0,dk=10;function fk(){return ds=performance.now(),new te.CancellationTokenSource}const Ys=Symbol("OperationCancelled");function Ia(n){return n===Ys}async function Xe(n){if(n===te.CancellationToken.None)return;const e=performance.now();if(e-ds>=dk&&(ds=e,await uk(),ds=performance.now()),n.isCancellationRequested)throw Ys}class Bl{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class di{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(di.isIncremental(r)){const i=Ep(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let c=this._lineOffsets;const u=Rd(r.text,!1,s);if(l-o===u.length)for(let f=0,h=u.length;f<h;f++)c[f+o+1]=u[f];else u.length<1e4?c.splice(o+1,l-o,...u):this._lineOffsets=c=c.slice(0,o+1).concat(u,c.slice(l+1));const d=r.text.length-(a-s);if(d!==0)for(let f=o+1+u.length,h=c.length;f<h;f++)c[f]=c[f]+d}else if(di.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Rd(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 e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const 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&&Rp(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 Xo;(function(n){function e(i,s,a,o){return new di(i,s,a,o)}n.create=e;function t(i,s,a){if(i instanceof di)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}n.update=t;function r(i,s){const a=i.getText(),o=Jo(s.map(hk),(u,d)=>{const f=u.range.start.line-d.range.start.line;return f===0?u.range.start.character-d.range.start.character:f});let l=0;const c=[];for(const u of o){const d=i.offsetAt(u.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&c.push(a.substring(l,d)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(a.substr(l)),c.join("")}n.applyEdits=r})(Xo||(Xo={}));function Jo(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);Jo(r,e),Jo(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)e(r[s],i[a])<=0?n[o++]=r[s++]:n[o++]=i[a++];for(;s<r.length;)n[o++]=r[s++];for(;a<i.length;)n[o++]=i[a++];return n}function Rd(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);Rp(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function Rp(n){return n===13||n===10}function Ep(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 hk(n){const e=Ep(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var Ap;(()=>{var n={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,c){for(var u,d="",f=0,h=-1,p=0,T=0;T<=l.length;++T){if(T<l.length)u=l.charCodeAt(T);else{if(u===47)break;u=47}if(u===47){if(!(h===T-1||p===1))if(h!==T-1&&p===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var A=d.lastIndexOf("/");if(A!==d.length-1){A===-1?(d="",f=0):f=(d=d.slice(0,A)).length-1-d.lastIndexOf("/"),h=T,p=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=T,p=0;continue}}c&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+l.slice(h+1,T):d=l.slice(h+1,T),f=T-h-1;h=T,p=0}else u===46&&p!==-1?++p:p=-1}return d}var o={resolve:function(){for(var l,c="",u=!1,d=arguments.length-1;d>=-1&&!u;d--){var f;d>=0?f=arguments[d]:(l===void 0&&(l=process.cwd()),f=l),s(f),f.length!==0&&(c=f+"/"+c,u=f.charCodeAt(0)===47)}return c=a(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(s(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=a(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c<arguments.length;++c){var u=arguments[c];s(u),u.length>0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":o.normalize(l)},relative:function(l,c){if(s(l),s(c),l===c||(l=o.resolve(l))===(c=o.resolve(c)))return"";for(var u=1;u<l.length&&l.charCodeAt(u)===47;++u);for(var d=l.length,f=d-u,h=1;h<c.length&&c.charCodeAt(h)===47;++h);for(var p=c.length-h,T=f<p?f:p,A=-1,y=0;y<=T;++y){if(y===T){if(p>T){if(c.charCodeAt(h+y)===47)return c.slice(h+y+1);if(y===0)return c.slice(h+y)}else f>T&&(l.charCodeAt(u+y)===47?A=y:y===0&&(A=0));break}var R=l.charCodeAt(u+y);if(R!==c.charCodeAt(h+y))break;R===47&&(A=y)}var m="";for(y=u+A+1;y<=d;++y)y!==d&&l.charCodeAt(y)!==47||(m.length===0?m+="..":m+="/..");return m.length>0?m+c.slice(h+A):(h+=A,c.charCodeAt(h)===47&&++h,c.slice(h))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,d=-1,f=!0,h=l.length-1;h>=1;--h)if((c=l.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?u?"/":".":u&&d===1?"//":l.slice(0,d)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(l);var u,d=0,f=-1,h=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var p=c.length-1,T=-1;for(u=l.length-1;u>=0;--u){var A=l.charCodeAt(u);if(A===47){if(!h){d=u+1;break}}else T===-1&&(h=!1,T=u+1),p>=0&&(A===c.charCodeAt(p)?--p==-1&&(f=u):(p=-1,f=T))}return d===f?f=T:f===-1&&(f=l.length),l.slice(d,f)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!h){d=u+1;break}}else f===-1&&(h=!1,f=u+1);return f===-1?"":l.slice(d,f)},extname:function(l){s(l);for(var c=-1,u=0,d=-1,f=!0,h=0,p=l.length-1;p>=0;--p){var T=l.charCodeAt(p);if(T!==47)d===-1&&(f=!1,d=p+1),T===46?c===-1?c=p:h!==1&&(h=1):c!==-1&&(h=-1);else if(!f){u=p+1;break}}return c===-1||d===-1||h===0||h===1&&c===d-1&&c===u+1?"":l.slice(c,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return(function(c,u){var d=u.dir||u.root,f=u.base||(u.name||"")+(u.ext||"");return d?d===u.root?d+f:d+"/"+f:f})(0,l)},parse:function(l){s(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,d=l.charCodeAt(0),f=d===47;f?(c.root="/",u=1):u=0;for(var h=-1,p=0,T=-1,A=!0,y=l.length-1,R=0;y>=u;--y)if((d=l.charCodeAt(y))!==47)T===-1&&(A=!1,T=y+1),d===46?h===-1?h=y:R!==1&&(R=1):h!==-1&&(R=-1);else if(!A){p=y+1;break}return h===-1||T===-1||R===0||R===1&&h===T-1&&h===p+1?T!==-1&&(c.base=c.name=p===0&&f?l.slice(1,T):l.slice(p,T)):(p===0&&f?(c.name=l.slice(1,h),c.base=l.slice(1,T)):(c.name=l.slice(p,h),c.base=l.slice(p,T)),c.ext=l.slice(h,T)),p>0?c.dir=l.slice(0,p-1):f&&(c.dir="/"),c},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:()=>f,Utils:()=>le}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(k,v){if(!k.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${k.authority}", path: "${k.path}", query: "${k.query}", fragment: "${k.fragment}"}`);if(k.scheme&&!s.test(k.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(k.path){if(k.authority){if(!a.test(k.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(k.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const c="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static isUri(v){return v instanceof f||!!v&&typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function"}scheme;authority;path;query;fragment;constructor(v,x,S,F,D,w=!1){typeof v=="object"?(this.scheme=v.scheme||c,this.authority=v.authority||c,this.path=v.path||c,this.query=v.query||c,this.fragment=v.fragment||c):(this.scheme=(function($e,J){return $e||J?$e:"file"})(v,w),this.authority=x||c,this.path=(function($e,J){switch($e){case"https":case"http":case"file":J?J[0]!==u&&(J=u+J):J=u}return J})(this.scheme,S||c),this.query=F||c,this.fragment=D||c,l(this,w))}get fsPath(){return R(this)}with(v){if(!v)return this;let{scheme:x,authority:S,path:F,query:D,fragment:w}=v;return x===void 0?x=this.scheme:x===null&&(x=c),S===void 0?S=this.authority:S===null&&(S=c),F===void 0?F=this.path:F===null&&(F=c),D===void 0?D=this.query:D===null&&(D=c),w===void 0?w=this.fragment:w===null&&(w=c),x===this.scheme&&S===this.authority&&F===this.path&&D===this.query&&w===this.fragment?this:new p(x,S,F,D,w)}static parse(v,x=!1){const S=d.exec(v);return S?new p(S[2]||c,V(S[4]||c),V(S[5]||c),V(S[7]||c),V(S[9]||c),x):new p(c,c,c,c,c)}static file(v){let x=c;if(i&&(v=v.replace(/\\/g,u)),v[0]===u&&v[1]===u){const S=v.indexOf(u,2);S===-1?(x=v.substring(2),v=u):(x=v.substring(2,S),v=v.substring(S)||u)}return new p("file",x,v,c,c)}static from(v){const x=new p(v.scheme,v.authority,v.path,v.query,v.fragment);return l(x,!0),x}toString(v=!1){return m(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof f)return v;{const x=new p(v);return x._formatted=v.external,x._fsPath=v._sep===h?v.fsPath:null,x}}return v}}const h=i?1:void 0;class p extends f{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=R(this)),this._fsPath}toString(v=!1){return v?m(this,!0):(this._formatted||(this._formatted=m(this,!1)),this._formatted)}toJSON(){const v={$mid:1};return this._fsPath&&(v.fsPath=this._fsPath,v._sep=h),this._formatted&&(v.external=this._formatted),this.path&&(v.path=this.path),this.scheme&&(v.scheme=this.scheme),this.authority&&(v.authority=this.authority),this.query&&(v.query=this.query),this.fragment&&(v.fragment=this.fragment),v}}const T={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(k,v,x){let S,F=-1;for(let D=0;D<k.length;D++){const w=k.charCodeAt(D);if(w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===45||w===46||w===95||w===126||v&&w===47||x&&w===91||x&&w===93||x&&w===58)F!==-1&&(S+=encodeURIComponent(k.substring(F,D)),F=-1),S!==void 0&&(S+=k.charAt(D));else{S===void 0&&(S=k.substr(0,D));const $e=T[w];$e!==void 0?(F!==-1&&(S+=encodeURIComponent(k.substring(F,D)),F=-1),S+=$e):F===-1&&(F=D)}}return F!==-1&&(S+=encodeURIComponent(k.substring(F))),S!==void 0?S:k}function y(k){let v;for(let x=0;x<k.length;x++){const S=k.charCodeAt(x);S===35||S===63?(v===void 0&&(v=k.substr(0,x)),v+=T[S]):v!==void 0&&(v+=k[x])}return v!==void 0?v:k}function R(k,v){let x;return x=k.authority&&k.path.length>1&&k.scheme==="file"?`//${k.authority}${k.path}`:k.path.charCodeAt(0)===47&&(k.path.charCodeAt(1)>=65&&k.path.charCodeAt(1)<=90||k.path.charCodeAt(1)>=97&&k.path.charCodeAt(1)<=122)&&k.path.charCodeAt(2)===58?k.path[1].toLowerCase()+k.path.substr(2):k.path,i&&(x=x.replace(/\//g,"\\")),x}function m(k,v){const x=v?y:A;let S="",{scheme:F,authority:D,path:w,query:$e,fragment:J}=k;if(F&&(S+=F,S+=":"),(D||F==="file")&&(S+=u,S+=u),D){let Y=D.indexOf("@");if(Y!==-1){const At=D.substr(0,Y);D=D.substr(Y+1),Y=At.lastIndexOf(":"),Y===-1?S+=x(At,!1,!1):(S+=x(At.substr(0,Y),!1,!1),S+=":",S+=x(At.substr(Y+1),!1,!0)),S+="@"}D=D.toLowerCase(),Y=D.lastIndexOf(":"),Y===-1?S+=x(D,!1,!0):(S+=x(D.substr(0,Y),!1,!0),S+=D.substr(Y))}if(w){if(w.length>=3&&w.charCodeAt(0)===47&&w.charCodeAt(2)===58){const Y=w.charCodeAt(1);Y>=65&&Y<=90&&(w=`/${String.fromCharCode(Y+32)}:${w.substr(3)}`)}else if(w.length>=2&&w.charCodeAt(1)===58){const Y=w.charCodeAt(0);Y>=65&&Y<=90&&(w=`${String.fromCharCode(Y+32)}:${w.substr(2)}`)}S+=x(w,!0,!1)}return $e&&(S+="?",S+=x($e,!1,!1)),J&&(S+="#",S+=v?J:A(J,!1,!1)),S}function E(k){try{return decodeURIComponent(k)}catch{return k.length>3?k.substr(0,3)+E(k.substr(3)):k}}const $=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function V(k){return k.match($)?k.replace($,(v=>E(v))):k}var ce=t(470);const oe=ce.posix||ce,Ce="/";var le;(function(k){k.joinPath=function(v,...x){return v.with({path:oe.join(v.path,...x)})},k.resolvePath=function(v,...x){let S=v.path,F=!1;S[0]!==Ce&&(S=Ce+S,F=!0);let D=oe.resolve(S,...x);return F&&D[0]===Ce&&!v.authority&&(D=D.substring(1)),v.with({path:D})},k.dirname=function(v){if(v.path.length===0||v.path===Ce)return v;let x=oe.dirname(v.path);return x.length===1&&x.charCodeAt(0)===46&&(x=""),v.with({path:x})},k.basename=function(v){return oe.basename(v.path)},k.extname=function(v){return oe.extname(v.path)}})(le||(le={}))})(),Ap=r})();const{URI:gn,Utils:Tr}=Ap;var jt;(function(n){n.basename=Tr.basename,n.dirname=Tr.dirname,n.extname=Tr.extname,n.joinPath=Tr.joinPath,n.resolvePath=Tr.resolvePath;function e(i,s){return i?.toString()===s?.toString()}n.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(h=>h.length>0),c=o.split("/").filter(h=>h.length>0);let u=0;for(;u<l.length&&l[u]===c[u];u++);const d="../".repeat(l.length-u),f=c.slice(u).join("/");return d+f}n.relative=t;function r(i){return gn.parse(i.toString()).toString()}n.normalize=r})(jt||(jt={}));var Q;(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"})(Q||(Q={}));class pk{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=te.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??gn.parse(e.uri),te.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return te.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)}else if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,t.getText(),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)}else{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:Q.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:Q.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 l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=Q.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=Xo.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class mk{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return ke(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=Q.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=Q.Changed,this.documentMap.delete(t)),r}}const Ya=Symbol("ref_resolving");class gk{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=te.CancellationToken.None){for(const r of Cn(e.parseResult.value))await Xe(t),df(r).forEach(i=>this.doLink(i,e))}doLink(e,t){var r;const i=e.reference;if(i._ref===void 0){i._ref=Ya;try{const s=this.getCandidate(e);if(Zi(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 r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(_e(this._ref))return this._ref;if(zm(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=Ya;const l=fo(e).$document,c=s.getLinkedNode({reference:a,container:e,property:t});if(c.error&&l&&l.state<Q.ComputedScopes)return this._ref=void 0;this._ref=(o=c.node)!==null&&o!==void 0?o:c.error,this._nodeDescription=c.descr,l?.references.push(this)}else if(this._ref===Ya)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${i}')`);return _e(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Zi(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const r=this.getCandidate(e);if(Zi(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);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const r=fo(e.container).$document;r&&r.state<Q.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})}}function yk(n){return typeof n.name=="string"}class Tk{getName(e){if(yk(e))return e.name}getNameNode(e){return gf(e.$cstNode,"name")}}class Rk{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=Fg(e),r=e.astNode;if(t&&r){const i=r[t.feature];if(kt(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(kt(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||qm(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(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=>jt.equals(s.sourceUri,t.documentUri))),r.push(...i),ke(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=Bt(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:As(t),local:!0}}}}class qs{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return lo.sum(ke(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:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ke(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return ke(this.map.keys())}values(){return ke(this.map.values()).flat()}entriesGroupedByKey(){return ke(this.map.entries())}}class Ed{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):!1}}class Ek{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=te.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=ll,i=te.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await Xe(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=te.CancellationToken.None){const r=e.parseResult.value,i=new qs;for(const s of mi(r))await Xe(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 Ad{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class Ak{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=ke(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class vp{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 vk extends vp{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}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Ik extends vp{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}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class kk extends vk{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 Sk{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 kk(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=Bt(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(ke(o).filter(l=>this.reflection.isSubtype(l.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 Ad(ke(e),t,r)}createScopeForNodes(e,t,r){const i=ke(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new Ad(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Ak(this.indexManager.allElements(e)))}}function Nk(n){return typeof n.$comment=="string"}function vd(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class xk{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?.replacer,s=(o,l)=>this.replacer(o,l,r),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=Bt(e),JSON.stringify(e,a,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 l,c,u,d;if(!this.ignoreProperties.has(e))if(kt(t)){const f=t.ref,h=r?t.$refText:void 0;if(f){const p=Bt(f);let T="";this.currentDocument&&this.currentDocument!==p&&(o?T=o(p.uri,t):T=p.uri.toString());const A=this.astNodeLocator.getAstNodePath(f);return{$ref:`${T}#${A}`,$refText:h}}else return{$error:(c=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText:h}}else if(_e(t)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&f?.$textRegion&&(f.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(f??(f=Object.assign({},t)),f.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){f??(f=Object.assign({},t));const h=this.commentProvider.getComment(t);h&&(f.$comment=h.replace(/\r/g,""))}return f??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=bg(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[l,c]of Object.entries(e))if(Array.isArray(c))for(let u=0;u<c.length;u++){const d=c[u];vd(d)?c[u]=this.reviveReference(e,l,t,d,r):_e(d)&&this.linkNode(d,t,r,e,l,u)}else vd(c)?e[l]=this.reviveReference(e,l,t,c,r):_e(c)&&this.linkNode(c,t,r,e,l);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 l=this.getRefNode(r,i.$ref,s.uriConverter);if(_e(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,r){try{const i=t.indexOf("#");if(i===0){const l=this.astNodeLocator.getAstNode(e,t.substring(1));return l||"Could not resolve path: "+t}if(i<0){const l=r?r(t):gn.parse(t),c=this.langiumDocuments.getDocument(l);return c?c.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):gn.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);if(!a)return"Could not find document for URI: "+t;if(i===t.length-1)return a.parseResult.value;const o=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1));return o||"Could not resolve URI: "+t}catch(i){return String(i)}}}class Ck{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=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=jt.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 Zr(n){return{code:n}}var Xs;(function(n){n.all=["fast","slow","built-in"]})(Xs||(Xs={}));class $k{constructor(e){this.entries=new qs,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 l={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:r};this.addEntry(i,o)}else pi()}}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(Ia(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);r("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=ke(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 _k{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=te.CancellationToken.None){const i=e.parseResult,s=[];if(await Xe(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)===ut.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)===ut.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)===ut.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(Ia(a))throw a;console.error("An error occurred during validation:",a)}return await Xe(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 l of o){const c=(a=l.severity)!==null&&a!==void 0?a:"error",u={severity:qa(c),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:Ok(c),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=uo(i.token);if(s){const a={severity:qa("error"),range:s,message:i.message,data:Zr(ut.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:ut.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=te.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};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=te.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await Xe(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,r,i=te.CancellationToken.None){await Promise.all(Cn(e).map(async s=>{await Xe(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=te.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await Xe(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,r){return{message:t,range:Lk(r),severity:qa(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 Lk(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=gf(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=Mg(n.node.$cstNode,n.keyword,n.index)),e??(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function qa(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 Ok(n){switch(n){case"error":return Zr(ut.LexingError);case"warning":return Zr(ut.LexingWarning);case"info":return Zr(ut.LexingInfo);case"hint":return Zr(ut.LexingHint);default:throw new Error("Invalid diagnostic severity: "+n)}}var ut;(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"})(ut||(ut={}));class wk{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){const i=r??Bt(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=As((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:As(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class Pk{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=te.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of Cn(i))await Xe(t),df(s).filter(a=>!Zi(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=Bt(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:As(r),local:jt.equals(t.documentUri,i)}}}class bk{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((i,s)=>{if(!i||s.length===0)return i;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),l=parseInt(s.substring(a+1)),c=i[o];return c?.[l]}return i[s]},e)}}var Mk=Tp();class Dk{constructor(e){this._ready=new Bl,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Mk.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:!1}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}}var si;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(si||(si={}));class Fk{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new qs,this.documentPhaseListeners=new qs,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Q.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=te.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===Q.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=Q.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),c=(i=l?.result)===null||i===void 0?void 0:i.validationChecks;if(c){const d=((s=t.validation.categories)!==null&&s!==void 0?s:Xs.all).filter(f=>!c.includes(f));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:l.result}),a.state=Q.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=Q.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=te.CancellationToken.None){this.currentState=Q.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 l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=Q.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}const i=ke(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,Q.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await Xe(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<Q.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)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),si.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,Q.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,Q.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,Q.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,Q.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,Q.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,Q.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?.result})}}async runCancelable(e,t,r,i){const s=e.filter(o=>o.state<t);for(const o of s)await Xe(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),si.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),si.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=te.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(Ys):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const c=this.langiumDocuments.getDocument(i);s(c?.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(Ys)})})}async notifyDocumentPhase(e,t,r){const s=this.documentPhaseListeners.get(t).slice();for(const a of s)try{await a(e,r)}catch(o){if(!Ia(o))throw o}}async notifyBuildPhase(e,t,r){if(e.length===0)return;const s=this.buildPhaseListeners.get(t).slice();for(const a of s)await Xe(r),await a(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,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const c=this.buildState.get(e.uri.toString());if(c){(r=c.result)!==null&&r!==void 0||(c.result={});const u=(i=o?.categories)!==null&&i!==void 0?i:Xs.all;c.result.validationChecks?c.result.validationChecks.push(...u):c.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 Uk{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Ik,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=Bt(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{jt.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),ke(i)}allElements(e,t){let r=ke(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(o=>this.astReflection.isSubtype(o.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=te.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=te.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).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())):!1}}class Gk{constructor(e){this.initialBuildOptions={},this._ready=new Bl,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=te.CancellationToken.None){const r=await this.performStartup(e);await Xe(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 gn.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=jt.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=jt.extname(t.uri);return r.includes(s)}return!1}}class Bk{buildUnexpectedCharactersMessage(e,t,r,i,s){return yo.buildUnexpectedCharactersMessage(e,t,r,i,s)}buildUnableToPopLexerModeMessage(e){return yo.buildUnableToPopLexerModeMessage(e)}}const Kk={mode:"full"};class Wk{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=Id(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new Be(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=Kk){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(Id(e))return e;const t=Ip(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function Vk(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function Ip(n){return n&&"modes"in n&&"defaultMode"in n}function Id(n){return!Vk(n)&&!Ip(n)}function Hk(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=B.create(0,0));const s=kp(n),a=Kl(r),o=Yk({lines:s,position:i,options:a});return Zk({index:0,tokens:o,position:i})}function zk(n,e){const t=Kl(e),r=kp(n);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=t.start,o=t.end;return!!a?.exec(i)&&!!o?.exec(s)}function kp(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(Ig)}const kd=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,jk=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function Yk(n){var e,t,r;const i=[];let s=n.position.line,a=n.position.character;for(let o=0;o<n.lines.length;o++){const l=o===0,c=o===n.lines.length-1;let u=n.lines[o],d=0;if(l&&n.options.start){const h=(e=n.options.start)===null||e===void 0?void 0:e.exec(u);h&&(d=h.index+h[0].length)}else{const h=(t=n.options.line)===null||t===void 0?void 0:t.exec(u);h&&(d=h.index+h[0].length)}if(c){const h=(r=n.options.end)===null||r===void 0?void 0:r.exec(u);h&&(u=u.substring(0,h.index))}if(u=u.substring(0,Qk(u)),Qo(u,d)>=u.length){if(i.length>0){const h=B.create(s,a);i.push({type:"break",content:"",range:U.create(h,h)})}}else{kd.lastIndex=d;const h=kd.exec(u);if(h){const p=h[0],T=h[1],A=B.create(s,a+d),y=B.create(s,a+d+p.length);i.push({type:"tag",content:T,range:U.create(A,y)}),d+=p.length,d=Qo(u,d)}if(d<u.length){const p=u.substring(d),T=Array.from(p.matchAll(jk));i.push(...qk(T,p,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function qk(n,e,t,r){const i=[];if(n.length===0){const s=B.create(t,r),a=B.create(t,r+e.length);i.push({type:"text",content:e,range:U.create(s,a)})}else{let s=0;for(const o of n){const l=o.index,c=e.substring(s,l);c.length>0&&i.push({type:"text",content:e.substring(s,l),range:U.create(B.create(t,s+r),B.create(t,l+r))});let u=c.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:U.create(B.create(t,s+u+r),B.create(t,s+u+d.length+r))}),u+=d.length,o.length===4){u+=o[2].length;const f=o[3];i.push({type:"text",content:f,range:U.create(B.create(t,s+u+r),B.create(t,s+u+f.length+r))})}else i.push({type:"text",content:"",range:U.create(B.create(t,s+u+r),B.create(t,s+u+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:U.create(B.create(t,s+r),B.create(t,s+r+a.length))})}return i}const Xk=/\S/,Jk=/\s*$/;function Qo(n,e){const t=n.substring(e).match(Xk);return t?e+t.index:n.length}function Qk(n){const e=n.match(Jk);if(e&&typeof e.index=="number")return e.index}function Zk(n){var e,t,r,i;const s=B.create(n.position.line,n.position.character);if(n.tokens.length===0)return new Sd([],U.create(s,s));const a=[];for(;n.index<n.tokens.length;){const c=eS(n,a[a.length-1]);c&&a.push(c)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(r=a[a.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new Sd(a,U.create(o,l))}function eS(n,e){const t=n.tokens[n.index];if(t.type==="tag")return Np(n,!1);if(t.type==="text"||t.type==="inline-tag")return Sp(n);tS(t,e),n.index++}function tS(n,e){if(e){const t=new Cp("",n.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function Sp(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(nS(n)),r=e,e=n.tokens[n.index];return new Zo(i,U.create(t.range.start,r.range.end))}function nS(n){return n.tokens[n.index].type==="inline-tag"?Np(n,!0):xp(n)}function Np(n,e){const t=n.tokens[n.index++],r=t.content.substring(1),i=n.tokens[n.index];if(i?.type==="text")if(e){const s=xp(n);return new Ja(r,new Zo([s],s.range),e,U.create(t.range.start,s.range.end))}else{const s=Sp(n);return new Ja(r,s,e,U.create(t.range.start,s.range.end))}else{const s=t.range;return new Ja(r,new Zo([],s),e,s)}}function xp(n){const e=n.tokens[n.index++];return new Cp(e.content,e.range)}function Kl(n){if(!n)return Kl({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:r}=n;return{start:Xa(e,!0),end:Xa(t,!1),line:Xa(r,!0)}}function Xa(n,e){if(typeof n=="string"||typeof n=="object"){const t=typeof n=="string"?ra(n):n.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return n}class Sd{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+=Nd(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+=Nd(t)+i}return t.trim()}}class Ja{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}
225
+ ${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return(r=(t=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=rS(this.name,t,e??{});if(typeof s=="string")return s}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} — ${t}`:this.content.inlines.length>1&&(i=`${i}
226
+ ${t}`),this.inline?`{${i}}`:i}}function rS(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=Qo(e,s);a=e.substring(l),e=e.substring(0,s)}return(n==="linkcode"||n==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(r=t.renderLink)===null||r===void 0?void 0:r.call(t,e,a))!==null&&i!==void 0?i:iS(e,a)}}function iS(n,e){try{return gn.parse(n,!0),`[${e}](${n})`}catch{return n}}class Zo{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+=`
227
+ `)}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+=`
228
+ `)}return t}}class Cp{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function Nd(n){return n.endsWith(`
229
+ `)?`
230
+ `:`
231
+
232
+ `}class sS{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&zk(t))return Hk(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}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,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=Bt(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class aS{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return Nk(e)?e.$comment:(t=Zm(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class oS{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class lS{constructor(){this.previousTokenSource=new te.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=fk();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=te.CancellationToken.None){const i=new Bl,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)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;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){Ia(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class cS{constructor(e){this.grammarElementIdMap=new Ed,this.tokenTypeIdMap=new Ed,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 Cn(e))t.set(i,{});if(e.$cstNode)for(const i of co(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)_e(o)?a.push(this.dehydrateAstNode(o,t)):kt(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else _e(s)?r[i]=this.dehydrateAstNode(s,t):kt(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 nf(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),li(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):tf(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 Cn(e))t.set(s,{});let i;if(e.$cstNode)for(const s of co(e.$cstNode)){let a;"fullText"in s?(a=new op(s.fullText),i=a):"content"in s?a=new Ul:"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)_e(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):kt(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else _e(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):kt(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),li(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,l=e.endColumn,c=e.hidden;return new jo(r,i,{start:{line:s,character:a},end:{line:o,character:l}},t,c)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of Cn(this.grammar))tg(t)&&this.grammarElementIdMap.set(t,e++)}}function Jt(n){return{documentation:{CommentProvider:e=>new aS(e),DocumentationProvider:e=>new sS(e)},parser:{AsyncParser:e=>new oS(e),GrammarConfig:e=>zg(e),LangiumParser:e=>ak(e),CompletionParser:e=>sk(e),ValueConverter:()=>new gp,TokenBuilder:()=>new mp,Lexer:e=>new Wk(e),ParserErrorMessageProvider:()=>new up,LexerErrorMessageProvider:()=>new Bk},workspace:{AstNodeLocator:()=>new bk,AstNodeDescriptionProvider:e=>new wk(e),ReferenceDescriptionProvider:e=>new Pk(e)},references:{Linker:e=>new gk(e),NameProvider:()=>new Tk,ScopeProvider:e=>new Sk(e),ScopeComputation:e=>new Ek(e),References:e=>new Rk(e)},serializer:{Hydrator:e=>new cS(e),JsonSerializer:e=>new xk(e)},validation:{DocumentValidator:e=>new _k(e),ValidationRegistry:e=>new $k(e)},shared:()=>n.shared}}function Qt(n){return{ServiceRegistry:e=>new Ck(e),workspace:{LangiumDocuments:e=>new mk(e),LangiumDocumentFactory:e=>new pk(e),DocumentBuilder:e=>new Fk(e),IndexManager:e=>new Uk(e),WorkspaceManager:e=>new Gk(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new lS,ConfigurationProvider:e=>new Dk(e)}}}var xd;(function(n){n.merge=(e,t)=>Js(Js({},e),t)})(xd||(xd={}));function Oe(n,e,t,r,i,s,a,o,l){const c=[n,e,t,r,i,s,a,o,l].reduce(Js,{});return $p(c)}const uS=Symbol("isProxy");function $p(n,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===uS?!0:$d(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>($d(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Object.getOwnPropertyNames(n)]});return t}const Cd=Symbol();function $d(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]===Cd)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return n[e]}else if(e in t){const i=t[e];n[e]=Cd;try{n[e]=typeof i=="function"?i(r):$p(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}else return}function Js(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?n[t]=Js(i,r):n[t]=r}}return n}class dS{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const Zt={fileSystemProvider:()=>new dS},fS={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},hS={AstReflection:()=>new uf};function pS(){const n=Oe(Qt(Zt),hS),e=Oe(Jt({shared:n}),fS);return n.ServiceRegistry.register(e),e}function vn(n){var e;const t=pS(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,gn.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var mS=Object.defineProperty,I=(n,e)=>mS(n,"name",{value:e,configurable:!0}),_d="Statement",fs="Architecture";function gS(n){return Et.isInstance(n,fs)}I(gS,"isArchitecture");var Hi="Axis",ei="Branch";function yS(n){return Et.isInstance(n,ei)}I(yS,"isBranch");var zi="Checkout",ji="CherryPicking",Qa="ClassDefStatement",ti="Commit";function TS(n){return Et.isInstance(n,ti)}I(TS,"isCommit");var Za="Curve",eo="Edge",to="Entry",ni="GitGraph";function RS(n){return Et.isInstance(n,ni)}I(RS,"isGitGraph");var no="Group",hs="Info";function ES(n){return Et.isInstance(n,hs)}I(ES,"isInfo");var Yi="Item",ro="Junction",ri="Merge";function AS(n){return Et.isInstance(n,ri)}I(AS,"isMerge");var io="Option",ps="Packet";function vS(n){return Et.isInstance(n,ps)}I(vS,"isPacket");var ms="PacketBlock";function IS(n){return Et.isInstance(n,ms)}I(IS,"isPacketBlock");var gs="Pie";function kS(n){return Et.isInstance(n,gs)}I(kS,"isPie");var ys="PieSection";function SS(n){return Et.isInstance(n,ys)}I(SS,"isPieSection");var so="Radar",ao="Service",Ts="Treemap";function NS(n){return Et.isInstance(n,Ts)}I(NS,"isTreemap");var oo="TreemapRow",qi="Direction",Xi="Leaf",Ji="Section",_n,_p=(_n=class extends ef{getAllTypes(){return[fs,Hi,ei,zi,ji,Qa,ti,Za,qi,eo,to,ni,no,hs,Yi,ro,Xi,ri,io,ps,ms,gs,ys,so,Ji,ao,_d,Ts,oo]}computeIsSubtype(e,t){switch(e){case ei:case zi:case ji:case ti:case ri:return this.isSubtype(_d,t);case qi:return this.isSubtype(ni,t);case Xi:case Ji:return this.isSubtype(Yi,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if(t==="Entry:axis")return Hi;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case fs:return{name:fs,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case Hi:return{name:Hi,properties:[{name:"label"},{name:"name"}]};case ei:return{name:ei,properties:[{name:"name"},{name:"order"}]};case zi:return{name:zi,properties:[{name:"branch"}]};case ji:return{name:ji,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Qa:return{name:Qa,properties:[{name:"className"},{name:"styleText"}]};case ti:return{name:ti,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Za:return{name:Za,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case eo:return{name:eo,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 to:return{name:to,properties:[{name:"axis"},{name:"value"}]};case ni:return{name:ni,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case no:return{name:no,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case hs:return{name:hs,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case Yi:return{name:Yi,properties:[{name:"classSelector"},{name:"name"}]};case ro:return{name:ro,properties:[{name:"id"},{name:"in"}]};case ri:return{name:ri,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case io:return{name:io,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case ps:return{name:ps,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case ms:return{name:ms,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case gs:return{name:gs,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case ys:return{name:ys,properties:[{name:"label"},{name:"value"}]};case so:return{name:so,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case ao:return{name:ao,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Ts:return{name:Ts,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case oo:return{name:oo,properties:[{name:"indent"},{name:"item"}]};case qi:return{name:qi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case Xi:return{name:Xi,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case Ji:return{name:Ji,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},I(_n,"MermaidAstReflection"),_n),Et=new _p,Ld,xS=I(()=>Ld??(Ld=vn(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),Od,CS=I(()=>Od??(Od=vn(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),wd,$S=I(()=>wd??(wd=vn(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),Pd,_S=I(()=>Pd??(Pd=vn(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),bd,LS=I(()=>bd??(bd=vn(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),Md,OS=I(()=>Md??(Md=vn(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),Dd,wS=I(()=>Dd??(Dd=vn(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),PS={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},bS={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},MS={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},DS={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},FS={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},US={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},GS={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},In={AstReflection:I(()=>new _p,"AstReflection")},BS={Grammar:I(()=>xS(),"Grammar"),LanguageMetaData:I(()=>PS,"LanguageMetaData"),parser:{}},KS={Grammar:I(()=>CS(),"Grammar"),LanguageMetaData:I(()=>bS,"LanguageMetaData"),parser:{}},WS={Grammar:I(()=>$S(),"Grammar"),LanguageMetaData:I(()=>MS,"LanguageMetaData"),parser:{}},VS={Grammar:I(()=>_S(),"Grammar"),LanguageMetaData:I(()=>DS,"LanguageMetaData"),parser:{}},HS={Grammar:I(()=>LS(),"Grammar"),LanguageMetaData:I(()=>FS,"LanguageMetaData"),parser:{}},zS={Grammar:I(()=>OS(),"Grammar"),LanguageMetaData:I(()=>US,"LanguageMetaData"),parser:{}},jS={Grammar:I(()=>wS(),"Grammar"),LanguageMetaData:I(()=>GS,"LanguageMetaData"),parser:{}},YS=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,qS=/accTitle[\t ]*:([^\n\r]*)/,XS=/title([\t ][^\n\r]*|)/,JS={ACC_DESCR:YS,ACC_TITLE:qS,TITLE:XS},Ln,ka=(Ln=class extends gp{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=JS[e.name];if(i===void 0)return;const s=i.exec(t);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
233
+ `)}}},I(Ln,"AbstractMermaidValueConverter"),Ln),On,Sa=(On=class extends ka{runCustomConverter(e,t,r){}},I(On,"CommonValueConverter"),On),wn,en=(wn=class extends mp{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}},I(wn,"AbstractMermaidTokenBuilder"),wn),Pn;Pn=class extends en{},I(Pn,"CommonTokenBuilder");var bn,QS=(bn=class extends en{constructor(){super(["gitGraph"])}},I(bn,"GitGraphTokenBuilder"),bn),Lp={parser:{TokenBuilder:I(()=>new QS,"TokenBuilder"),ValueConverter:I(()=>new Sa,"ValueConverter")}};function Op(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),HS,Lp);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}I(Op,"createGitGraphServices");var Mn,ZS=(Mn=class extends en{constructor(){super(["info","showInfo"])}},I(Mn,"InfoTokenBuilder"),Mn),wp={parser:{TokenBuilder:I(()=>new ZS,"TokenBuilder"),ValueConverter:I(()=>new Sa,"ValueConverter")}};function Pp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),BS,wp);return e.ServiceRegistry.register(t),{shared:e,Info:t}}I(Pp,"createInfoServices");var Dn,eN=(Dn=class extends en{constructor(){super(["packet"])}},I(Dn,"PacketTokenBuilder"),Dn),bp={parser:{TokenBuilder:I(()=>new eN,"TokenBuilder"),ValueConverter:I(()=>new Sa,"ValueConverter")}};function Mp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),KS,bp);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}I(Mp,"createPacketServices");var Fn,tN=(Fn=class extends en{constructor(){super(["pie","showData"])}},I(Fn,"PieTokenBuilder"),Fn),Un,nN=(Un=class extends ka{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},I(Un,"PieValueConverter"),Un),Dp={parser:{TokenBuilder:I(()=>new tN,"TokenBuilder"),ValueConverter:I(()=>new nN,"ValueConverter")}};function Fp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),WS,Dp);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}I(Fp,"createPieServices");var Gn,rN=(Gn=class extends en{constructor(){super(["architecture"])}},I(Gn,"ArchitectureTokenBuilder"),Gn),Bn,iN=(Bn=class extends ka{runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return t.replace(/[[\]]/g,"").trim()}},I(Bn,"ArchitectureValueConverter"),Bn),Up={parser:{TokenBuilder:I(()=>new rN,"TokenBuilder"),ValueConverter:I(()=>new iN,"ValueConverter")}};function Gp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),VS,Up);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}I(Gp,"createArchitectureServices");var Kn,sN=(Kn=class extends en{constructor(){super(["radar-beta"])}},I(Kn,"RadarTokenBuilder"),Kn),Bp={parser:{TokenBuilder:I(()=>new sN,"TokenBuilder"),ValueConverter:I(()=>new Sa,"ValueConverter")}};function Kp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),zS,Bp);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}I(Kp,"createRadarServices");var Wn,aN=(Wn=class extends en{constructor(){super(["treemap"])}},I(Wn,"TreemapTokenBuilder"),Wn),oN=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Vn,lN=(Vn=class extends ka{runCustomConverter(e,t,r){if(e.name==="NUMBER2")return parseFloat(t.replace(/,/g,""));if(e.name==="SEPARATOR")return t.substring(1,t.length-1);if(e.name==="STRING2")return t.substring(1,t.length-1);if(e.name==="INDENTATION")return t.length;if(e.name==="ClassDef"){if(typeof t!="string")return t;const i=oN.exec(t);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}},I(Vn,"TreemapValueConverter"),Vn);function Wp(n){const e=n.validation.TreemapValidator,t=n.validation.ValidationRegistry;if(t){const r={Treemap:e.checkSingleRoot.bind(e)};t.register(r,e)}}I(Wp,"registerValidationChecks");var Hn,cN=(Hn=class{checkSingleRoot(e,t){let r;for(const i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},I(Hn,"TreemapValidator"),Hn),Vp={parser:{TokenBuilder:I(()=>new aN,"TokenBuilder"),ValueConverter:I(()=>new lN,"ValueConverter")},validation:{TreemapValidator:I(()=>new cN,"TreemapValidator")}};function Hp(n=Zt){const e=Oe(Qt(n),In),t=Oe(Jt({shared:e}),jS,Vp);return e.ServiceRegistry.register(t),Wp(t),{shared:e,Treemap:t}}I(Hp,"createTreemapServices");var Ot={},uN={info:I(async()=>{const{createInfoServices:n}=await nn(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>hN);return{createInfoServices:t}},void 0),e=n().Info.parser.LangiumParser;Ot.info=e},"info"),packet:I(async()=>{const{createPacketServices:n}=await nn(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>pN);return{createPacketServices:t}},void 0),e=n().Packet.parser.LangiumParser;Ot.packet=e},"packet"),pie:I(async()=>{const{createPieServices:n}=await nn(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>mN);return{createPieServices:t}},void 0),e=n().Pie.parser.LangiumParser;Ot.pie=e},"pie"),architecture:I(async()=>{const{createArchitectureServices:n}=await nn(async()=>{const{createArchitectureServices:t}=await Promise.resolve().then(()=>gN);return{createArchitectureServices:t}},void 0),e=n().Architecture.parser.LangiumParser;Ot.architecture=e},"architecture"),gitGraph:I(async()=>{const{createGitGraphServices:n}=await nn(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>yN);return{createGitGraphServices:t}},void 0),e=n().GitGraph.parser.LangiumParser;Ot.gitGraph=e},"gitGraph"),radar:I(async()=>{const{createRadarServices:n}=await nn(async()=>{const{createRadarServices:t}=await Promise.resolve().then(()=>TN);return{createRadarServices:t}},void 0),e=n().Radar.parser.LangiumParser;Ot.radar=e},"radar"),treemap:I(async()=>{const{createTreemapServices:n}=await nn(async()=>{const{createTreemapServices:t}=await Promise.resolve().then(()=>RN);return{createTreemapServices:t}},void 0),e=n().Treemap.parser.LangiumParser;Ot.treemap=e},"treemap")};async function dN(n,e){const t=uN[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);Ot[n]||await t();const i=Ot[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new fN(i);return i.value}I(dN,"parse");var zn,fN=(zn=class extends Error{constructor(e){const t=e.lexerErrors.map(i=>i.message).join(`
234
+ `),r=e.parserErrors.map(i=>i.message).join(`
235
+ `);super(`Parsing failed: ${t} ${r}`),this.result=e}},I(zn,"MermaidParseError"),zn);const hN=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:wp,createInfoServices:Pp},Symbol.toStringTag,{value:"Module"})),pN=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:bp,createPacketServices:Mp},Symbol.toStringTag,{value:"Module"})),mN=Object.freeze(Object.defineProperty({__proto__:null,PieModule:Dp,createPieServices:Fp},Symbol.toStringTag,{value:"Module"})),gN=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:Up,createArchitectureServices:Gp},Symbol.toStringTag,{value:"Module"})),yN=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:Lp,createGitGraphServices:Op},Symbol.toStringTag,{value:"Module"})),TN=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:Bp,createRadarServices:Kp},Symbol.toStringTag,{value:"Module"})),RN=Object.freeze(Object.defineProperty({__proto__:null,TreemapModule:Vp,createTreemapServices:Hp},Symbol.toStringTag,{value:"Module"}));export{dN as p};